<template> <div class="card-container"> <el-row :gutter="20"> <el-col v-for="(item, index) in list" :key="index" :xs="24" :sm="8" :md="8" :lg="8" :xl="4" > <el-card shadow="hover"> <div slot="header"> <span>{{ item.title }}</span> </div> <div style="width: 100%; height: 200px"> <vab-image :big-src="item.img" :percent="item.percent" :small-src="item.smallImg" @clickBig="bigClick(item)" @clickSmall="smallClick(item)" ></vab-image> </div> </el-card> </el-col> </el-row> <el-pagination :background="background" :current-page="pageNo" :layout="layout" :page-size="pageSize" :total="total" @current-change="handleCurrentChange" @size-change="handleSizeChange" ></el-pagination> </div> </template> <script> import { getList } from "@/api/table"; import VabImage from "@/components/VabImage"; export default { name: "Card", components: { VabImage, }, data() { return { value: true, currentDate: new Date(), list: null, listLoading: true, pageNo: 1, pageSize: 10, layout: "total, sizes, prev, pager, next, jumper", total: 0, background: true, height: 0, elementLoadingText: "正在加载...", dialogFormVisible: false, }; }, created() { this.fetchData(); this.height = this.$baseTableHeight(1); }, methods: { bigClick(val) { this.$baseAlert("点击了大图"); }, smallClick(val) { this.$baseAlert("点击了小图"); }, handleSizeChange(val) { this.pageSize = val; this.fetchData(); }, handleCurrentChange(val) { this.pageNo = val; this.fetchData(); }, async fetchData() { this.listLoading = true; const { data, totalCount } = await getList({ pageNo: this.pageNo, pageSize: this.pageSize, }); this.list = data; this.total = totalCount; setTimeout(() => { this.listLoading = false; }, 300); }, }, }; </script>