room5.vue 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <template>
  2. <div class='compute-item'>
  3. <div ref='tableBox5' class='compute-table'>
  4. <el-table
  5. :border='true'
  6. v-loading='loading'
  7. :max-height='tableMaxHeight'
  8. :data='table5'
  9. style='width: 100%'
  10. @row-click='innerTable'
  11. :header-cell-style='{background:"rgba(245,246,247,1)",fontFamily:"MicrosoftYaHei",color:"rgba(100,108,115,1)",lineHeight:"16px",fontSize:"12px"}'
  12. >
  13. <el-table-column type='index' label='序号' width='60' :index='indexMethod'></el-table-column>
  14. <el-table-column prop label='设备名称' show-overflow-tooltip resizable min-width='150'>
  15. <template slot-scope='{row}'>{{row.sbmc||'--'}}</template>
  16. </el-table-column>
  17. <el-table-column prop label='设备内码' :show-overflow-tooltip='true' width='80'>
  18. <template slot-scope='{row}'>{{row.assetnum||'--'}}</template>
  19. </el-table-column>
  20. <el-table-column prop label='核心维保事项记录' :show-overflow-tooltip='true' min-width='150'>
  21. <template slot-scope='{row}'>{{row.matters||'--'}}</template>
  22. </el-table-column>
  23. <el-table-column prop label='现场照片' :show-overflow-tooltip='true' width='80'>
  24. <template slot-scope='{row}'>
  25. <div
  26. v-if='row.glsmsImage'
  27. style='cursor:pointer;color: #0091ff;'
  28. @click='clickPic(row.glsmsImage)'
  29. >{{row.glsmsImage.length+'张'}}</div>
  30. <div v-else>{{'--'}}</div>
  31. </template>
  32. </el-table-column>
  33. <el-table-column prop label='维保任务' align='center'>
  34. <el-table-column prop label='任务编号' :show-overflow-tooltip='true'>
  35. <template slot-scope='{row}'>
  36. <div style='cursor:pointer;color: #0091ff;'>{{row.wb_gzglid||'--'}}</div>
  37. </template>
  38. </el-table-column>
  39. <el-table-column prop label='维保任务名称' :show-overflow-tooltip='true' min-width='340'>
  40. <template slot-scope='{row}'>{{row.wbrwmc || '--'}}</template>
  41. </el-table-column>
  42. <el-table-column prop label='任务状态' :show-overflow-tooltip='true'>
  43. <template slot-scope='{row}'>{{row.status||'--'}}</template>
  44. </el-table-column>
  45. <el-table-column prop label='开始时间' :show-overflow-tooltip='true' width='130'>
  46. <template slot-scope='{row}'>{{row.sjkssj?formatter(row.sjkssj):'--'}}</template>
  47. </el-table-column>
  48. <el-table-column prop label='完成时间' :show-overflow-tooltip='true' width='130'>
  49. <template slot-scope='{row}'>{{row.sjwcsj?formatter(row.sjwcsj):'--'}}</template>
  50. </el-table-column>
  51. <el-table-column prop label='执行耗时(天)' :show-overflow-tooltip='true' min-width='130' :sortable='true'>
  52. <template slot-scope='{row}'>{{row.sjcxsjt||'--'}}</template>
  53. </el-table-column>
  54. </el-table-column>
  55. <el-table-column prop label='是否正常' :show-overflow-tooltip='true' width='80'>
  56. <template slot-scope='{row}'>{{row.zt||'--'}}</template>
  57. </el-table-column>
  58. <el-table-column prop label='异常工单' align='center'>
  59. <el-table-column prop label='异常工单编号' :show-overflow-tooltip='true' min-width='110'>
  60. <template slot-scope='{row}'>
  61. <div @click='ycgd(row)'>{{row.wonum||'--'}}</div>
  62. </template>
  63. </el-table-column>
  64. <el-table-column prop label='描述' :show-overflow-tooltip='true' width='900'>
  65. <template slot-scope='{row}'>{{row.description||'--'}}</template>
  66. </el-table-column>
  67. <el-table-column prop label='填报时间' :show-overflow-tooltip='true' width='130'>
  68. <template slot-scope='{row}'>{{row.reportdate?formatter(row.reportdate):'--'}}</template>
  69. </el-table-column>
  70. <el-table-column prop label='验收时间' :show-overflow-tooltip='true' width='130'>
  71. <template slot-scope='{row}'>{{row.sjjssj?formatter(row.sjjssj):'--'}}</template>
  72. </el-table-column>
  73. </el-table-column>
  74. </el-table>
  75. </div>
  76. <div class='foot'>
  77. <el-pagination
  78. background
  79. layout='prev, pager, next'
  80. :total='total'
  81. :page-size='size'
  82. @prev-click='pageChanged'
  83. @next-click='pageChanged'
  84. @current-change='pageChanged'
  85. ></el-pagination>
  86. <pic-large :imgUrl='imgUrl' ref='picLargeOpen'></pic-large>
  87. </div>
  88. </div>
  89. </template>
  90. <script>
  91. // import Select from '@/components/Select/Select.vue'
  92. import { Select } from 'meri-design'
  93. import moment from 'moment'
  94. export default {
  95. props: ['table5', 'total', 'page', 'size', 'loading'],
  96. data() {
  97. return {
  98. value1: '',
  99. searVal: '',
  100. dateVal: '',
  101. imgUrl: [],
  102. tableMaxHeight: 0
  103. }
  104. },
  105. components: { Select },
  106. updated() {
  107. this.$nextTick(() => {
  108. // 页面渲染完成后的回调
  109. this.tableMaxHeight = this.$refs.tableBox5.offsetHeight
  110. })
  111. },
  112. methods: {
  113. //工单详情
  114. innerTable(row) {
  115. if (row.apptype == '外委' || row.apptype == '自维') {
  116. if (row.wb_gzglid) {
  117. window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
  118. }
  119. } else if (row.apptype == '安全维保') {
  120. window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=AQ_WB_GZGL&uniqueid=${row.wb_gzglid}`)
  121. }
  122. },
  123. // 工单
  124. ycgd(row) {
  125. if (row.apptype == '外委' || row.apptype == '自维') {
  126. if (row.wb_gzglid) {
  127. window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
  128. }
  129. } else if (row.apptype == '安全维保') {
  130. window.open(`http://gcgl.wanda.cn/maximo/ui/?event=loadapp&value=WB_GZGL&uniqueid=${row.wb_gzglid}`)
  131. }
  132. },
  133. indexMethod(index) {
  134. return (this.page - 1) * this.size + index + 1
  135. },
  136. pageChanged(page) {
  137. this.page = page
  138. this.$emit('Index4Emit', page)
  139. },
  140. formatter(date) {
  141. return moment.unix(date / 1000).format('YYYY.MM.DD HH:mm')
  142. },
  143. clickPic(row) {
  144. this.imgUrl = []
  145. if (row) {
  146. row.forEach(el => {
  147. let obj = {
  148. name: el.description,
  149. url: el.url
  150. }
  151. this.imgUrl.push(obj)
  152. })
  153. }
  154. this.$refs.picLargeOpen.open(this.imgUrl)
  155. },
  156. computedHeight() {
  157. this.$nextTick(() => {
  158. // 页面渲染完成后的回调
  159. this.tableMaxHeight = this.$refs.tableBox5.offsetHeight
  160. })
  161. }
  162. }
  163. }
  164. </script>
  165. <style lang="less" scoped>
  166. </style>
  167. <style lang="less">
  168. .compute-item {
  169. .compute-center {
  170. display: flex;
  171. align-items: center;
  172. margin-bottom: 12px;
  173. }
  174. .foot {
  175. height: 32px;
  176. display: flex;
  177. justify-content: flex-end;
  178. margin-top: 28px;
  179. }
  180. /deep/.el-table tr {
  181. cursor: pointer;
  182. }
  183. }
  184. </style>