为了处理通用的卡片式列表结构,vuecoms提供了 CardList 组件,它可以提供自定义卡片列表的处理,如查询条件,分页,数据处理等,但是具体的展示交给用户自定义实现。
以下为一个示例:
<div id="ex-table-01">
<card-list :config="table" v-if="enable" ref="cardlist">
<template slot-scope="data">
<card v-for="item of data.data" style="margin-bottom: 10px">
<card-item :data="item"></card-item>
</card>
</template>
</card-list>
<Buttons :buttons="buttons"></Buttons>
</div>
其中 <card-list>
实现了整体的结构定义,它需要 config
用于定义参数信息。其中,用户需要定义
<template slot-scope="data">
<card v-for="item of data.data" style="margin-bottom: 10px">
<card-item :data="item"></card-item>
</card>
</template>
用于实现自定义的卡片展示。这里使用了 slot-scope
的功能(目前vuecoms还不支持Vue 2.6.X)。数据将通过 slot-scope
来获取,这里为 data
,然后用户就可以通过 data.data
来获取底层的数据列表。
CardList 需要一个 config
的参数,它是一个对象,可选用的值为:
属性参数名 | 说明 | 类型 | 缺省值 |
---|---|---|---|
query | 查询条件,同Grid的格式 | Object | null |
pagination | 分页展示切换 | Boolean | false |
prev | 上一页按钮显示的文本 | String | '上一页' |
next | 下一页按钮显示的文本 | String | '下一页' |
first | 首页按钮显示的文本。为空时不显示 | String | '' |
last | 最后一页按钮显示的文本。为空时不显示 | String | '' |
start | 起始序号 | Number | 1 |
total | 总条数。它将在后台加载数据后,由应用来根据具体值进行调整 | Number | 0 |
pageSizeOpts | 每页显示条数设置 | Array | [10, 20, 30, 40, 50] |
pageSize | 每页显示条数 | Number | 10 |
data | 底层数据 | Array | [] |
autoLoad | 是否自动装入数据。为true时,会自动确发onLoadData回调。 | Boolean | true |
onLoadData | 向后台发起请求的回调。与Grid类似,参数不同。格式为 onLoadData(param, callback) | Function | null |
bottomButtons | 分页组件中的底部按钮 | Array | [] |
nodata | 无数据时的信息,可以是HTML代码 | String | '暂无数据' |
scroll | 是否无限滚动。如果为true,则分页组件将不显示,当滚动到底部时,会自动调用onLoadData方法。 | Boolean | false |
方法名 | 说明 | 返回值 |
---|---|---|
addRows | 向CardList中追加数据。如果为无限滚动,则原数据不会清除。如果为分页模式,则会进行替换 | 添加后的数据 |
loadData | 装入数据,可用于刷新 | Promise |