table.vue 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <template>
  2. <u-grid :col="columns.length" :customStyle="{alignItems:'stretch'}">
  3. <u-grid-item v-for="(item,i) in gridItems" :key="i">
  4. <view class="t-c p-b-t-10 m-b-5 width-100 k-col height-100"
  5. :class="item.type=='top'?'c-g-info-m col-info-d':(item.type=='total'?'c-g-info-m col-white':'c-g-info-l col-info')">
  6. {{item.text}}
  7. </view>
  8. </u-grid-item>
  9. </u-grid>
  10. </template>
  11. <script>
  12. export default {
  13. props: {
  14. columns: {
  15. type: Array,
  16. default() {
  17. return []
  18. },
  19. },
  20. datas: {
  21. type: Array,
  22. default() {
  23. return []
  24. },
  25. },
  26. },
  27. computed: {
  28. gridItems() {
  29. let list = []
  30. for (let i = 0; i < this.columns.length; i++) {//先加表头
  31. list.push({
  32. text: this.columns[i].name,
  33. type: 'top',
  34. })
  35. }
  36. for (let i = 0; i < this.datas.length; i++) {//再加数据,先遍历行
  37. let data = this.datas[i]
  38. for (let j = 0; j < this.columns.length; j++) {//再遍历列
  39. list.push({
  40. text: data[this.columns[j].key],
  41. type: data.rowType,
  42. })
  43. }
  44. }
  45. return list
  46. },
  47. },
  48. data() {
  49. return {
  50. // gridItems: [],
  51. }
  52. },
  53. methods: {
  54. refresh(columns, datas) {//这个方法好像没用
  55. let list = []
  56. for (let i = 0; i < columns.length; i++) {//先加表头
  57. list.push(columns[i].name)
  58. }
  59. for (let i = 0; i < datas.length; i++) {//再加数据,先遍历行
  60. let data = datas[i]
  61. for (let j = 0; j < columns.length; j++) {//再遍历列
  62. list.push(data[columns[j].key])
  63. }
  64. }
  65. this.gridItems = list
  66. },
  67. },
  68. }
  69. </script>
  70. <style>
  71. .k-col {
  72. /* line-height: 20px; */
  73. }
  74. </style>