el-row 和 el-col tag的可选值
时间: 2024-08-12 14:09:04 浏览: 53
`el-row`和`el-col`是Element UI库中的两个用于创建栅格布局的组件。它们通常一起使用,构建响应式的网格系统。以下是这两个标签的一些关键可选属性:
1. `el-row`(行):
- `gutter` (间距): 表示两列之间的间距,单位是px。
- `justify` (对齐方式): 可选值有`start`(左对齐)、`center`(居中)、`end`(右对齐)和`around`(两端对齐,内边距均匀分布)、`between`(两端对齐,列间间隔相等)。
- `type` (布局类型): 可选值有`flex`(弹性布局)和`inline-flex`(内联弹性布局),默认为`flex`。
2. `el-col`(列):
- `span` (跨越数): 指定列占据的列宽,可以是一个数字,也可以是一个百分比(如`{span: '80%'}`)。
- `offset` (偏移量): 表示列相对于当前行左侧的偏移,单位是px或列数。
- `xs`, `sm`, `md`, `lg`, `xl` 和 `xxl` 分别代表不同屏幕尺寸下的最小宽度(响应式设计)。
- `order` (顺序): 可以调整列在行中的显示顺序,数值越小列靠左。
相关问题
vue3 el 写一个订单详情
以下是一个使用Vue3和Element Plus编写的订单详情页面示例:
```vue
<template>
<div class="order-detail">
<el-card>
<div slot="header" class="order-header">
<h3>{{ orderNo }}</h3>
<el-tag class="order-status">{{ orderStatus }}</el-tag>
</div>
<div class="order-content">
<el-row :gutter="20">
<el-col :span="12">
<h4>订单信息</h4>
<p>下单时间:{{ createTime }}</p>
<p>支付方式:{{ paymentMethod }}</p>
<p>收货地址:{{ address }}</p>
</el-col>
<el-col :span="12">
<h4>商品信息</h4>
<el-table :data="orderItems" style="width: 100%">
<el-table-column prop="productName" label="商品名称"></el-table-column>
<el-table-column prop="price" label="单价"></el-table-column>
<el-table-column prop="quantity" label="数量"></el-table-column>
<el-table-column prop="subtotal" label="小计"></el-table-column>
</el-table>
</el-col>
</el-row>
<el-divider></el-divider>
<h4>订单备注</h4>
<p>{{ remark }}</p>
</div>
<div slot="footer">
<el-button type="primary">返回订单列表</el-button>
</div>
</el-card>
</div>
</template>
<script>
import { reactive } from 'vue'
export default {
name: 'OrderDetail',
setup() {
const order = reactive({
orderNo: '2021123456789',
orderStatus: '待支付',
createTime: '2021-12-01 10:00:00',
paymentMethod: '支付宝',
address: '中国广东省深圳市南山区科技园南区',
orderItems: [
{
productName: '商品1',
price: 100,
quantity: 1,
subtotal: 100
},
{
productName: '商品2',
price: 200,
quantity: 2,
subtotal: 400
}
],
remark: '无'
})
return {
order,
orderNo: order.orderNo,
orderStatus: order.orderStatus,
createTime: order.createTime,
paymentMethod: order.paymentMethod,
address: order.address,
orderItems: order.orderItems,
remark: order.remark
}
}
}
</script>
<style scoped>
.order-header {
display: flex;
justify-content: space-between;
align-items: center;
}
.order-status {
font-size: 16px;
}
.order-content {
margin-top: 20px;
}
.el-table th,
.el-table td {
text-align: center;
}
.el-divider {
margin: 20px 0;
}
</style>
```
在这个示例中,我们使用了Vue3和Element Plus库。在setup()函数中,我们使用reactive()函数创建了一个响应式的order对象,用于存储订单数据。然后,我们将order对象的属性绑定到模板中,以显示订单详情。例如,我们使用order.orderNo来显示订单号,使用order.orderItems来渲染商品列表。最后,我们在底部添加了一个按钮,用于返回订单列表页面。
collapse-tags
collapse-tags是一个功能,用于解决el-select选择框在多选模式下,选项内容过多或过长导致溢出的问题。它会将除了第一个选项以外的其他选项,以文字形式展示在一个Tag中,从而节省空间并避免文字溢出和换行的情况发生。
要实现这个效果,可以通过添加一段CSS样式来控制Tag的显示。具体的CSS样式代码如下:
.my-select >>> .el-select__tags > span {
display: flex;
}
.my-select >>> .el-select__tags span.el-tag:nth-child(1){
width: calc(100% - 40px);
}
此外,如果希望将下拉框的选项从单列变为两列,可以使用el-row和el-col来实现。代码示例如下:
<el-select ref="topicSelect" v-model="value1" filterable placeholder="请选择关注人" multiple clearable collapse-tags>
<el-row v-for="(item, index) in options" :key="index">
<el-col v-if="index % 2 == 1" :span="12">
<el-option :label="options[index-1].label" :value="options[index-1].value"></el-option>
</el-col>
<el-col v-if="index % 2 == 1 || (index % 2 == 0 && index == options.length-1)" :span="12">
<el-option :label="item.label" :value="item.value"></el-option>
</el-col>
</el-row>
</el-select>
通过以上的CSS样式和代码调整,可以实现collapse-tags功能和下拉框选项的多列显示效果。
阅读全文