GwTableTwo.vue 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <template>
  2. <div class="descriptions-container">
  3. <el-descriptions :column="columnNumber" border>
  4. <el-descriptions-item v-for="(item, index) in data" :key="index" :label="item.name">
  5. {{ item.value ? item.value : '-' }}
  6. </el-descriptions-item>
  7. </el-descriptions>
  8. </div>
  9. <!-- <table class="gw-descriptions-table">-->
  10. <!-- <tbody>-->
  11. <!-- <tr v-for="num in rowNumber" :key="num">-->
  12. <!-- <template v-for="item in row(num)">-->
  13. <!-- <th colspan="1">{{ item.name }}</th>-->
  14. <!-- <td v-if="isString(item.value) && item.code !== 'name'" colspan="1">{{ item.value }}</td>-->
  15. <!-- <td v-else-if="isString(item.value) && item.code === 'name'" colspan="1">-->
  16. <!-- <span class="node-info">-->
  17. <!-- {{ item.value }}-->
  18. <!-- </span>-->
  19. <!-- </td>-->
  20. <!-- <td v-else-if="isArray(item.value)" colspan="1">-->
  21. <!-- <span v-for="(vl,index) in item.value" :key="index" class="node-info">-->
  22. <!-- {{ vl.name }}-->
  23. <!-- </span>-->
  24. <!-- </td>-->
  25. <!-- <td v-else colspan="1">-->
  26. <!-- <span class="empty-value">-</span> &lt;!&ndash; 显示占位符 &ndash;&gt;-->
  27. <!-- </td>-->
  28. <!-- </template>-->
  29. <!-- </tr>-->
  30. <!-- </tbody>-->
  31. <!-- </table>-->
  32. </template>
  33. <script setup>
  34. import {
  35. getForecastlist
  36. } from "@/api/standardization/bizDataShowConfig.js";
  37. import {useRoute} from "vue-router";
  38. const data = ref()
  39. const route = useRoute();
  40. function getYu(){
  41. getForecastlist({appId: route.params.id}).then(res=>{
  42. data.value = res.rows
  43. })
  44. }
  45. onMounted(() => {
  46. getYu();
  47. });
  48. // const props = defineProps({
  49. // data: {
  50. // type: Array,
  51. // default: [],
  52. // },
  53. // columnNumber: {
  54. // type: Number,
  55. // default: 3,
  56. // },
  57. // })
  58. // const row = computed(() => {
  59. // return (num) => {
  60. // let start = (num - 1) * props.columnNumber;
  61. // let end = num * props.columnNumber;
  62. // // if (end >= props.data.length && props.data.length > 1) {
  63. // // end = -1;
  64. // // }
  65. // return props.data.slice(start, end);
  66. // }
  67. // })
  68. // const rowNumber = computed(() => {
  69. // if (props.data) {
  70. // return Math.ceil(props.data.length / props.columnNumber);
  71. // }
  72. // return 0;
  73. // })
  74. </script>
  75. <style lang="scss" scoped>
  76. .descriptions-container {
  77. width: 100%;
  78. height: 100%;
  79. overflow: auto;
  80. }
  81. .gw-descriptions-table {
  82. width: 100%;
  83. height: 100%;
  84. border-collapse: collapse;
  85. border-spacing: 0;
  86. table-layout: fixed;
  87. tr:hover {
  88. background-color: #f5f7fa;
  89. td {
  90. background-color: inherit;
  91. }
  92. }
  93. th, td {
  94. border: 1px solid #ebeef5;
  95. padding: 12px 10px;
  96. //word-wrap: break-word;
  97. }
  98. th {
  99. min-width: 80px;
  100. text-align: center;
  101. background-color: #f5f7fa; // 表头背景色
  102. font-weight: bold;
  103. }
  104. td {
  105. text-align: left;
  106. .node-info {
  107. color: rgb(5, 164, 182);
  108. padding: 5px 10px;
  109. border: 1px solid rgb(44, 184, 197);
  110. border-radius: 5px;
  111. background-color: rgb(229, 247, 248);
  112. margin-right: 10px;
  113. margin-bottom: 5px;
  114. cursor: pointer;
  115. display: inline-block;
  116. max-width: 100%;
  117. overflow: hidden;
  118. text-overflow: ellipsis;
  119. white-space: nowrap;
  120. &:hover {
  121. color: #fff;
  122. background-color: rgb(5, 164, 182);
  123. border: 1px solid rgb(5, 164, 182);
  124. }
  125. }
  126. }
  127. .empty-value {
  128. color: #909399;
  129. font-style: italic;
  130. }
  131. }
  132. </style>