Table 表格 + Pagination 分页

这篇具有很好参考价值的文章主要介绍了Table 表格 + Pagination 分页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

<el-table>属性
v-loading				加载动画
data					显示的数据
border					是否带有纵向边框
fit						列的宽度是否自撑开
highlight-current-row	是否要高亮当前行
row-style				行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style。
cell-style				单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style。
header-cell-style		表头单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有表头单元格设置一样的 Style。
default-sort			默认的排序列的 prop 和顺序。它的prop属性指定默认的排序的列,order指定默认排序的顺序
<el-table-column>属性
show-overflow-tooltip	当内容过长被隐藏时显示 tooltip
sortable				对应列是否可以排序
prop					对应列内容的字段名
width					对应列的宽度
min-width				对应列的最小宽度
label					显示的标题
align					对齐方式
<el-table 
	v-loading="listLoading" 
	:data="list" 
	border 
	fit 
	highlight-current-row 
	:row-style="{height: '38px'}"
	:cell-style="{padding: '0'}" 
	:header-cell-style="{backgroundColor:'#409EFF',color:'#fff',textAlign:'center',height:'36px',padding:'0'}"  
	style="width: 100%"
	:default-sort="{prop: 'id', order: 'descending'}">
	<el-table-column align="center" label="ID" width="80" sortable prop="id">
		<template slot-scope="scope">
			<span>{{ scope.row.id }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="充值包名" show-overflow-tooltip>
		<template slot-scope="scope">
			<span>{{ scope.row.name }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="展示名" show-overflow-tooltip>
		<template slot-scope="scope">
			<span>{{ scope.row.showname }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="到账金额(元)" show-overflow-tooltip min-width="100">
		<template slot-scope="scope">
			<span>{{ scope.row.price }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="售价(元)" show-overflow-tooltip>
		<template slot-scope="scope">
			<span>{{ scope.row.sellprice }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="类型" show-overflow-tooltip min-width="100">
		<template slot-scope="scope">
			<el-tag v-show="scope.row.type===1" type="success">普通充值包</el-tag>
			<el-tag v-show="scope.row.type===2" type="warning">活动充值包</el-tag>
			<el-tag v-show="scope.row.type===3" type="danger">首充充值包</el-tag>
			<el-tag v-show="scope.row.type===5" type="">分期到账充值包</el-tag>
		</template>
	</el-table-column>
	<el-table-column align="center" label="充值包状态">
		<template slot-scope="scope">
			<el-tag v-show="scope.row.status==5" type="success">正常</el-tag>
			<el-tag v-show="scope.row.status==6" type="danger">禁用</el-tag>
		</template>
	</el-table-column>
	<el-table-column align="center" label="代理">
		<template slot-scope="scope">
			<span>{{ scope.row.aname }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="子代理">
		<template slot-scope="scope">
			<span>{{ scope.row.accname }}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="创建时间" min-width="100">
		<template slot-scope="scope">
			<span>{{ scope.row.addtime | parseTime('{y}-{m}-{d} {h}:{i}')}}</span>
		</template>
	</el-table-column>
	<el-table-column align="center" label="排序" sortable>
		<template slot-scope="scope">
			<span>{{ scope.row.sort }}</span>
		</template>
	</el-table-column>
	
	

	<el-table-column align="center" label="操作" min-width="200" fixed="right">
		<template slot-scope="scope">
			<el-button type="primary" size="mini" :disabled="scope.row.status==5">启用</el-button>
			<el-button type="primary" size="mini" :disabled="scope.row.status==6">禁用</el-button>
			<el-button type="primary" size="mini">修改排序</el-button>
		</template>
	</el-table-column>
</el-table>

<!-- 分页 -->
<pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
import Pagination from '@/components/Pagination'
components: {
	Pagination,
},
data() {
	return {
		tabHeader: tabHeader,
		listLoading: true,
		list: [],
		total: 0,
		listQuery: {
			page: 1,
			limit: 10,
			status: 5, // 正常
			aid: null, // 代理id
			accid: null, // 子代理id
		},
	}
},
created() {
	// 自行写接口请求进行赋值
},

Pagination分页

<template>
  <div :class="{'hidden':hidden}" class="pagination-container">
    <el-pagination
      :background="background"
      :current-page.sync="currentPage"
      :page-size.sync="pageSize"
      :layout="layout"
      :page-sizes="pageSizes"
      :total="total"
      v-bind="$attrs"
      @size-change="handleSizeChange"
      @current-change="handleCurrentChange"
    />
  </div>
</template>

<script>
import { scrollTo } from '@/utils/scroll-to'

export default {
  name: 'Pagination',
  props: {
    total: {
      required: false,
      type: Number
    },
    page: {
      type: Number,
      default: 1
    },
    limit: {
      type: Number,
      default: 20
    },
    pageSizes: {
      type: Array,
      default() {
        return [10, 15, 20, 30, 50]
      }
    },
    layout: {
      type: String,
      default: 'total, sizes, prev, pager, next, jumper'
    },
    background: {
      type: Boolean,
      default: true
    },
    autoScroll: {
      type: Boolean,
      default: true
    },
    hidden: {
      type: Boolean,
      default: false
    }
  },
  computed: {
    currentPage: {
      get() {
        return this.page
      },
      set(val) {
        this.$emit('update:page', val)
      }
    },
    pageSize: {
      get() {
        return this.limit
      },
      set(val) {
        this.$emit('update:limit', val)
      }
    }
  },
  methods: {
    handleSizeChange(val) {
      this.$emit('pagination', { page: this.currentPage, limit: val })
      if (this.autoScroll) {
        scrollTo(0, 800)
      }
    },
    handleCurrentChange(val) {
      this.$emit('pagination', { page: val, limit: this.pageSize })
      if (this.autoScroll) {
        scrollTo(0, 800)
      }
    }
  }
}
</script>

<style scoped>
.pagination-container {
  background: #fff;
  padding: 32px 16px;
}
.pagination-container.hidden {
  display: none;
}
</style>

scroll-to.js

Math.easeInOutQuad = function(t, b, c, d) {
	t /= d / 2
	if (t < 1) {
		return c / 2 * t * t + b
	}
	t--
	return -c / 2 * (t * (t - 2) - 1) + b
}

// requestAnimationFrame for Smart Animating http://goo.gl/sx5sts
var requestAnimFrame = (function() {
	return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window
		.mozRequestAnimationFrame || function(callback) {
			window.setTimeout(callback, 1000 / 60)
		}
})()

/**
 * Because it's so fucking difficult to detect the scrolling element, just move them all
 * @param {number} amount
 */
function move(amount) {
	document.documentElement.scrollTop = amount
	document.body.parentNode.scrollTop = amount
	document.body.scrollTop = amount
}

function position() {
	return document.documentElement.scrollTop || document.body.parentNode.scrollTop || document.body.scrollTop
}

/**
 * @param {number} to
 * @param {number} duration
 * @param {Function} callback
 */
export function scrollTo(to, duration, callback) {
	const start = position()
	const change = to - start
	const increment = 20
	let currentTime = 0
	duration = (typeof(duration) === 'undefined') ? 500 : duration
	var animateScroll = function() {
		// increment the time
		currentTime += increment
		// find the value with the quadratic in-out easing function
		var val = Math.easeInOutQuad(currentTime, start, change, duration)
		// move the document.body
		move(val)
		// do the animation unless its over
		if (currentTime < duration) {
			requestAnimFrame(animateScroll)
		} else {
			if (callback && typeof(callback) === 'function') {
				// the animation is done so lets callback
				callback()
			}
		}
	}
	animateScroll()
}

Table 表格 + Pagination 分页文章来源地址https://www.toymoban.com/news/detail-433876.html

到了这里,关于Table 表格 + Pagination 分页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 表格(el-table)里面嵌套表格(el-table)

    样式如下:   用到的代码: 一般需要嵌套表格这种情况下,后端返回的都是字符串格式的数组,需要在接收到数据后自己转化,编辑好提交的时候也需要自己把数组转为字符串格式传给后端. 一般在涉及到嵌套表格的情况下,新增或者编辑某条记录的时候,都会有动态增加或者删除一

    2024年02月15日
    浏览(38)
  • el-table 列分页

    2024年02月05日
    浏览(45)
  • el-table实现纯前端导出(适用于el-table任意表格)

    2023.9.1今天我学习了如何使用el-table实现前端的导出功能,该方法的好处有无论你的el-table长什么样子,导出之后就是什么样子。 1.安装三个插件 npm install file-save npm install xlsx npm install xlsx-style 2.创建Export2Excel.js 3.按需引入 4.vue.config.js引入 效果: 扩展: 当我们会出现这样的表

    2024年02月10日
    浏览(48)
  • el-table 表格头部合并

    就是这样哟

    2024年02月14日
    浏览(41)
  • 可编辑的el-table表格

    可编辑的el-table表格,可以结合input输入框,select选择框,tree树形结构等。 实现序列递增,删除的序列不会再出现。 效果图 html部分代码 js部分代码

    2024年02月14日
    浏览(41)
  • el-table-如何刷新表格数据

    表格里面的数据更新后,可以通过以下方法来刷新表格 方法一  用更新后的数据,覆盖之前的数据 var newTableData=[]; for(var i=0;ithat.tableData.length;i++){        if(aId==that.selectStationIdbId==that.selectDeviceId){         that.tableData[i].physicalid=physicalId;     }     newTableData.push(that.tableData[i

    2024年02月09日
    浏览(35)
  • el-table 实现表、表格行、表格列合并

    最近写vue开发项目的时候,很多地方用到了Element组件中的Table 表格。经过一周的边学边做,我总结了以下三种有关表格的合并方法。 话不多说,先看效果图  代码如下: 表格结构如上,其中:header-cell-style对表头做了一些处理。  效果图如: 代码如下: 要进行表格合并,关

    2024年02月09日
    浏览(34)
  • 【el-table的表格宽度自适应】

    el-tale组件在表头中只提供了一个width属性来控制表格的宽度,如果将其写死,则会针对过长的内容可能会有溢出换行、针对过短的内容可能会出现占位过多,所以就写了一个js文件来根据字符的长短来返回相应的宽度。 代码如下(示例):

    2024年02月16日
    浏览(41)
  • el-table实现嵌套表格的展示

    需求 一个表单中存在子表 列表返回格式 实现 实现思路 el-table中在嵌套一个el-table,这样数据格式就没问题了,主要就是样式 将共同的列放到一列中,通过渲染自定义表头 render-header ,将表头按照合适的宽度渲染出来 根据数据渲染表头 调样式,慢慢调到合适就行 完整代码

    2024年02月21日
    浏览(45)
  • el-table表格实现自动滚动效果

    table页面的内容如果超出设定的height会出现自动无限滚动的效果,如下所示: 先给el-table一个ref属性 然后获取到这个属性 在mounted阶段执行scrollFun函数,通过setTnterval定时器来实现动态滚动效果,代码如下: 如果出现列表字段过长时,可使用tooltip-effect=“dark” 搭配 show-overf

    2024年02月13日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包