赫艾前端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
5.0 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <div style="text-align: center">
  4. <h1>生产打料看板</h1>
  5. </div>
  6. <div class="board2">
  7. <el-table
  8. cell-style="cc"
  9. :height="height"
  10. :data="tableData"
  11. ref="wt_table"
  12. @mouseenter.native="mouseEnter"
  13. @mouseleave.native="mouseLeave"
  14. border
  15. :row-class-name="tableRowClassName"
  16. style="width: 100%;">
  17. <el-table-column
  18. prop="orderNo"
  19. header-align="center"
  20. align="left"
  21. min-width="50"
  22. style="font-size: 20px"
  23. label="硫化订单号">
  24. </el-table-column>
  25. <el-table-column
  26. prop="partDescSpec"
  27. header-align="center"
  28. align="left"
  29. min-width="120"
  30. label="硫化产品名称">
  31. </el-table-column>
  32. <el-table-column
  33. prop="compPartDescSpec"
  34. header-align="center"
  35. align="left"
  36. min-width="120"
  37. label="混炼胶名称">
  38. </el-table-column>
  39. <el-table-column
  40. prop="qtyRequired"
  41. header-align="center"
  42. align="right"
  43. min-width="50"
  44. label="计划需求量">
  45. </el-table-column>
  46. <el-table-column
  47. prop="sjph1"
  48. header-align="center"
  49. align="left"
  50. min-width="50"
  51. label="生胶牌号1">
  52. </el-table-column>
  53. <el-table-column
  54. prop="sjphQtyReq1"
  55. header-align="center"
  56. align="right"
  57. min-width="50"
  58. label="生胶1用量">
  59. </el-table-column>
  60. <el-table-column
  61. prop="sjph2"
  62. header-align="center"
  63. align="left"
  64. min-width="50"
  65. label="生胶牌号2">
  66. </el-table-column>
  67. <el-table-column
  68. prop="sjphQtyReq2"
  69. header-align="center"
  70. align="right"
  71. min-width="50"
  72. label="生胶2用量">
  73. </el-table-column>
  74. <el-table-column
  75. prop="planStartDate"
  76. header-align="center"
  77. align="left"
  78. min-width="45"
  79. label="需求日期">
  80. </el-table-column>
  81. </el-table>
  82. </div>
  83. </div>
  84. </template>
  85. <script>
  86. let rollstop = ''
  87. let rolltimer = ''// 自动滚动的定时任务
  88. let refresher = '' //数据刷新定时器
  89. import {
  90. productionBlankingBoard,
  91. } from '@/api/board.js'
  92. export default {
  93. name: 'productionBlankingBoard',
  94. data () {
  95. return {
  96. height: 200,
  97. tableData: [],
  98. // 默认的刷新,滚动时间,滚动间距
  99. refreshTime: 5,
  100. rollTime: 5,
  101. rollPx: 1,
  102. }
  103. },
  104. mounted () {
  105. this.$nextTick(() => {
  106. this.height = window.innerHeight - 80
  107. })
  108. this.autoRoll()
  109. },
  110. methods: {
  111. tableRowClassName ({row, rowIndex}) {
  112. if (row.finishedFlag == '2') {
  113. return 'success-row'
  114. }
  115. if (row.finishedFlag == '3') {
  116. return 'false-row'
  117. }
  118. return ''
  119. // if (row.finishedFlag == '2') {
  120. //
  121. // // return {css:{"background-color":"#1bb61b"}};
  122. // return 'success-row'
  123. // }
  124. // if (row.finishedFlag == '3') {
  125. // return 'false-row'
  126. // // return {css:{"background-color":"#cbcb14"}};
  127. // }
  128. // return ''
  129. },
  130. search () {
  131. productionBlankingBoard().then(({data}) => {
  132. this.tableData = data.rows
  133. })
  134. },
  135. // 鼠标进入
  136. mouseEnter (time) {
  137. // 鼠标进入停止滚动和切换的定时任务
  138. this.autoRoll(true)
  139. },
  140. // 鼠标离开
  141. mouseLeave () {
  142. // 开启
  143. this.autoRoll()
  144. },
  145. // 设置自动滚动
  146. autoRoll (stop) {
  147. if (stop) {
  148. clearInterval(rolltimer)
  149. return
  150. }
  151. // 拿到表格挂载后的真实DOM
  152. const table = this.$refs.wt_table
  153. // 拿到表格中承载数据的div元素
  154. const divData = table.bodyWrapper
  155. // 拿到元素后,对元素进行定时增加距离顶部距离,实现滚动效果
  156. rolltimer = setInterval(() => {
  157. // 元素自增距离顶部像素
  158. divData.scrollTop = this.decimalUtil.add(Number(divData.scrollTop), Number(this.rollPx))
  159. // 判断元素是否滚动到底部(可视高度+距离顶部=整个高度)
  160. if (divData.clientHeight + divData.scrollTop +1>= divData.scrollHeight) {
  161. // 重置table距离顶部距离
  162. divData.scrollTop = 0
  163. }
  164. }, this.rollTime * 10)
  165. },
  166. refreshTable () {
  167. refresher = setInterval(() => {
  168. this.search()
  169. }, 600000)
  170. }
  171. },
  172. created () {
  173. this.search()
  174. this.refreshTable()
  175. }
  176. }
  177. </script>
  178. <style >
  179. .board2 .el-table .cell {
  180. line-height: 13px;
  181. font-size: 12px;
  182. height: 13px;
  183. padding: 0px;
  184. }
  185. .board2 .el-table .success-row {
  186. background: #1bb61b;
  187. }
  188. .board2 .el-table .false-row {
  189. background: #cbcb14;
  190. }
  191. </style>