1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  | <template> 
 |      <!-- #ifdef H5 --> 
 |      <td class="uni-table-td" :rowspan="rowspan" :colspan="colspan" :class="{'table--border':border}" :style="{width:width + 'px','text-align':align}"> 
 |          <slot></slot> 
 |      </td> 
 |      <!-- #endif --> 
 |      <!-- #ifndef H5 --> 
 |      <!-- :class="{'table--border':border}"  --> 
 |      <view class="uni-table-td" :class="{'table--border':border}" :style="{width:width + 'px','text-align':align}"> 
 |          <slot></slot> 
 |      </view> 
 |      <!-- #endif --> 
 |       
 |  </template> 
 |    
 |  <script> 
 |      /** 
 |       * Td 单元格 
 |       * @description 表格中的标准单元格组件 
 |       * @tutorial https://ext.dcloud.net.cn/plugin?id=3270 
 |       * @property {Number}     align = [left|center|right]    单元格对齐方式 
 |       */ 
 |      export default { 
 |          name: 'uniTd', 
 |          options: { 
 |              virtualHost: true 
 |          }, 
 |          props: { 
 |              width: { 
 |                  type: [String, Number], 
 |                  default: '' 
 |              }, 
 |              align: { 
 |                  type: String, 
 |                  default: 'left' 
 |              }, 
 |              rowspan: { 
 |                  type: [Number,String], 
 |                  default: 1 
 |              }, 
 |              colspan: { 
 |                      type: [Number,String], 
 |                  default: 1 
 |              } 
 |          }, 
 |          data() { 
 |              return { 
 |                  border: false 
 |              }; 
 |          }, 
 |          created() { 
 |              this.root = this.getTable() 
 |              this.border = this.root.border 
 |          }, 
 |          methods: { 
 |              /** 
 |               * 获取父元素实例 
 |               */ 
 |              getTable() { 
 |                  let parent = this.$parent; 
 |                  let parentName = parent.$options.name; 
 |                  while (parentName !== 'uniTable') { 
 |                      parent = parent.$parent; 
 |                      if (!parent) return false; 
 |                      parentName = parent.$options.name; 
 |                  } 
 |                  return parent; 
 |              }, 
 |          } 
 |      } 
 |  </script> 
 |    
 |  <style lang="scss"> 
 |      $border-color:#EBEEF5; 
 |    
 |      .uni-table-td { 
 |          display: table-cell; 
 |          padding: 8px 10px; 
 |          font-size: 14px; 
 |          border-bottom: 1px $border-color solid; 
 |          font-weight: 400; 
 |          color: #606266; 
 |          line-height: 23px; 
 |          box-sizing: border-box; 
 |      } 
 |    
 |      .table--border { 
 |          border-right: 1px $border-color solid; 
 |      } 
 |  </style> 
 |  
  |