uni-app uView Ui Table 合并单元格

Table 表格


本组件标签类似HTML的table表格,由table、tr、th、td四个组件组成

table 组件裹在最外层,可以配置一些基础参数

tr 组件用于显示"行"数据

th 组件用于显示表头内容,类似td,不同之处在于字体加粗了,也带有背景颜色,也可以直接用td替代th

td组件不是最小单位,为了合并单元格时,内部可以嵌入 tr 和 td 组件

效果图

在这里插入图片描述


Template 文件

<view class="table_box">
	<u-table>
                 <u-tr>
			<u-td width="25%">车辆种类</u-td>
			<u-td width="75%" class="box_br box_pd">
				<u-td width="80%" class="box_cus">月折旧系数</u-td>
                         <u-tr>
                         	<u-td class="box_bt">家庭自用</u-td>
                         	<u-td class="box_bt">非营业</u-td>
					<u-td width="50%" class="box_bt box_pd box_br">
						<u-td class="box_cus">营业</u-td>
						<u-tr >
							<u-td class="box_bt box_cus">1.10%</u-td>
							<u-td class="box_bt box_cus">0.90%</u-td>
						</u-tr>
					</u-td>
                         </u-tr>
			</u-td>	
		</u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">9座以下客车</u-td>
                 	<u-td class="box_cus">0.60%</u-td>
                 	<u-td class="box_cus">0.60%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 </u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">10座以下上客车</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 </u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">微型载货汽车</u-td>
                 	<u-td class="box_cus">/</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 </u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">带拖挂的载货汽车</u-td>
                 	<u-td class="box_cus">/</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 </u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">低速货车和三轮汽车</u-td>
                 	<u-td class="box_cus">/</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">1.40%</u-td>
                 	<u-td class="box_cus">1.40%</u-td>
                 </u-tr>
                 <u-tr>
                 	<u-td class="box_cus" width="25%">其他车辆</u-td>
                 	<u-td class="box_cus">/</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 	<u-td class="box_cus">1.10%</u-td>
                 	<u-td class="box_cus">0.90%</u-td>
                 </u-tr>
	</u-table>
</view>

Style 文件

.table_box{
	.box_bt{
		border-bottom: unset !important;
	}
	.box_pd{
		padding: unset !important;
	}
	.box_br{
		border-right: unset !important;
	}
	.box_cus{
		padding: 10px 3px !important;
	}
	/deep/ .u-td[data-v-35ace0c0]{
		height: auto;
	}
}
### 如何在 UniApp 中使用表组件 #### 使用 uni-table 组件 `uni-table` 是 `uni-app` 提供的一个用于展示表数据的基础组件。此组件支持多种功能,如固定表头、自定义列宽等。 ```html <template> <view> <!-- 创建一个带有边框和条纹样式的表 --> <uni-table border stripe emptyText="无更多数据"> <!--头部 --> <uni-tr> <uni-th align="center">编号</uni-th> <uni-th align="center">姓名</uni-th> <uni-th align="center">年龄</uni-th> </uni-tr> <!-- 循环渲染每一行的数据 --> <uni-tr v-for="(item, index) in tableData" :key="index"> <uni-td>{{ item.id }}</uni-td> <uni-td>{{ item.name }}</uni-td> <uni-td>{{ item.age }}</uni-td> </uni-tr> </uni-table> </view> </template> <script> export default { data() { return { // 定义表所需的数据源 tableData: [ { id: '001', name: '张三', age: 28 }, { id: '002', name: '李四', age: 37 } ] }; } }; </script> ``` 上述代码展示了如何创建一个简单的表,并填充一些虚拟数据[^1]。 #### 解决表宽度设置无效的问题 有时会遇到即使设置了 CSS 样式也无法改变单元宽度的情况。这通常是因为默认样式优先级较高所致。为了克服这个问题,可以在项目根目录下的 `static/custom.css` 文件里添加全局样式覆盖原有规则: ```css /* 自定义样式文件 */ .uni-tbody .uni-td, .uni-thead .uni-th { width: auto !important; } ``` 另外,在页面内部通过内联方式指定特定列的宽度也是一种可行方案: ```html <!-- 设置某几列的具体宽度 --> <uni-th style="width: 150px;">姓名</uni-th> <uni-td style="min-width: 100px; max-width: 200px;">{{ item.name }}</uni-td> ``` 需要注意的是,如果仍然无法达到预期效果,则可能涉及到浏览器兼容性或其他复杂因素的影响[^3]。 #### 利用 uView UI 库增强表功能 对于希望获得更加完善体验的应用程序来说,引入像 `uView` 这样的第三方UI库是个不错的选择。它不仅提供了美观大方的主题风,还集成了许多实用的小部件,其中包括强大的表控件——`u-table` 和 `u-tr`, `u-td` 等标签可用于构建响应迅速且易于维护的数据网视图[^4]。
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值