dashboard3.html 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="keywords" content="dongke,mes,ibossmes">
  6. <meta name="description" content="制造企业生产过程执行管理系统">
  7. <meta name="author" content="xuwei">
  8. <title>东科软件</title>
  9. <script src="/plugins/xeasyui/xeasyui.min.js"></script>
  10. <script src="/plugins/chartjs/chart.min.js"></script>
  11. <script src="/plugins/chartjs/utils.js"></script>
  12. <script src="/plugins/xcountto/xcountTo.min.js"></script>
  13. <style type="text/css">
  14. .panel-body
  15. {
  16. background-color:#444;
  17. }
  18. </style>
  19. </head>
  20. <body style="width:1200px;color:white;background-color:#666">
  21. <script type="text/javascript">
  22. $(document).ready(function () {
  23. //今日包装单
  24. $("#count-form-all-day").attr('data-to', randomScalingFactor100());
  25. $("#count-form-all-day").countTo();
  26. //今日包装单完成
  27. $("#count-form-complete-day").attr('data-to', randomScalingFactor100());
  28. $("#count-form-complete-day").countTo();
  29. //今日入库
  30. $("#count-product-in-day").attr('data-to', randomScalingFactor100());
  31. $("#count-product-in-day").countTo();
  32. //今日出库
  33. $("#count-product-out-day").attr('data-to', randomScalingFactor100());
  34. $("#count-product-out-day").countTo();
  35. //今日库存
  36. $("#count-product-all-day").attr('data-to', randomScalingFactor100());
  37. $("#count-product-all-day").countTo();
  38. });
  39. </script>
  40. <!--第一行-->
  41. <div style="float:left;">
  42. <div style="float: left; padding:5px;">
  43. <div id="count_bar" class="easyui-panel" title="今日包装单" data-options="collapsible:true,width:180,iconCls:'icon-grid'">
  44. <div style="padding:10px;text-align:center">
  45. <div id="count-form-all-day" data-speed="2000" style="font-size:40px;"></div>
  46. </div>
  47. </div>
  48. </div>
  49. <div style="float: left; padding:5px;">
  50. <div id="count_bar" class="easyui-panel" title="今日包装单完成" data-options="collapsible:true,width:180,iconCls:'icon-grid'">
  51. <div style="padding:10px;text-align:center">
  52. <div id="count-form-complete-day" data-speed="2000" style="font-size:40px;"></div>
  53. </div>
  54. </div>
  55. </div>
  56. <div style="float: left; padding:5px;">
  57. <div id="count_bar" class="easyui-panel" title="今日入库(成瓷库)" data-options="collapsible:true,width:180,iconCls:'icon-grid'">
  58. <div style="padding:10px;text-align:center">
  59. <div id="count-product-in-day" data-speed="2000" style="font-size:40px;"></div>
  60. </div>
  61. </div>
  62. </div>
  63. <div style="float: left; padding:5px;">
  64. <div id="count_bar" class="easyui-panel" title="今日出库(成瓷库)" data-options="collapsible:true,width:180,iconCls:'icon-grid'">
  65. <div style="padding:10px;text-align:center">
  66. <div id="count-product-out-day" data-speed="2000" style="font-size:40px;"></div>
  67. </div>
  68. </div>
  69. </div>
  70. <div style="float: left; padding:5px;">
  71. <div id="count_bar" class="easyui-panel" title="今日库存(成瓷库)" data-options="collapsible:true,width:387,iconCls:'icon-grid'">
  72. <div style="padding:10px;text-align:center;">
  73. <span id="count-product-all-day" data-speed="1500" style="font-size:40px;"></span>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. <!--第二行-->
  79. <div style="float:left;">
  80. <div style="float: left; padding:5px;">
  81. <div id="count_bar" class="easyui-panel" title="数据统计" data-options="collapsible:true,width:750,iconCls:'icon-grid'">
  82. <div style="padding:10px;">
  83. <canvas id="barcanvas" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;"></canvas>
  84. </div>
  85. </div>
  86. </div>
  87. <div style="float: left; padding:5px;">
  88. <div id="count_bar" class="easyui-panel" title="数据统计" data-options="collapsible:true,width:387,height:423,iconCls:'icon-grid'">
  89. <div style="padding:10px;">
  90. <canvas id="piecanvas" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none; height:100px; width:100px;"></canvas>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. <!--第三行-->
  96. <div style="float:left;">
  97. <div style="float: left; padding:5px;">
  98. <div id="count_bar" class="easyui-panel" title="数据统计" data-options="collapsible:true,width:750,iconCls:'icon-grid'">
  99. <div style="padding:10px;">
  100. <canvas id="linecanvas" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;"></canvas>
  101. </div>
  102. </div>
  103. </div>
  104. <div style="float: left; padding:5px;">
  105. <div id="count_bar" class="easyui-panel" title="数据统计" data-options="collapsible:true,width:387,height:423,iconCls:'icon-grid'">
  106. <div style="padding:10px;">
  107. <canvas id="doughnutcanvas" style="-moz-user-select: none;-webkit-user-select: none;-ms-user-select: none;height:100px; width:100px;"></canvas>
  108. </div>
  109. </div>
  110. </div>
  111. </div>
  112. <!--第四行-->
  113. <div style="float:left;">
  114. <div style="float: left; padding:5px;">
  115. </div>
  116. <div style="float: left; padding:5px;">
  117. </div>
  118. </div>
  119. <script>
  120. //window.chartColors = {
  121. // red: 'rgb(255, 99, 132)',
  122. // orange: 'rgb(255, 159, 64)',
  123. // yellow: 'rgb(255, 205, 86)',
  124. // green: 'rgb(75, 192, 192)',
  125. // blue: 'rgb(54, 162, 235)',
  126. // purple: 'rgb(153, 102, 255)',
  127. // grey: 'rgb(231,233,237)'
  128. //};
  129. var color = Chart.helpers.color;
  130. window.chartColors = {
  131. red: color('rgb(255, 99, 132)').alpha(1).rgbString(),
  132. orange: color('rgb(255, 159, 64)').alpha(1).rgbString(),
  133. yellow: color('rgb(255, 205, 86)').alpha(1).rgbString(),
  134. green: color('rgb(75, 192, 192)').alpha(1).rgbString(),
  135. blue: color('rgb(54, 162, 235)').alpha(1).rgbString(),
  136. purple: color('rgb(153, 102, 255)').alpha(1).rgbString(),
  137. grey: color('rgb(231,233,237)').alpha(1).rgbString()
  138. };
  139. window.randomScalingFactor = function () {
  140. return (Math.random() > 0.5 ? 1.0 : 1.0) * Math.round(Math.random() * 100);
  141. }
  142. window.randomScalingFactor100 = function () {
  143. return Math.round(Math.random() * 100);
  144. }
  145. window.onload = function () {
  146. Chart.defaults.global.defaultFontColor = 'white';
  147. //柱图
  148. var barConfig = {
  149. labels: ['Red', 'Blue', 'Purple', 'Yellow'],
  150. data: {
  151. labels: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
  152. datasets: [{
  153. label: '注浆数量',
  154. backgroundColor: color(window.chartColors.red).alpha(0.6).rgbString(),
  155. borderColor: window.chartColors.red,
  156. borderWidth: 1,
  157. data: [
  158. randomScalingFactor(),
  159. randomScalingFactor(),
  160. randomScalingFactor(),
  161. randomScalingFactor(),
  162. randomScalingFactor(),
  163. randomScalingFactor(),
  164. randomScalingFactor(),
  165. randomScalingFactor(),
  166. randomScalingFactor(),
  167. randomScalingFactor(),
  168. randomScalingFactor(),
  169. randomScalingFactor()
  170. ]
  171. }, {
  172. label: '施釉数量',
  173. backgroundColor: color(window.chartColors.orange).alpha(0.6).rgbString(),
  174. borderColor: window.chartColors.orange,
  175. borderWidth: 1,
  176. data: [
  177. randomScalingFactor(),
  178. randomScalingFactor(),
  179. randomScalingFactor(),
  180. randomScalingFactor(),
  181. randomScalingFactor(),
  182. randomScalingFactor(),
  183. randomScalingFactor(),
  184. randomScalingFactor(),
  185. randomScalingFactor(),
  186. randomScalingFactor(),
  187. randomScalingFactor(),
  188. randomScalingFactor()
  189. ]
  190. }, {
  191. label: '交坯数量',
  192. backgroundColor: color(window.chartColors.yellow).alpha(0.6).rgbString(),
  193. borderColor: window.chartColors.yellow,
  194. borderWidth: 1,
  195. data: [
  196. randomScalingFactor(),
  197. randomScalingFactor(),
  198. randomScalingFactor(),
  199. randomScalingFactor(),
  200. randomScalingFactor(),
  201. randomScalingFactor(),
  202. randomScalingFactor(),
  203. randomScalingFactor(),
  204. randomScalingFactor(),
  205. randomScalingFactor(),
  206. randomScalingFactor(),
  207. randomScalingFactor()
  208. ]
  209. }, {
  210. label: '烧成数量',
  211. backgroundColor: color(window.chartColors.green).alpha(0.6).rgbString(),
  212. borderColor: window.chartColors.green,
  213. borderWidth: 1,
  214. data: [
  215. randomScalingFactor(),
  216. randomScalingFactor(),
  217. randomScalingFactor(),
  218. randomScalingFactor(),
  219. randomScalingFactor(),
  220. randomScalingFactor(),
  221. randomScalingFactor(),
  222. randomScalingFactor(),
  223. randomScalingFactor(),
  224. randomScalingFactor(),
  225. randomScalingFactor(),
  226. randomScalingFactor()
  227. ]
  228. }, {
  229. label: '成品数量',
  230. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  231. borderColor: window.chartColors.blue,
  232. borderWidth: 1,
  233. data: [
  234. randomScalingFactor(),
  235. randomScalingFactor(),
  236. randomScalingFactor(),
  237. randomScalingFactor(),
  238. randomScalingFactor(),
  239. randomScalingFactor(),
  240. randomScalingFactor(),
  241. randomScalingFactor(),
  242. randomScalingFactor(),
  243. randomScalingFactor(),
  244. randomScalingFactor(),
  245. randomScalingFactor()
  246. ]
  247. }]
  248. },
  249. type: 'bar',
  250. options: {
  251. legend: {
  252. labels: {
  253. // This more specific font property overrides the global property
  254. fontColor: 'white'
  255. }
  256. },
  257. title: {
  258. display: false,
  259. text: "Chart.js Bar Chart - Stacked"
  260. },
  261. tooltips: {
  262. mode: 'index',
  263. intersect: false
  264. },
  265. responsive: true,
  266. scales: {
  267. xAxes: [{
  268. stacked: true,
  269. }],
  270. yAxes: [{
  271. stacked: true
  272. }]
  273. }
  274. }
  275. };
  276. var ctxBar = document.getElementById("barcanvas").getContext("2d");
  277. window.Bar = new Chart(ctxBar, barConfig);
  278. //饼图
  279. var pieConfig = {
  280. data: {
  281. datasets: [{
  282. data: [
  283. randomScalingFactor100(),
  284. randomScalingFactor100(),
  285. randomScalingFactor100(),
  286. randomScalingFactor100(),
  287. randomScalingFactor100(),
  288. randomScalingFactor100()
  289. ],
  290. backgroundColor: [
  291. color(window.chartColors.red).alpha(0.6).rgbString(),
  292. color(window.chartColors.orange).alpha(0.6).rgbString(),
  293. color(window.chartColors.yellow).alpha(0.6).rgbString(),
  294. color(window.chartColors.green).alpha(0.6).rgbString(),
  295. color(window.chartColors.blue).alpha(0.6).rgbString(),
  296. color(window.chartColors.purple).alpha(0.6).rgbString()
  297. ],
  298. borderColor: [
  299. window.chartColors.red,
  300. window.chartColors.orange,
  301. window.chartColors.yellow,
  302. window.chartColors.green,
  303. window.chartColors.blue,
  304. window.chartColors.purple
  305. ],
  306. borderWidth:1,
  307. label: '数据1'
  308. }],
  309. labels: [
  310. "注浆数量",
  311. "施釉数量",
  312. "交坯数量",
  313. "烧成数量",
  314. "成品数量"
  315. ]
  316. },
  317. type: 'pie',
  318. options: {
  319. responsive: true,
  320. legend: {
  321. position: 'top'
  322. }
  323. }
  324. };
  325. var ctxPie = document.getElementById("piecanvas").getContext("2d");
  326. window.Pie = new Chart(ctxPie, pieConfig);
  327. //线图
  328. var lineConfig = {
  329. data: {
  330. labels: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],
  331. datasets: [{
  332. label: "注浆数量",
  333. backgroundColor: color(window.chartColors.red).alpha(0.6).rgbString(),
  334. borderColor: window.chartColors.red,
  335. borderWidth: 1,
  336. data: [
  337. randomScalingFactor(),
  338. randomScalingFactor(),
  339. randomScalingFactor(),
  340. randomScalingFactor(),
  341. randomScalingFactor(),
  342. randomScalingFactor(),
  343. randomScalingFactor(),
  344. randomScalingFactor(),
  345. randomScalingFactor(),
  346. randomScalingFactor(),
  347. randomScalingFactor(),
  348. randomScalingFactor()
  349. ],
  350. fill: false,
  351. }, {
  352. label: "施釉数量",
  353. fill: false,
  354. backgroundColor: color(window.chartColors.orange).alpha(0.6).rgbString(),
  355. borderColor: window.chartColors.orange,
  356. borderWidth: 1,
  357. data: [
  358. randomScalingFactor(),
  359. randomScalingFactor(),
  360. randomScalingFactor(),
  361. randomScalingFactor(),
  362. randomScalingFactor(),
  363. randomScalingFactor(),
  364. randomScalingFactor(),
  365. randomScalingFactor(),
  366. randomScalingFactor(),
  367. randomScalingFactor(),
  368. randomScalingFactor(),
  369. randomScalingFactor()
  370. ],
  371. }, {
  372. label: "交坯数量",
  373. fill: false,
  374. backgroundColor: color(window.chartColors.yellow).alpha(0.6).rgbString(),
  375. borderColor: window.chartColors.yellow,
  376. borderWidth: 1,
  377. data: [
  378. randomScalingFactor(),
  379. randomScalingFactor(),
  380. randomScalingFactor(),
  381. randomScalingFactor(),
  382. randomScalingFactor(),
  383. randomScalingFactor(),
  384. randomScalingFactor(),
  385. randomScalingFactor(),
  386. randomScalingFactor(),
  387. randomScalingFactor(),
  388. randomScalingFactor(),
  389. randomScalingFactor()
  390. ],
  391. }, {
  392. label: "烧成数量",
  393. fill: false,
  394. backgroundColor: color(window.chartColors.green).alpha(0.6).rgbString(),
  395. borderColor: window.chartColors.green,
  396. borderWidth: 1,
  397. data: [
  398. randomScalingFactor(),
  399. randomScalingFactor(),
  400. randomScalingFactor(),
  401. randomScalingFactor(),
  402. randomScalingFactor(),
  403. randomScalingFactor(),
  404. randomScalingFactor(),
  405. randomScalingFactor(),
  406. randomScalingFactor(),
  407. randomScalingFactor(),
  408. randomScalingFactor(),
  409. randomScalingFactor()
  410. ],
  411. }, {
  412. label: "成品数量",
  413. fill: false,
  414. backgroundColor: color(window.chartColors.blue).alpha(0.6).rgbString(),
  415. borderColor: window.chartColors.blue,
  416. borderWidth: 1,
  417. data: [
  418. randomScalingFactor(),
  419. randomScalingFactor(),
  420. randomScalingFactor(),
  421. randomScalingFactor(),
  422. randomScalingFactor(),
  423. randomScalingFactor(),
  424. randomScalingFactor(),
  425. randomScalingFactor(),
  426. randomScalingFactor(),
  427. randomScalingFactor(),
  428. randomScalingFactor(),
  429. randomScalingFactor()
  430. ],
  431. }]
  432. },
  433. type: 'line',
  434. options: {
  435. responsive: true,
  436. title: {
  437. display: false,
  438. text: '线状图'
  439. },
  440. tooltips: {
  441. mode: 'index',
  442. intersect: false,
  443. },
  444. hover: {
  445. mode: 'nearest',
  446. intersect: true
  447. },
  448. scales: {
  449. xAxes: [{
  450. display: true,
  451. scaleLabel: {
  452. display: false,
  453. labelString: ''
  454. }
  455. }],
  456. yAxes: [{
  457. display: true,
  458. scaleLabel: {
  459. display: false,
  460. labelString: 'Value'
  461. }
  462. }]
  463. }
  464. }
  465. };
  466. var ctxLine = document.getElementById("linecanvas").getContext("2d");
  467. window.Line = new Chart(ctxLine, lineConfig);
  468. //环图
  469. var doughnutConfig = {
  470. data: {
  471. datasets: [{
  472. data: [
  473. randomScalingFactor100(),
  474. randomScalingFactor100(),
  475. randomScalingFactor100(),
  476. randomScalingFactor100(),
  477. randomScalingFactor100(),
  478. randomScalingFactor100()
  479. ],
  480. backgroundColor: [
  481. color(window.chartColors.red).alpha(0.6).rgbString(),
  482. color(window.chartColors.orange).alpha(0.6).rgbString(),
  483. color(window.chartColors.yellow).alpha(0.6).rgbString(),
  484. color(window.chartColors.green).alpha(0.6).rgbString(),
  485. color(window.chartColors.blue).alpha(0.6).rgbString(),
  486. color(window.chartColors.purple).alpha(0.6).rgbString()
  487. ],
  488. borderColor: [
  489. window.chartColors.red,
  490. window.chartColors.orange,
  491. window.chartColors.yellow,
  492. window.chartColors.green,
  493. window.chartColors.blue,
  494. window.chartColors.purple
  495. ],
  496. borderWidth:1,
  497. label: '数据1'
  498. }],
  499. labels: [
  500. "注浆数量",
  501. "施釉数量",
  502. "交坯数量",
  503. "烧成数量",
  504. "成品数量"
  505. ]
  506. },
  507. type: 'doughnut',
  508. options: {
  509. responsive: true,
  510. legend: {
  511. position: 'top'
  512. }
  513. }
  514. };
  515. var ctxDoughnut = document.getElementById("doughnutcanvas").getContext("2d");
  516. window.Doughnut = new Chart(ctxDoughnut, doughnutConfig);
  517. };
  518. </script>
  519. </body>
  520. </html>