更新记录
1.0.2(2024-05-17)
添加插槽
1.0.1(2024-05-17)
更新文档
1.0.0(2024-05-17)
卡片列表下来刷新分页的页面,卡片位置为插槽暴露出去
查看更多
平台兼容性
App |
快应用 |
微信小程序 |
支付宝小程序 |
百度小程序 |
字节小程序 |
QQ小程序 |
HBuilderX 3.1.0 |
× |
√ |
× |
× |
× |
× |
钉钉小程序 |
快手小程序 |
飞书小程序 |
京东小程序 |
× |
× |
× |
× |
H5-Safari |
Android Browser |
微信浏览器(Android) |
QQ浏览器(Android) |
Chrome |
IE |
Edge |
Firefox |
PC-Safari |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
card-list
props
参数名 |
类型 |
默认值 |
可选择值 |
描述 |
action |
(data : any) => Promise |
- |
- |
必填 |
filters |
object |
{} |
- |
action搜索时带的搜索值 |
pageSize |
number |
0 |
- |
必填 |
noPage |
boolean |
false |
true |
是否分页 |
frequency |
number |
100 |
- |
卡片动画每秒归为几张卡片 |
emits
方法名 |
参数 |
描述 |
refresh |
- |
刷新 |
next |
- |
下一页 |
slots
插槽名 |
参数 |
描述 |
card |
{data:any} |
卡片 |
nullData |
|
没有数据时 |
icon |
|
加载的小图标 |
使用案例
<template>
<view class="page">
<searchHeader @search="search" v-model="searchParams"></searchHeader>
<CardList v-bind="listConfig" class="list" ref="listRef">
<template #card="{ data }">
<PersonCard class="item" @click="goToOrderInfo(data)" :data="data"></PersonCard>
</template>
</CardList>
</view>
</template>
<script setup lang="ts">
import searchHeader from './components/searchHeader.vue'
import CardList from '@/uni_modules/card-list/components/card-list/card-list.vue'
import PersonCard from './components/orderCard.vue'
import { computed, onMounted, ref, unref } from "vue";
import { getList } from '@/api/requests/order';
const searchParams = ref({
searchKey: '',
status: 'NORMAL',
rangeTime: ""
})
const listRef = ref()
const search = () => {
listRef.value.refresh()
}
const listConfig = computed(() => {
return {
action: async (data) => {
if (data.rangeTime?.length) {
data.startTime = data.rangeTime[0]
data.endTime = data.rangeTime[1]
}
const res = await getList(data)
return res.data
},
filters: searchParams.value,
pageSize: 20
}
})
const goToOrderInfo = (data : any) => {
uni.navigateTo({
url: '/pages/order/orderInfo?order=' + JSON.stringify(data)
})
}
</script>
<style scoped lang="scss">
.page {
background: rgb(239, 239, 239);
height: 100vh;
width: 100vw;
display: flex;
justify-content: center;
flex-direction: column;
align-items: center;
.list {
box-sizing: border-box;
background-color: transparent;
min-height: calc(100vh - 200rpx);
// padding-bottom: 200rpx;
}
.item {
background-color: #fff;
}
}
</style>