evTwoTable.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <template>
  2. <el-table
  3. class="expandTable"
  4. :data="dataList"
  5. style="width: 100%;z-index:1"
  6. :row-key="getRowKeys"
  7. :expand-row-keys="expands"
  8. >
  9. <el-table-column type="expand">
  10. <template slot-scope="props">
  11. <el-table :data="props.row.children" style="width: 100%;">
  12. <el-table-column type="selection" width="50" align="right"></el-table-column>
  13. <el-table-column prop label align="right" width="150">
  14. <template slot-scope="{row}">
  15. <img class="ex-img" v-if="row.isSatisfy==false" src="../../assets/warning.png" alt />
  16. <span class="ex-span">{{row.spaceLocalName}}</span>
  17. </template>
  18. </el-table-column>
  19. <el-table-column prop label align="right">
  20. <template slot-scope="{row}">
  21. <span>{{row.temperatureMin}}-{{row.temperatureMax}}</span>
  22. </template>
  23. </el-table-column>
  24. <el-table-column prop="meanTindoor" label align="right">
  25. <template slot-scope="{row}">{{(row.meanTindoor).toFixed(1)}}</template>
  26. </el-table-column>
  27. <el-table-column prop="tindoorOverrunDuration" label align="right"></el-table-column>
  28. <el-table-column prop="tindoorOverrunDegree" label align="right">
  29. <template slot-scope="{row}">{{(row.tindoorOverrunDegree).toFixed(1)}}</template>
  30. </el-table-column>
  31. <el-table-column prop="longestTindoorOverrunDuration" label align="right"></el-table-column>
  32. <el-table-column prop="temperatureDifferenceMax" label align="center">
  33. <template slot-scope="{row}">{{(row.temperatureDifferenceMax).toFixed(1)}}</template>
  34. </el-table-column>
  35. </el-table>
  36. </template>
  37. </el-table-column>
  38. <el-table-column prop="name" label align="right" width="50"></el-table-column>
  39. <el-table-column prop label="位置详情" align="right" width="100"></el-table-column>
  40. <el-table-column prop label="温度要求范围(℃)" align="right"></el-table-column>
  41. <el-table-column prop label="平均温度(℃)" align="right"></el-table-column>
  42. <el-table-column prop label="累计超限时长(分钟)" align="right"></el-table-column>
  43. <el-table-column prop label="平均超限温度(℃)" align="right"></el-table-column>
  44. <el-table-column prop label="连续超限最大时长(分钟)" align="right"></el-table-column>
  45. <el-table-column prop label="最大温差(℃)" align="center"></el-table-column>
  46. </el-table>
  47. </template>
  48. <script>
  49. export default {
  50. data() {
  51. return {
  52. getRowKeys(row) {
  53. return row.id;
  54. },
  55. };
  56. },
  57. props: ["dataList"],
  58. computed: {
  59. expands() {
  60. return this.dataList.map(i => {
  61. // 增加 isExpand 属性
  62. i.isExpand = i.children.some(c => c.isSatisfy == false)
  63. return i
  64. }).filter(j => j.isExpand).map(i => i.id)
  65. }
  66. },
  67. methods: {
  68. init() {
  69. }
  70. },
  71. mounted() {
  72. if (this.dataList.length > 0) {
  73. this.init();
  74. }
  75. }
  76. };
  77. </script>
  78. <style lang="scss" scoped>
  79. .expandTable {
  80. .ex-img {
  81. width: 22px;
  82. height: 22px;
  83. vertical-align: middle;
  84. }
  85. .ex-span {
  86. width: 50px;
  87. display: inline-block;
  88. text-align: left;
  89. }
  90. }
  91. </style>
  92. <style lang="scss">
  93. .expandTable {
  94. .el-table thead {
  95. display: none;
  96. }
  97. .el-table__expanded-cell {
  98. padding: 0;
  99. }
  100. }
  101. </style>