q-scroll-list
Vue 3 + Typescript + Vite
数据列表向上滚动、无感更新数据
安装
npm https://www.npmjs.com/package/q-scroll-list
npm install q-scroll-list
or
yarn add q-scroll-list
main.js
import QScrollList from 'q-scroll-list';
import "q-scroll-list/index.css";
const app = createApp(App);
app.use(QScrollList);
//简单使用
<script setup lang="ts">
import { ref } from "vue";
let data = ref([] as any[]);
let scrollList = ref(null);
let config = ref({
header: {
data: ["名称", "类型", "状态", "情况", "日期"],
height: 40,
color: "#fff",
borderColor: "pink",
borderSize: 1,
},
data: data,
pageSize: 7,
});
const selectItem = (id: string, rowIndex: number, colIndex: number) => {
console.log(id, rowIndex, colIndex);
};
data.value = [
{ id: "1", value: [1, 2, 3, 4, 5] },
{ id: "2", value: [2, 2, 3, 4, 5] },
{ id: "3", value: [3, 2, 3, 4, 5] },
{ id: "4", value: [4, 2, 3, 4, 5] },
{ id: "5", value: [5, 2, 3, 4, 5] },
{ id: "6", value: [6, 2, 3, 4, 5] },
{ id: "7", value: [7, 2, 3, 4, 5] },
{ id: "8", value: [8, 2, 3, 4, 5] },
{ id: "9", value: [9, 2, 3, 4, 5] },
{ id: "10", value: [10, 2, 3, 4, 5] },
{ id: "11", value: [11, 2, 3, 4, 5] },
{ id: "12", value: [12, 2, 3, 4, 5] },
{ id: "13", value: [13, 2, 3, 4, 5] },
{ id: "14", value: [14, 2, 3, 4, 5] },
{ id: "15", value: [15, 2, 3, 4, 5] },
{ id: "16", value: [16, 2, 3, 4, 5] },
];
setTimeout(() => {
//一步更新数据
(scrollList.value as any).pushData([
{ id: "17", value: [17, 22, 23, 24, 25] },
{ id: "18", value: [18, 22, 23, 24, 25] },
{ id: "19", value: [19, 22, 23, 24, 25] },
{ id: "20", value: [20, 22, 23, 24, 25] },
]);
}, 10000);
</script>
<template>
<img alt="Vue logo" src="./assets/logo.png" />
<div class="bg" style="width:500px;height:300px;margin:0 auto">
<QScrollList :config="config" @selectItem="selectItem" ref="scrollList"></QScrollList>
</div>
</template>
事件
回调方法 | 返回参数 | 参数类型 | 返回说明 |
---|
@selectItem | (id,rowIndex,colIndex) | (int,int,int) | 点击行返回 id |
pushData | (data) | (array) | 异步更新数据 |
参数 config
参数名 | 参数类型 | 说明 | |
---|
header | HeaderObject | 表头配置 |
type | string | 单行滚动:single 分页滚动:page |
data | object[] | 列表数据{id:'xx',value:'xx','hh'} |
pageSize | number | 一页展示多少行 |
columnWidth | number[] | 每列的间隔,,20,这样第三列为 20,其他列等分 |
waitTime | number | 动画执行间隔时间 |
selectBg | string | 鼠标点击行的背景颜色 |
singleBg | string | 奇行背景颜色 |
doubleBg | string | 偶行背景颜色 |
注意:
data 必须包含id及value
value为每列的数据可以为html字符
参数 HeaderObject
参数名 | 参数类型 | 说明 | |
---|
size | number | 字体大小 |
color | string | 字体颜色 |
data | string[] | 表头数据'姓名','公司' |
height | number | 表头行高 |
borderColor | number[] | 表头下的 border 颜色 |
borderSize | number | 表头下的 border 大小 |
图片
Customize configuration
See Configuration Reference.