up1.vue 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. <template>
  2. <div id="up1">
  3. <div class="bg-color-black">
  4. <!--
  5. <div class="d-flex pt-2 pl-2">
  6. <span>
  7. <icon name="align-left" class="text-icon"></icon>
  8. </span>
  9. <span class="fs-xl text mx-2">车间生产完成统计</span>
  10. </div>
  11. <div class="d-flex ai-center flex-column body-box">
  12. <dv-capsule-chart class="dv-cap-chart" :config="config" />
  13. <span class="fs-xl text mx-2">车间投产良率分析</span>
  14. <up1Chart />
  15. </div>
  16. -->
  17. <div class="ranking">
  18. <span>
  19. <icon name="chart-pie" class="text-icon"></icon>
  20. </span>
  21. <span class="fs-xl text mx-2 mb-1 pl-3">当日产品良率分析</span>
  22. <dv-scroll-ranking-board class="dv-scr-rank-board mt-1" :config="ranking" ref="scroll-ranking-board"/>
  23. </div>
  24. </div>
  25. </div>
  26. </template>
  27. <script>
  28. //import up1Chart from '@/components/officechart/up1Chart'
  29. export default {
  30. data() {
  31. return {
  32. config: {
  33. data: [],
  34. // unit: 'W'
  35. },
  36. timing :null,
  37. ranking: {
  38. data: [],
  39. carousel: 'single',
  40. rowNum: 6,
  41. },
  42. }
  43. },
  44. //components: { up1Chart },
  45. mounted() {
  46. this.refreshdata();
  47. },
  48. beforeDestroy () {
  49. clearInterval(this.timing)
  50. },
  51. methods: {
  52. refreshdata() {
  53. this.setData(); //获取数据
  54. this.timing = setInterval(() => {
  55. this.setData(); //获取--数据
  56. }, 30000);
  57. },
  58. async setData(){
  59. //工序生产完成统计 MAKEQTY
  60. await this.$http.get("kanban/datalist.action?caller=KB!Office!StepFinish&_noc=1&page=1&pageSize=100",{
  61. params: {
  62. condition: "1=1",
  63. }
  64. }).then((result)=>{
  65. let dataList = JSON.parse(result.data.data);
  66. let stepFinishData = new Array();
  67. for (let index = 0; index < dataList.length; index++) {
  68. const element = dataList[index];
  69. let item = new Object();
  70. item.name = element.name;
  71. item.value = element.value ;
  72. stepFinishData.push(item);
  73. }
  74. this.config.data = stepFinishData;
  75. this.config = { ...this.config };
  76. },(result)=>{
  77. console.error(result)
  78. }
  79. );
  80. //当日产品良率
  81. await this.$http.get("kanban/datalist.action?caller=KB!Office!KeyStepRate&_noc=1&page=1&pageSize=100",{
  82. params: {
  83. condition: "1=1",
  84. }
  85. }).then((result)=>{
  86. let dataList = JSON.parse(result.data.data);
  87. let datas = new Array();
  88. for (let index = 0; index < dataList.length; index++) {
  89. const element = dataList[index];
  90. datas.push({
  91. name:element.name ,
  92. value:element.value,
  93. });
  94. }
  95. this.ranking.data = datas;
  96. this.ranking = { ...this.ranking };
  97. /*两种刷新方式
  98. const scrollBoard = this.$refs['scroll-ranking-board'];
  99. scrollBoard.updateRows(datas);
  100. this.ranking = { data: datas }
  101. */
  102. },(result)=>{
  103. console.error(result)
  104. }
  105. );
  106. }
  107. }
  108. }
  109. </script>
  110. <style lang="scss" scoped>
  111. #up1 {
  112. $box-width: 300px;
  113. $box-height: 410px;
  114. padding: 5px;
  115. height: $box-height;
  116. width: $box-width;
  117. border-radius: 5px;
  118. .bg-color-black {
  119. height: $box-height - 20px;
  120. width: $box-width - 10px;
  121. border-radius: 10px;
  122. padding: 5px 5px 5px 5px;
  123. }
  124. .ranking {
  125. padding: 5px;
  126. .dv-scr-rank-board {
  127. padding-top: 5px;
  128. height: 350px;
  129. width:270px
  130. }
  131. }
  132. .text {
  133. color: #c3cbde;
  134. }
  135. .body-box {
  136. border-radius: 10px;
  137. overflow: hidden;
  138. .dv-cap-chart {
  139. width: 100%;
  140. height: 160px;
  141. text-align:left;
  142. }
  143. }
  144. }
  145. </style>