Blame view

uni_modules/uni-table/components/uni-td/uni-td.vue 1.76 KB
4b045f7c   刘淇   江阴初始化项目
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>