jinfengCoalMine.html 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta
  6. name="viewport"
  7. content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"
  8. />
  9. <meta
  10. name="format-detection"
  11. content="telephone=no,email=no,date=no,address=no"
  12. />
  13. <title>生产数据</title>
  14. <link rel="stylesheet" type="text/css" href="../../css/api.css" />
  15. <!--<link rel="stylesheet" type="text/css" href="../../css/aui.css"/>-->
  16. <link rel="stylesheet" type="text/css" href="../../css/popoPicker.css" />
  17. <link rel="stylesheet" href="../../css/apiToast.css" />
  18. <link rel="stylesheet" type="text/css" href="../../css/style.css" />
  19. <link rel="stylesheet" href="../../css/projeck.css" />
  20. <style>
  21. body,
  22. html {
  23. background: #f3f3f3;
  24. }
  25. .api_layout {
  26. /*border-top: 1px solid #37b0e9;*/
  27. padding: 13px 10px;
  28. -webkit-box-sizing: border-box;
  29. -moz-box-sizing: border-box;
  30. box-sizing: border-box;
  31. }
  32. .navs_item li:first-child:after{
  33. background: #fff;
  34. height: 0;
  35. }
  36. .navs_item li:last-child:after{
  37. background: #fff;
  38. height: 0;
  39. }
  40. .navs_item{
  41. padding: 0 5px;
  42. }
  43. </style>
  44. </head>
  45. <body>
  46. <div class="api_layout">
  47. <!-- 公告 -->
  48. <div class="Notice1 borderRa">
  49. <p class="Stitle">公告:</p>
  50. <p class="Scontent Stitle"></p>
  51. </div>
  52. <!-- 导航 -->
  53. <div class="navs Notice borderRa">
  54. <ul class="navs_item flex-space">
  55. <li onclick="videoMonitor()">
  56. <div class="icon_p">
  57. <i class="icon"></i>
  58. </div>
  59. <span>视频监控</span>
  60. </li>
  61. <li onclick="personalLocationJu()">
  62. <div class="icon_p">
  63. <i class="icon"></i>
  64. </div>
  65. <span>人员定位</span>
  66. </li>
  67. <li onclick="securityMonitor()">
  68. <div class="icon_p">
  69. <i class="icon"></i>
  70. </div>
  71. <span>安全监测</span>
  72. </li>
  73. <li onclick="equipmentMonitoring()">
  74. <div class="icon_p">
  75. <i class="icon"></i>
  76. </div>
  77. <span>设备监控</span>
  78. </li>
  79. </ul>
  80. </div>
  81. <!-- 报警 -->
  82. <div class="Notice navs borderRa police beforS hide">
  83. <p class="Stitle centertT" style="padding-bottom: 5px;">安全监测报警</p>
  84. <ul class="navs_item flex-space">
  85. <li>
  86. <span>二级报警</span>
  87. <div class="circular alarmNum1" onclick="securityMonitor()">
  88. 0个
  89. </div>
  90. </li>
  91. <li>
  92. <span>三级报警</span>
  93. <div class="circular alarmNum2" onclick="securityMonitor()">
  94. 0个
  95. </div>
  96. </li>
  97. <li>
  98. <span>四级报警</span>
  99. <div class="circular alarmNum3" onclick="securityMonitor()">
  100. 0个
  101. </div>
  102. </li>
  103. </ul>
  104. </div>
  105. <!-- 瓦斯报警异常 -->
  106. <div class="Notice borderRa beforS hide">
  107. <p class="Stitle centertT">瓦斯异常情况</p>
  108. <ul class="items flex-space centertT">
  109. <li class="item" onclick="securityMonitor()">
  110. <span>报警</span>
  111. <p class="num Gasalarm">0个</p>
  112. <i class="imgIco"></i>
  113. </li>
  114. <li class="item" onclick="securityMonitor()">
  115. <span>断电</span>
  116. <p class="num duanDian">0个</p>
  117. <i class="imgIco"></i>
  118. </li>
  119. <li class="item" onclick="securityMonitor()">
  120. <span>故障</span>
  121. <p class="num guZhang">0个</p>
  122. <i class="imgIco"></i>
  123. </li>
  124. </ul>
  125. </div>
  126. <!-- 产量 进尺 -->
  127. <div class="Notice borderRa beforS hide">
  128. <p class="Stitle centertT">产量 进尺</p>
  129. <div class="Chart flex-space">
  130. <div style="width: 50%;" class="canvasParent centertT">
  131. <canvas id="yield" style="width: 100%; height: 140px;"></canvas>
  132. <span class="canvasTitle">今日产量</span>
  133. </div>
  134. <div class="centertT" style="width: 50%;">
  135. <canvas id="Footage" style="width: 100%; height: 140px;"></canvas>
  136. <span class="canvasTitle">今日掘进进尺</span>
  137. </div>
  138. </div>
  139. </div>
  140. <!-- 皮带秤 产量 -->
  141. <div class="Notice borderRa beforS hide">
  142. <p class="Stitle centertT">皮带秤瞬时产量</p>
  143. <div class="" style="width: 100%;">
  144. <canvas
  145. id="Belt"
  146. style="width: 100%; margin-top: 10px; height: 210px;"
  147. ></canvas>
  148. </div>
  149. </div>
  150. <!-- 销量 能耗 -->
  151. <div class="Notice borderRa beforS hide">
  152. <p class="Stitle centertT">销量 能耗</p>
  153. <div class="Chart flex-space">
  154. <div style="width: 50%;" class="canvasParent centertT">
  155. <canvas id="sales" style="width: 100%; height: 140px;"></canvas>
  156. <span class="canvasTitle">销量</span>
  157. </div>
  158. <div class="centertT" style="width: 50%;">
  159. <canvas id="energy" style="width: 100%; height: 140px;"></canvas>
  160. <span class="canvasTitle">能耗</span>
  161. </div>
  162. </div>
  163. </div>
  164. <!-- 隐患整治 三违 -->
  165. <div class="Notice borderRa beforS hide">
  166. <p class="Stitle centertT">隐患整治 三违</p>
  167. <div class="Chart flex-space">
  168. <div style="width: 50%;" class="canvasParent centertT">
  169. <canvas id="danger" style="width: 100%; height: 140px;"></canvas>
  170. <span class="canvasTitle">隐患整治</span>
  171. </div>
  172. <div class="centertT" style="width: 50%;">
  173. <canvas id="violation" style="width: 100%; height: 140px;"></canvas>
  174. <span class="canvasTitle">三违</span>
  175. </div>
  176. </div>
  177. </div>
  178. <!-- 一周产量 -->
  179. <div class="Notice borderRa hide">
  180. <!--<p class="Stitle flex-space">-->
  181. <!--<span> 一周产量趋势</span>-->
  182. <!--&lt;!&ndash; <span style="font-size:14px" class="currentNum">当前下井人数:</span> &ndash;&gt;-->
  183. <!--</p>-->
  184. <div class="Chart">
  185. <div class="flex-start">
  186. <div class="relative Sharebox screen">
  187. <input id="button-value" class="js-picker" value="周产量趋势" />
  188. <i class="lower"></i>
  189. </div>
  190. <div class="selectTime hide">
  191. <input class="button-value startYear" value="" />
  192. </div>
  193. <div class="selectTime1 hide">
  194. <input class="button-value startTime" value="" />
  195. </div>
  196. </div>
  197. <div class="" style="width: 100%;">
  198. <canvas
  199. id="weekYield"
  200. style="width: 100%; margin-top: 10px; height: 210px;"
  201. ></canvas>
  202. </div>
  203. </div>
  204. </div>
  205. <!-- 一周下井趋势 -->
  206. <div class="Notice borderRa hide afterS">
  207. <p class="Stitle flex-space">
  208. <span> 一周下井趋势</span>
  209. <span style="font-size: 14px;" class="currentNum"></span>
  210. </p>
  211. <div class="Chart">
  212. <div class="" style="width: 100%;">
  213. <canvas
  214. id="downWell"
  215. style="width: 100%; margin-top: 10px; height: 210px;"
  216. ></canvas>
  217. </div>
  218. </div>
  219. <p class="centertT seachDetatle" onclick="personalLocationJu()">
  220. 查看详情
  221. </p>
  222. </div>
  223. </div>
  224. <script src="../../script/api.js"></script>
  225. <script src="../../script/popoPicker.js"></script>
  226. <script src="../../script/f2.js"></script>
  227. <script src="../../script/config.js"></script>
  228. <script>
  229. var headers;
  230. var apiToast = new apiToast();
  231. apiready = function () {
  232. var info = $api.getStorage('data'),
  233. user = JSON.parse(info).data.user;
  234. token = JSON.parse(info).data.access_token;
  235. headers = {
  236. Authorization: 'Bearer ' + token,
  237. };
  238. openSharebox(); //选择器
  239. //公告
  240. noticeFun();
  241. // 图表权限
  242. chartsJurisdiction();
  243. // 监听切换tab标签,刷新页面
  244. api.addEventListener(
  245. {
  246. name: 'refreshProduction',
  247. },
  248. function (ret, err) {
  249. //公告
  250. noticeFun();
  251. // 图表权限
  252. chartsJurisdiction();
  253. }
  254. );
  255. };
  256. // 下拉刷新
  257. function setCustomRefreshHeader() {
  258. api.setRefreshHeaderInfo(
  259. {
  260. bgColor: '#f2f2f2',
  261. textColor: '#000',
  262. textDown: '下拉刷新...',
  263. textUp: '松开刷新...',
  264. },
  265. function (ret, err) {
  266. //公告
  267. noticeFun();
  268. // 图表权限
  269. chartsJurisdiction();
  270. }
  271. );
  272. }
  273. // 打开视频
  274. function videoMonitor() {
  275. $http.fnReuestDataNoW(
  276. jinfengUrlRouter.regionApi,
  277. headers,
  278. 'get',
  279. {show: 'must'},
  280. regionFun
  281. );
  282. }
  283. function regionFun(ret, err) {
  284. apiToast.hide();
  285. // console.log(JSON.stringify(ret));
  286. // console.log(JSON.stringify(err));
  287. if (ret.code === 0) {
  288. // 打开视频
  289. $event.openWin(
  290. 'videoMonitor',
  291. '../videoJinfeng/videoMonitor',
  292. '',
  293. ''
  294. );
  295. } else if (ret.code === 1) {
  296. api.alert({
  297. title: '提示',
  298. msg: '该用户没有此权限',
  299. });
  300. }
  301. }
  302. // 安全监测权限
  303. function securityMonitor() {
  304. // $event.openWin('securityMonitor','../productionData/securityMonitor','','');
  305. $http.fnReuestDataNologing(
  306. jinfengUrlRouter.securityJurisdiction,
  307. headers,
  308. 'post',
  309. {show: 'must'},
  310. function (ret, err) {
  311. // console.log(JSON.stringify(ret));
  312. // console.log(JSON.stringify(err));
  313. if (ret.code === 0) {
  314. $event.openWin(
  315. 'securityMonitor',
  316. '../productionDataJinfeng/securityMonitor',
  317. '',
  318. ''
  319. );
  320. } else if (ret.code === 1) {
  321. api.alert({
  322. title: '提示',
  323. msg: '该用户没有此权限',
  324. });
  325. }
  326. }
  327. );
  328. }
  329. // 人员定位权限
  330. function personalLocationJu() {
  331. $http.fnReuestDataNologing(
  332. jinfengUrlRouter.personalLocation,
  333. headers,
  334. 'post',
  335. {show: 'must'},
  336. function (ret, err) {
  337. if (ret.code === 0) {
  338. $event.openWin(
  339. 'persnoalLocation',
  340. '../productionDataJinfeng/persnoalLocation',
  341. '',
  342. ''
  343. );
  344. } else if (ret.code === 1) {
  345. api.alert({
  346. title: '提示',
  347. msg: '该用户没有此权限',
  348. });
  349. }
  350. }
  351. );
  352. }
  353. // 生产图表权限
  354. function chartsJurisdiction() {
  355. $api.val($api.dom('#button-value'), '周产量趋势');
  356. $api.addCls($api.dom('.selectTime1'), 'hide');
  357. $api.addCls($api.dom('.selectTime'), 'hide');
  358. $http.fnReuestDataNologing(
  359. jinfengUrlRouter.chartsJurisdiction,
  360. headers,
  361. 'post',
  362. {show: 'must'},
  363. function (ret, err) {
  364. if (ret && ret.code === 0) {
  365. // 今日产量
  366. yieldFootage();
  367. footage();
  368. //一周的产量
  369. weekYield(false, 210);
  370. // 一周下井趋势
  371. downWellFun();
  372. // 报警
  373. getAlarmData();
  374. //瓦斯异常
  375. getGas();
  376. // 皮带称
  377. getBeltData();
  378. // 下拉刷新
  379. setCustomRefreshHeader();
  380. var Notice = $api.domAll('.Notice');
  381. for (var i = 0; i < Notice.length; i++) {
  382. $api.removeCls(Notice[i], 'hide');
  383. }
  384. } else if (ret && ret.code === 1) {
  385. api.alert({
  386. title: '提示',
  387. msg: '该用户没有此权限',
  388. });
  389. }
  390. }
  391. );
  392. }
  393. // 产量 进尺
  394. function yieldFootage() {
  395. $http.fnReuestDataNologing(
  396. jinfengUrlRouter.getBanNowDayTotal,
  397. '',
  398. 'get',
  399. '',
  400. function (ret, err) {
  401. if (ret && ret.status === 20000 && ret.data.length > 0) {
  402. api.refreshHeaderLoadDone();
  403. var data = [
  404. {
  405. x: '1',
  406. y: 75,
  407. },
  408. ];
  409. var chart = new F2.Chart({
  410. id: 'yield',
  411. pixelRatio: window.devicePixelRatio,
  412. });
  413. chart.source(data, {
  414. y: {
  415. max: 100,
  416. min: 0,
  417. },
  418. });
  419. chart.axis(false);
  420. chart.tooltip(false);
  421. chart.coord('polar', {
  422. transposed: true,
  423. innerRadius: 0.92,
  424. radius: 0.99,
  425. });
  426. chart.guide().arc({
  427. start: [0, 0],
  428. end: [1, 99.98],
  429. top: false,
  430. style: {
  431. lineWidth: 8,
  432. stroke: '#ccc',
  433. },
  434. });
  435. chart.guide().text({
  436. position: ['50%', '50%'],
  437. content: Math.floor(ret.data[0].DayTotal / 1) + '吨',
  438. style: {
  439. fontSize: 16,
  440. fill: '#3d3c42',
  441. },
  442. });
  443. chart
  444. .interval()
  445. .position('x*y')
  446. .size(8)
  447. .animate({
  448. appear: {
  449. duration: 1200,
  450. easing: 'cubicIn',
  451. },
  452. })
  453. .color('#6C6F74');
  454. chart.render();
  455. }
  456. }
  457. );
  458. }
  459. function equipmentMonitoring() {
  460. $event.openTabLayout(
  461. 'rubberTyredCar',
  462. '../productionDataJinfeng/equipmentMonitoring',
  463. '设备监控',
  464. ''
  465. );
  466. }
  467. function footage() {
  468. $http.fnReuestDataNologing(
  469. jinfengUrlRouter.getSchedule,
  470. '',
  471. 'post',
  472. '',
  473. function (ret, err) {
  474. if (ret.code === 0 && ret) {
  475. // 进尺
  476. var data = [
  477. {
  478. x: '1',
  479. y: ret.data['tunnel'].reality,
  480. },
  481. ];
  482. var chart = new F2.Chart({
  483. id: 'Footage',
  484. pixelRatio: window.devicePixelRatio,
  485. });
  486. chart.source(data, {
  487. y: {
  488. max: ret.data['tunnel'].plan,
  489. min: 0,
  490. },
  491. });
  492. chart.axis(false);
  493. chart.tooltip(false);
  494. chart.coord('polar', {
  495. transposed: true,
  496. innerRadius: 0.92,
  497. radius: 0.99,
  498. });
  499. chart.guide().arc({
  500. start: [0, 0],
  501. end: [1, ret.data['tunnel'].plan - 0.1],
  502. top: false,
  503. style: {
  504. lineWidth: 8,
  505. stroke: '#ccc',
  506. },
  507. });
  508. chart.guide().text({
  509. position: ['50%', '50%'],
  510. content: ret.data['tunnel'].today + '米',
  511. style: {
  512. fontSize: 16,
  513. fill: '#3d3c42',
  514. },
  515. });
  516. chart
  517. .interval()
  518. .position('x*y')
  519. .size(8)
  520. .animate({
  521. appear: {
  522. duration: 1200,
  523. easing: 'cubicIn',
  524. },
  525. })
  526. .color('#14D2B8');
  527. chart.render();
  528. // 销量
  529. var data1 = [
  530. {
  531. x: '1',
  532. y: ret.data['sales'].reality,
  533. },
  534. ];
  535. var chartSales = new F2.Chart({
  536. id: 'sales',
  537. pixelRatio: window.devicePixelRatio,
  538. });
  539. chartSales.source(data1, {
  540. y: {
  541. max: ret.data['sales'].plan,
  542. min: 0,
  543. },
  544. });
  545. chartSales.axis(false);
  546. chartSales.tooltip(false);
  547. chartSales.coord('polar', {
  548. transposed: true,
  549. innerRadius: 0.92,
  550. radius: 0.99,
  551. });
  552. chartSales.guide().arc({
  553. start: [0, 0],
  554. end: [1, ret.data['sales'].plan - 0.1],
  555. top: false,
  556. style: {
  557. lineWidth: 8,
  558. stroke: '#ccc',
  559. },
  560. });
  561. chartSales.guide().text({
  562. position: ['50%', '50%'],
  563. content: ret.data['sales'].today + '吨',
  564. style: {
  565. fontSize: 16,
  566. fill: '#3d3c42',
  567. },
  568. });
  569. chartSales
  570. .interval()
  571. .position('x*y')
  572. .size(8)
  573. .animate({
  574. appear: {
  575. duration: 1200,
  576. easing: 'cubicIn',
  577. },
  578. })
  579. .color('#14D2B8');
  580. chartSales.render();
  581. // 能耗
  582. var data2 = [
  583. {
  584. x: '1',
  585. y: ret.data['energy'].reality,
  586. },
  587. ];
  588. var chartEnergy = new F2.Chart({
  589. id: 'energy',
  590. pixelRatio: window.devicePixelRatio,
  591. });
  592. chartEnergy.source(data2, {
  593. y: {
  594. max: ret.data['energy'].plan,
  595. min: 0,
  596. },
  597. });
  598. chartEnergy.axis(false);
  599. chartEnergy.tooltip(false);
  600. chartEnergy.coord('polar', {
  601. transposed: true,
  602. innerRadius: 0.92,
  603. radius: 0.99,
  604. });
  605. chartEnergy.guide().arc({
  606. start: [0, 0],
  607. end: [1, ret.data['energy'].plan - 0.1],
  608. top: false,
  609. style: {
  610. lineWidth: 8,
  611. stroke: '#ccc',
  612. },
  613. });
  614. chartEnergy.guide().text({
  615. position: ['50%', '50%'],
  616. content: ret.data['energy'].today + '千瓦',
  617. style: {
  618. fontSize: 16,
  619. fill: '#3d3c42',
  620. },
  621. });
  622. chartEnergy
  623. .interval()
  624. .position('x*y')
  625. .size(8)
  626. .animate({
  627. appear: {
  628. duration: 1200,
  629. easing: 'cubicIn',
  630. },
  631. })
  632. .color('#FF8B8C');
  633. chartEnergy.render();
  634. // 隐患整治
  635. var data3 = [
  636. {
  637. x: '1',
  638. y: ret.data['danger'].reality,
  639. },
  640. ];
  641. var chartDanger = new F2.Chart({
  642. id: 'danger',
  643. pixelRatio: window.devicePixelRatio,
  644. });
  645. chartDanger.source(data3, {
  646. y: {
  647. max: ret.data['danger'].plan,
  648. min: 0,
  649. },
  650. });
  651. chartDanger.axis(false);
  652. chartDanger.tooltip(false);
  653. chartDanger.coord('polar', {
  654. transposed: true,
  655. innerRadius: 0.92,
  656. radius: 0.99,
  657. });
  658. chartDanger.guide().arc({
  659. start: [0, 0],
  660. end: [1, ret.data['danger'].plan - 0.1],
  661. top: false,
  662. style: {
  663. lineWidth: 8,
  664. stroke: '#ccc',
  665. },
  666. });
  667. chartDanger.guide().text({
  668. position: ['50%', '50%'],
  669. content: ret.data['danger'].today + '个',
  670. style: {
  671. fontSize: 16,
  672. fill: '#3d3c42',
  673. },
  674. });
  675. chartDanger
  676. .interval()
  677. .position('x*y')
  678. .size(8)
  679. .animate({
  680. appear: {
  681. duration: 1200,
  682. easing: 'cubicIn',
  683. },
  684. })
  685. .color('#14D2B8');
  686. chartDanger.render();
  687. //三违
  688. var data4 = [
  689. {
  690. x: '1',
  691. y: ret.data['violation'].reality,
  692. },
  693. ];
  694. var chartViolation = new F2.Chart({
  695. id: 'violation',
  696. pixelRatio: window.devicePixelRatio,
  697. });
  698. chartViolation.source(data4, {
  699. y: {
  700. max: ret.data['violation'].plan,
  701. min: 0,
  702. },
  703. });
  704. chartViolation.axis(false);
  705. chartViolation.tooltip(false);
  706. chartViolation.coord('polar', {
  707. transposed: true,
  708. innerRadius: 0.92,
  709. radius: 0.99,
  710. });
  711. chartViolation.guide().arc({
  712. start: [0, 0],
  713. end: [1, ret.data['violation'].plan - 0.1],
  714. top: false,
  715. style: {
  716. lineWidth: 8,
  717. stroke: '#ccc',
  718. },
  719. });
  720. chartViolation.guide().text({
  721. position: ['50%', '50%'],
  722. content: ret.data['violation'].today + '个',
  723. style: {
  724. fontSize: 16,
  725. fill: '#3d3c42',
  726. },
  727. });
  728. chartViolation
  729. .interval()
  730. .position('x*y')
  731. .size(8)
  732. .animate({
  733. appear: {
  734. duration: 1200,
  735. easing: 'cubicIn',
  736. },
  737. })
  738. .color('#FF8B8C');
  739. chartViolation.render();
  740. }
  741. }
  742. );
  743. }
  744. // 一周下井趋势
  745. function downWellFun() {
  746. $http.fnReuestDataNologing(
  747. jinfengUrlRouter.downWellTotal,
  748. '',
  749. 'post',
  750. '',
  751. function (ret, err) {
  752. if (ret && ret.code === 0) {
  753. api.refreshHeaderLoadDone();
  754. var data = ret.data;
  755. var chart = new F2.Chart({
  756. id: 'downWell',
  757. pixelRatio: window.devicePixelRatio,
  758. });
  759. chart.source(data, {
  760. pepole_num: {
  761. tickCount: 5,
  762. },
  763. });
  764. chart.tooltip({
  765. custom: false, // 自定义 tooltip 内容框
  766. });
  767. chart
  768. .interval()
  769. .position('dater*pepole_num')
  770. .color('classes')
  771. .adjust('stack');
  772. chart.render();
  773. }
  774. }
  775. );
  776. // 当前人数
  777. $http.fnReuestDataNologing(
  778. jinfengUrlRouter.currentPersonalNum,
  779. '',
  780. 'post',
  781. '',
  782. function (ret, err) {
  783. if (ret && ret.code === 0 && ret.data.length > 0) {
  784. $api.html(
  785. $api.dom('.currentNum'),
  786. '当前下井人数:' + ret.data[0].pepole_num + '人'
  787. );
  788. }
  789. }
  790. );
  791. }
  792. //一周的产量
  793. function weekYield(transposed, height, type, startTime, endTime) {
  794. if (type != '年产量趋势') {
  795. var data = {
  796. dateTime: startTime,
  797. endTime: endTime,
  798. };
  799. $http.fnReuestDataNologing(
  800. jinfengUrlRouter.getBanDayList,
  801. '',
  802. 'get',
  803. data,
  804. function (ret, err) {
  805. if (ret && ret.status === 20000) {
  806. api.refreshHeaderLoadDone();
  807. var data = ret.data;
  808. var chart = new F2.Chart({
  809. id: 'weekYield',
  810. height: height,
  811. pixelRatio: window.devicePixelRatio,
  812. });
  813. chart.source(data, {
  814. banTotal2: {
  815. tickCount: 5,
  816. },
  817. });
  818. chart.coord({
  819. transposed: transposed,
  820. });
  821. chart.tooltip({
  822. custom: false, // 自定义 tooltip 内容框
  823. });
  824. chart
  825. .interval()
  826. .position('curDT*total')
  827. .color('devName')
  828. .adjust('stack');
  829. chart.render();
  830. }
  831. }
  832. );
  833. } else {
  834. $http.fnReuestDataNologing(
  835. jinfengUrlRouter.getMonthSumByYear,
  836. '',
  837. 'get',
  838. {year: startTime},
  839. function (ret, err) {
  840. if (ret && ret.status === 20000) {
  841. api.refreshHeaderLoadDone();
  842. var data = ret.data;
  843. var chart = new F2.Chart({
  844. id: 'weekYield',
  845. height: height,
  846. pixelRatio: window.devicePixelRatio,
  847. });
  848. chart.source(data, {
  849. banTotal2: {
  850. tickCount: 5,
  851. },
  852. });
  853. chart.coord({
  854. transposed: transposed,
  855. });
  856. chart.axis('total', {
  857. line: null,
  858. grid: F2.Global._defaultAxis.grid,
  859. label: function label(text, index, total) {
  860. var textCfg = {
  861. text: text / 10000 + '万吨',
  862. };
  863. if (index === 0) {
  864. textCfg.textAlign = 'right';
  865. } else if (index === total - 1) {
  866. textCfg.textAlign = 'right';
  867. } else {
  868. textCfg.textAlign = 'right';
  869. }
  870. return textCfg;
  871. },
  872. });
  873. chart
  874. .interval()
  875. .position('month*total')
  876. .color('devName')
  877. .adjust('stack');
  878. chart.render();
  879. }
  880. }
  881. );
  882. }
  883. }
  884. // 公告
  885. function noticeFun() {
  886. $http.fnReuestDataNologing(
  887. jinfengUrlRouter.getBulletin,
  888. '',
  889. 'post',
  890. '',
  891. function (ret, err) {
  892. if (ret && ret.code === 0) {
  893. api.refreshHeaderLoadDone();
  894. $api.html(
  895. $api.dom('.Scontent'),
  896. ret.data.content == '' ? '暂无公告' : ret.data.content
  897. );
  898. }
  899. }
  900. );
  901. }
  902. // 报警
  903. function getAlarmData() {
  904. $http.fnReuestDataNologing(
  905. jinfengUrlRouter.getAlarmData,
  906. '',
  907. 'post',
  908. '',
  909. function (ret, err) {
  910. if (ret && ret.code === 0) {
  911. $api.html($api.dom('.alarmNum1'), ret.data.level2 + '个');
  912. $api.html($api.dom('.alarmNum2'), ret.data.level3 + '个');
  913. $api.html($api.dom('.alarmNum3'), ret.data.level4 + '个');
  914. }
  915. }
  916. );
  917. }
  918. // 瓦斯异常情况
  919. function getGas() {
  920. $http.fnReuestDataNologing(
  921. jinfengUrlRouter.getGasData,
  922. '',
  923. 'post',
  924. '',
  925. function (ret, err) {
  926. if (ret && ret.code === 0) {
  927. $api.html($api.dom('.Gasalarm'), ret.data[0].count + '个');
  928. $api.html($api.dom('.duanDian'), ret.data[1].count + '个');
  929. $api.html($api.dom('.guZhang'), ret.data[2].count + '个');
  930. }
  931. }
  932. );
  933. }
  934. // 选择时间
  935. function openSharebox() {
  936. var myDate = new Date();
  937. var tYear = myDate.getFullYear();
  938. var tmonth = myDate.getMonth() + 1;
  939. $api.val($api.dom('.startYear'), tYear + '年');
  940. $api.val(
  941. $api.dom('.startTime'),
  942. tYear + '-' + (tmonth < 10 ? 0 + '' + tmonth : tmonth)
  943. );
  944. new popoPicker('.js-picker', {
  945. container: '.screen',
  946. wheels: [
  947. {
  948. infinite: false,
  949. //selected: 3,
  950. data: [
  951. {value: 0, display: '周产量趋势'},
  952. {value: 1, display: '月产量趋势'},
  953. {value: 2, display: '年产量趋势'},
  954. ],
  955. },
  956. ],
  957. background: 'light',
  958. save: function (data) {
  959. switch (data.result[0].display) {
  960. case '周产量趋势':
  961. $api.addCls($api.dom('.selectTime1'), 'hide');
  962. $api.addCls($api.dom('.selectTime'), 'hide');
  963. weekYield(false, 210);
  964. break;
  965. case '月产量趋势':
  966. $api.removeCls($api.dom('.selectTime1'), 'hide');
  967. $api.addCls($api.dom('.selectTime'), 'hide');
  968. weekYield(
  969. true,
  970. 700,
  971. '',
  972. tYear +
  973. '-' +
  974. (tmonth < 10 ? 0 + '' + tmonth + '-' + 0 + '' + 1 : tmonth),
  975. tYear +
  976. '-' +
  977. (tmonth < 10 ? 0 + '' + tmonth + '-' + 31 : tmonth),
  978. ''
  979. );
  980. break;
  981. case '年产量趋势':
  982. $api.addCls($api.dom('.selectTime1'), 'hide');
  983. $api.removeCls($api.dom('.selectTime'), 'hide');
  984. weekYield(false, 300, data.result[0].display, tYear);
  985. break;
  986. default:
  987. }
  988. },
  989. });
  990. new popoDateTime('.startTime', {
  991. container: '.selectTime1',
  992. background: 'light',
  993. save: function (data) {
  994. weekYield(true, 700, '', data + '-' + 0 + '' + 1, data + '-' + 31);
  995. },
  996. });
  997. new popoYear('.startYear', {
  998. container: '.selectTime',
  999. background: 'light',
  1000. save: function (data) {
  1001. $api.val($api.dom('.startYear'), data + '年');
  1002. weekYield(false, 300, '年产量趋势', data);
  1003. },
  1004. });
  1005. }
  1006. // 皮带称数据
  1007. function getBeltData() {
  1008. $http.fnReuestDataNologing(
  1009. jinfengUrlRouter.getDayHourTotal,
  1010. '',
  1011. 'get',
  1012. '',
  1013. function (ret, err) {
  1014. if (ret.status === 20000) {
  1015. var data = ret.data;
  1016. var chart = new F2.Chart({
  1017. id: 'Belt',
  1018. pixelRatio: window.devicePixelRatio,
  1019. });
  1020. chart.source(data, {
  1021. time: {
  1022. type: 'timeCat',
  1023. mask: 'hh:mm',
  1024. tickCount: 5,
  1025. range: [0, 1],
  1026. },
  1027. });
  1028. chart.tooltip({
  1029. showCrosshairs: true,
  1030. showItemMarker: false,
  1031. onShow: function onShow(ev) {
  1032. var items = ev.items;
  1033. items[0].name = null;
  1034. items[0].value = items[0].value + '吨';
  1035. },
  1036. });
  1037. chart.axis('day', {
  1038. label: function label(text, index, total) {
  1039. var textCfg = {};
  1040. if (index === 0) {
  1041. textCfg.textAlign = 'left';
  1042. } else if (index === total - 1) {
  1043. textCfg.textAlign = 'right';
  1044. }
  1045. return textCfg;
  1046. },
  1047. });
  1048. if (ret.data.length != 0) {
  1049. chart.legend({
  1050. custom: true,
  1051. itemWidth: null,
  1052. nameStyle: {
  1053. textAlign: 'middle',
  1054. fontSize: '14',
  1055. textBaseline: 'middle',
  1056. },
  1057. items: [
  1058. {
  1059. name: '皮带秤',
  1060. marker: {
  1061. symbol: 'circle',
  1062. radius: 5,
  1063. fill:
  1064. ret.data[ret.data.length - 1].runState === 'Stop'
  1065. ? '#E74C3C'
  1066. : '#2ECC71',
  1067. },
  1068. },
  1069. ],
  1070. });
  1071. }
  1072. chart.line().position('time*total').shape('smooth');
  1073. chart.point().position('time*total').shape('smooth').style({
  1074. stroke: '#fff',
  1075. lineWidth: 1,
  1076. });
  1077. chart.render();
  1078. }
  1079. }
  1080. );
  1081. }
  1082. </script>
  1083. </body>
  1084. </html>