Нет описания

pieCharts.js 14KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. /**
  2. * 运维图形统计 报修 耗材 隐藏
  3. * */
  4. var stateVal = 0; //默认当天
  5. var myChart0 = echarts.init(document.getElementById('pieChart0')); //工单数量统计
  6. //var myChart1 = echarts.init(document.getElementById('pieChart1')); //报修统计
  7. var myChart2 = echarts.init(document.getElementById('pieChart2')); //维修状态统计
  8. var myChart3 = echarts.init(document.getElementById('pieChart3')); //维修及时率
  9. var myChart4 = echarts.init(document.getElementById('pieChart4')); //满意度统计
  10. var myChart5 = echarts.init(document.getElementById('pieChart5')); //设备巡检统计
  11. var myChart6 = echarts.init(document.getElementById('pieChart6')); //设备保养统计
  12. //var myChart7 = echarts.init(document.getElementById('pieChart7')); //耗材统计
  13. $(function() {
  14. //初始化图形
  15. initPies();
  16. //获取数据
  17. getPiedatas();
  18. //搜索 0-当天;1-本周;2-本月;3-本年;4-累计
  19. $('#sc_statebtn').find('input[type="radio"]').on('change', function() {
  20. stateVal = $(this).val();
  21. getPiedatas();
  22. });
  23. });
  24. //获取数据
  25. function getPiedatas() {
  26. $.ajax({
  27. type: "get",
  28. url: huayi.config.callcenter_url + "equipmentapi/api/RunningRepair/getequipmentroundreport",
  29. async: true,
  30. dataType: 'json',
  31. data: {
  32. datetype: stateVal, //否 int 0-当天;1-本周;2-本月;3-本年;4-累计
  33. },
  34. success: function(data) {
  35. myChart0.hideLoading();
  36. // myChart1.hideLoading();
  37. myChart2.hideLoading();
  38. myChart3.hideLoading();
  39. myChart4.hideLoading();
  40. myChart5.hideLoading();
  41. myChart6.hideLoading();
  42. // myChart7.hideLoading();
  43. if(data.state.toLowerCase() == "success") {
  44. data = data.data;
  45. if(data) {
  46. var source = data.source; //工单数量
  47. var repair = data.repair; //报修
  48. var state = data.state; //维修状态
  49. var timely = data.timely; //维修及时率统计
  50. var satisfied = data.satisfied; //满意度统计
  51. var equioment = data.running; //巡检统计
  52. var maintenance = data.maintenance; //设备保养统计
  53. var material = data.material; //耗材统计
  54. myChart0.setOption({
  55. series: [{
  56. data: [{
  57. name: '电话',
  58. value: source.pccount
  59. },
  60. {
  61. name: '微信',
  62. value: source.wxcount
  63. },
  64. {
  65. name: 'APP',
  66. value: source.appcount
  67. },
  68. ],
  69. }]
  70. });
  71. // myChart1.setOption({
  72. // series: [{
  73. // data: [{
  74. // name: '日常报修',
  75. // value: repair.rccount
  76. // },
  77. // {
  78. // name: '设备报修',
  79. // value: repair.sbcount
  80. // }
  81. // ],
  82. // }]
  83. // });
  84. myChart2.setOption({
  85. series: [{
  86. data: [{
  87. name: '已维修',
  88. value: state.ywxcount
  89. },
  90. {
  91. name: '待维修',
  92. value: state.dwxcount
  93. }
  94. ],
  95. }]
  96. });
  97. myChart3.setOption({
  98. series: [{
  99. data: [{
  100. name: '2小时内',
  101. value: timely.hour2count,
  102. },
  103. {
  104. name: '4小时内',
  105. value: timely.hour4count,
  106. },
  107. {
  108. name: '8小时内',
  109. value: timely.hour8count,
  110. },
  111. {
  112. name: '24小时内',
  113. value: timely.hour24count,
  114. },
  115. {
  116. name: '24小时以上',
  117. value: timely.hour24scount,
  118. }
  119. ],
  120. }]
  121. });
  122. myChart4.setOption({
  123. series: [{
  124. data: [{
  125. name: '满意',
  126. value: satisfied.mycount,
  127. },
  128. {
  129. name: '不满意',
  130. value: satisfied.nocount,
  131. }
  132. ],
  133. }]
  134. });
  135. myChart5.setOption({
  136. series: [{
  137. data: [{
  138. name: '计划',
  139. value: equioment.rcount,
  140. },
  141. {
  142. name: '待巡检',
  143. value: equioment.rwcount,
  144. },
  145. {
  146. name: '异常',
  147. value: equioment.ryycount,
  148. }
  149. ],
  150. }]
  151. });
  152. myChart6.setOption({
  153. series: [{
  154. data: [{
  155. name: '计划',
  156. value: maintenance.mcount,
  157. },
  158. {
  159. name: '待保养',
  160. value: maintenance.mwcount,
  161. },
  162. {
  163. name: '异常',
  164. value: maintenance.mabnormalcount,
  165. }
  166. ],
  167. }]
  168. });
  169. // myChart7.setOption({
  170. // series: [{
  171. // data: [{
  172. // name: '已使用',
  173. // value: material.hccount,
  174. // },
  175. // {
  176. // name: '欠缺',
  177. // value: material.qqcount,
  178. // }
  179. // ],
  180. // }]
  181. // });
  182. }
  183. }
  184. }
  185. });
  186. }
  187. //初始化图形
  188. function initPies() {
  189. initPie0(); //初始化 工单数量统计
  190. // initPie1(); //初始化 报修统计
  191. initPie2(); //初始化 维修状态统计
  192. initPie3(); //初始化 维修及时率统计
  193. initPie4(); //初始化 满意度统计
  194. initPie5(); //初始化 设备巡检统计
  195. initPie6(); //初始化 设备保养统计
  196. // initPie7(); //初始化 耗材统计
  197. }
  198. //初始化 耗材统计
  199. function initPie7() {
  200. myChart7.clear();
  201. myChart7.showLoading();
  202. var option = {
  203. color: ['#049FF2', '#FDC744'],
  204. title: {
  205. text: '耗材统计',
  206. x: 'center',
  207. textStyle: {
  208. color: '#fff'
  209. }
  210. },
  211. tooltip: {
  212. trigger: 'item',
  213. formatter: "{a} <br/>{b} : {c} ({d}%)"
  214. },
  215. legend: {
  216. orient: 'vertical',
  217. top: 26,
  218. left: 20,
  219. data: ['已使用', '欠缺'],
  220. textStyle: {
  221. color: '#fff'
  222. }
  223. },
  224. series: [{
  225. name: '耗材数量',
  226. type: 'pie',
  227. radius: '55%',
  228. center: ['50%', '60%'],
  229. data: [{
  230. name: '已使用',
  231. value: 0,
  232. label: {
  233. normal: {
  234. formatter: "{d}%"
  235. }
  236. }
  237. },
  238. {
  239. name: '欠缺',
  240. value: 0,
  241. label: {
  242. normal: {
  243. formatter: "{d}%"
  244. }
  245. }
  246. }
  247. ],
  248. itemStyle: {
  249. emphasis: {
  250. shadowBlur: 10,
  251. shadowOffsetX: 0,
  252. shadowColor: 'rgba(0, 0, 0, 0.5)'
  253. }
  254. }
  255. }]
  256. };
  257. myChart7.setOption(option);
  258. }
  259. //初始化 设备保养统计
  260. function initPie6() {
  261. myChart6.clear();
  262. myChart6.showLoading();
  263. var option = {
  264. color: ['#049FF2', '#FDC744', '#ACA1F0'],
  265. title: {
  266. text: '保养统计',
  267. x: 'center',
  268. textStyle: {
  269. color: '#fff'
  270. }
  271. },
  272. tooltip: {
  273. trigger: 'item',
  274. formatter: "{a} <br/>{b} : {c} ({d}%)"
  275. },
  276. legend: {
  277. orient: 'vertical',
  278. top: 26,
  279. left: 20,
  280. data: ['计划', '待保养', '异常'],
  281. textStyle: {
  282. color: '#fff'
  283. }
  284. },
  285. series: [{
  286. name: '工单量',
  287. type: 'pie',
  288. radius: '55%',
  289. center: ['50%', '60%'],
  290. data: [{
  291. name: '计划',
  292. value: 0,
  293. label: {
  294. normal: {
  295. formatter: "{d}%"
  296. }
  297. }
  298. },{
  299. name: '待保养',
  300. value: 0,
  301. label: {
  302. normal: {
  303. formatter: "{d}%"
  304. }
  305. }
  306. },
  307. {
  308. name: '异常',
  309. value: 0,
  310. label: {
  311. normal: {
  312. formatter: "{d}%"
  313. }
  314. }
  315. }
  316. ],
  317. itemStyle: {
  318. emphasis: {
  319. shadowBlur: 10,
  320. shadowOffsetX: 0,
  321. shadowColor: 'rgba(0, 0, 0, 0.5)'
  322. }
  323. }
  324. }]
  325. };
  326. myChart6.setOption(option);
  327. }
  328. //初始化 设备巡检统计
  329. function initPie5() {
  330. myChart5.clear();
  331. myChart5.showLoading();
  332. var option = {
  333. color: ['#049FF2', '#FDC744', '#ACA1F0'],
  334. title: {
  335. text: '巡检统计',
  336. x: 'center',
  337. textStyle: {
  338. color: '#fff'
  339. }
  340. },
  341. tooltip: {
  342. trigger: 'item',
  343. formatter: "{a} <br/>{b} : {c} ({d}%)"
  344. },
  345. legend: {
  346. orient: 'vertical',
  347. top: 26,
  348. left: 20,
  349. data: ['计划', '待巡检', '异常'],
  350. textStyle: {
  351. color: '#fff'
  352. }
  353. },
  354. series: [{
  355. name: '工单量',
  356. type: 'pie',
  357. radius: '55%',
  358. center: ['50%', '60%'],
  359. data: [{
  360. name: '计划',
  361. value: 0,
  362. label: {
  363. normal: {
  364. formatter: "{d}%"
  365. }
  366. }
  367. },
  368. {
  369. name: '待巡检',
  370. value: 0,
  371. label: {
  372. normal: {
  373. formatter: "{d}%"
  374. }
  375. }
  376. },
  377. {
  378. name: '异常',
  379. value: 0,
  380. label: {
  381. normal: {
  382. formatter: "{d}%"
  383. }
  384. }
  385. }
  386. ],
  387. itemStyle: {
  388. emphasis: {
  389. shadowBlur: 10,
  390. shadowOffsetX: 0,
  391. shadowColor: 'rgba(0, 0, 0, 0.5)'
  392. }
  393. }
  394. }]
  395. };
  396. myChart5.setOption(option);
  397. }
  398. //初始化 满意度统计
  399. function initPie4() {
  400. myChart4.clear();
  401. myChart4.showLoading();
  402. var option = {
  403. color: ['#049FF2', '#FDC744'],
  404. title: {
  405. text: '满意度统计',
  406. x: 'center',
  407. textStyle: {
  408. color: '#fff'
  409. }
  410. },
  411. tooltip: {
  412. trigger: 'item',
  413. formatter: "{a} <br/>{b} : {c} ({d}%)"
  414. },
  415. legend: {
  416. orient: 'vertical',
  417. top: 26,
  418. left: 20,
  419. data: ['满意', '不满意'],
  420. textStyle: {
  421. color: '#fff'
  422. }
  423. },
  424. series: [{
  425. name: '满意度',
  426. type: 'pie',
  427. radius: '55%',
  428. center: ['50%', '60%'],
  429. data: [{
  430. name: '满意',
  431. value: 0,
  432. label: {
  433. normal: {
  434. formatter: "{d}%"
  435. }
  436. }
  437. },
  438. {
  439. name: '不满意',
  440. value: 0,
  441. label: {
  442. normal: {
  443. formatter: "{d}%"
  444. }
  445. }
  446. }
  447. ],
  448. itemStyle: {
  449. emphasis: {
  450. shadowBlur: 10,
  451. shadowOffsetX: 0,
  452. shadowColor: 'rgba(0, 0, 0, 0.5)'
  453. }
  454. }
  455. }]
  456. };
  457. myChart4.setOption(option);
  458. }
  459. //初始化 维修及时率统计
  460. function initPie3() {
  461. myChart3.clear();
  462. myChart3.showLoading();
  463. var option = {
  464. color: ['#049FF2', '#FDC744', '#ACA1F0','#63D58E', '#70CD00',, ],
  465. title: {
  466. text: '维修及时率统计',
  467. x: 'center',
  468. textStyle: {
  469. color: '#fff'
  470. }
  471. },
  472. tooltip: {
  473. trigger: 'item',
  474. formatter: "{a} <br/>{b} : {c} ({d}%)"
  475. },
  476. grid: {
  477. top: 20,
  478. },
  479. legend: {
  480. // orient: 'vertical',
  481. top: 26,
  482. left: 0,
  483. // padding: [5, // 上
  484. // 10, // 右
  485. // 5, // 下
  486. // 0, // 左
  487. // ],
  488. //itemGap: 6,
  489. // orient: 'horizontal',
  490. // top: 30,
  491. data: ['2小时内', '4小时内', '8小时内', '24小时内', '24小时以上'],
  492. textStyle: {
  493. color: '#fff'
  494. }
  495. },
  496. series: [{
  497. name: '维修及时率',
  498. type: 'pie',
  499. radius: '55%',
  500. center: ['50%', '60%'],
  501. data: [{
  502. name: '2小时内',
  503. value: 0,
  504. label: {
  505. normal: {
  506. formatter: "{d}%"
  507. }
  508. }
  509. },
  510. {
  511. name: '4小时内',
  512. value: 0,
  513. label: {
  514. normal: {
  515. formatter: "{d}%"
  516. }
  517. }
  518. },
  519. {
  520. name: '8小时内',
  521. value: 0,
  522. label: {
  523. normal: {
  524. formatter: "{d}%"
  525. }
  526. }
  527. },
  528. {
  529. name: '24小时内',
  530. value: 0,
  531. label: {
  532. normal: {
  533. formatter: "{d}%"
  534. }
  535. }
  536. },
  537. {
  538. name: '24小时以上',
  539. value: 0,
  540. label: {
  541. normal: {
  542. formatter: "{d}%"
  543. }
  544. }
  545. },
  546. ],
  547. itemStyle: {
  548. emphasis: {
  549. shadowBlur: 10,
  550. shadowOffsetX: 0,
  551. shadowColor: 'rgba(0, 0, 0, 0.5)'
  552. }
  553. }
  554. }]
  555. };
  556. myChart3.setOption(option);
  557. }
  558. //初始化 维修状态统计
  559. function initPie2() {
  560. myChart2.clear();
  561. myChart2.showLoading();
  562. var option = {
  563. color: ['#049FF2', '#FDC744'],
  564. title: {
  565. text: '维修状态统计',
  566. x: 'center',
  567. textStyle: {
  568. color: '#fff'
  569. }
  570. },
  571. tooltip: {
  572. trigger: 'item',
  573. formatter: "{a} <br/>{b} : {c} ({d}%)"
  574. },
  575. legend: {
  576. orient: 'vertical',
  577. top: 26,
  578. left: 20,
  579. data: ['已维修', '待维修'],
  580. textStyle: {
  581. color: '#fff'
  582. }
  583. },
  584. series: [{
  585. name: '维修数量',
  586. type: 'pie',
  587. radius: '55%',
  588. center: ['50%', '60%'],
  589. data: [{
  590. name: '已维修',
  591. value: 0,
  592. label: {
  593. normal: {
  594. formatter: "{d}%"
  595. }
  596. }
  597. },
  598. {
  599. name: '待维修',
  600. value: 0,
  601. label: {
  602. normal: {
  603. formatter: "{d}%"
  604. }
  605. }
  606. },
  607. ],
  608. itemStyle: {
  609. emphasis: {
  610. shadowBlur: 10,
  611. shadowOffsetX: 0,
  612. shadowColor: 'rgba(0, 0, 0, 0.5)'
  613. }
  614. }
  615. }]
  616. };
  617. myChart2.setOption(option);
  618. }
  619. //初始化 报修统计
  620. function initPie1() {
  621. myChart1.clear();
  622. myChart1.showLoading();
  623. var option = {
  624. color: ['#FDC744', '#049FF2'],
  625. title: {
  626. text: '报修统计',
  627. x: 'center',
  628. textStyle: {
  629. color: '#fff'
  630. }
  631. },
  632. tooltip: {
  633. trigger: 'item',
  634. formatter: "{a} <br/>{b} : {c} ({d}%)"
  635. },
  636. legend: {
  637. orient: 'vertical',
  638. top: 26,
  639. left: 20,
  640. data: ['设备报修', '日常报修'],
  641. textStyle: {
  642. color: '#fff'
  643. }
  644. },
  645. series: [{
  646. name: '报修数量',
  647. type: 'pie',
  648. radius: '55%',
  649. center: ['50%', '60%'],
  650. data: [{
  651. name: '设备报修',
  652. value: 0,
  653. label: {
  654. normal: {
  655. formatter: "{d}%"
  656. }
  657. }
  658. },
  659. {
  660. name: '日常报修',
  661. value: 0,
  662. label: {
  663. normal: {
  664. formatter: "{d}%"
  665. }
  666. }
  667. }
  668. ],
  669. itemStyle: {
  670. emphasis: {
  671. shadowBlur: 10,
  672. shadowOffsetX: 0,
  673. shadowColor: 'rgba(0, 0, 0, 0.5)'
  674. }
  675. }
  676. }]
  677. };
  678. myChart1.setOption(option);
  679. }
  680. //初始化 工单数量统计
  681. function initPie0() {
  682. myChart0.clear();
  683. myChart0.showLoading();
  684. var option = {
  685. color: ['#FDC744', '#049FF2', '#ACA1F0'],
  686. title: {
  687. text: '工单数量统计',
  688. x: 'center',
  689. textStyle: {
  690. color: '#fff'
  691. }
  692. },
  693. tooltip: {
  694. trigger: 'item',
  695. formatter: "{a} <br/>{b} : {c} ({d}%)"
  696. },
  697. legend: {
  698. orient: 'vertical',
  699. top: 26,
  700. left: 20,
  701. data: ['微信', '电话', 'APP'],
  702. textStyle: {
  703. color: '#fff'
  704. }
  705. },
  706. series: [{
  707. name: '工单量',
  708. type: 'pie',
  709. radius: '55%',
  710. center: ['50%', '60%'],
  711. data: [{
  712. name: '微信',
  713. value: 0,
  714. label: {
  715. normal: {
  716. formatter: "{d}%"
  717. }
  718. }
  719. },
  720. {
  721. name: '电话',
  722. value: 0,
  723. label: {
  724. normal: {
  725. formatter: "{d}%"
  726. }
  727. }
  728. },
  729. {
  730. name: 'APP',
  731. value: 0,
  732. label: {
  733. normal: {
  734. formatter: "{d}%"
  735. }
  736. }
  737. }
  738. ],
  739. itemStyle: {
  740. emphasis: {
  741. shadowBlur: 10,
  742. shadowOffsetX: 0,
  743. shadowColor: 'rgba(0, 0, 0, 0.5)'
  744. }
  745. }
  746. }]
  747. };
  748. myChart0.setOption(option);
  749. }