Ant Design Vue table中列超长显示...并加提示语的实例
网络编程 2021-07-04 14:07www.168986.cn编程入门
这篇文章主要介绍了Ant Design Vue table中列超长显示...并加提示语的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随长沙网络推广过来看看吧
我就废话不多说了,大家还是直接看代码吧~
<template> <a-row class="a-left"> <a-row> <p class="a-title">今日考勤状况</p> <a-row type="flex" justify="space-around"> <a-col :span="4" class="block"> <h3>出勤状况总览</h3> {{ tAll.t }}/ <span style="color: #F0FF00">{{ tAll.exceptionCount }}</span> </a-col> <a-col :span="4" class="block"> <h3>管理人员出勤状况</h3> {{ tLeader.t }}/ <span style="color: #F0FF00">{{ tLeader.exceptionCount }}</span> </a-col> <a-col :span="4" class="block"> <h3>施工人员出勤状况</h3> {{ tSpecial.t }}/ <span style="color: #F0FF00">{{ tSpecial.exceptionCount }}</span> </a-col> <a-col :span="4" class="block"> <h3>特种设备人员出勤状况</h3> {{ tEmployee.t }}/ <span style="color: #F0FF00">{{ tEmployee.exceptionCount }}</span> </a-col> </a-row> </a-row> <a-row class="a-mt-20"> <h3 class="a-title">考勤记录查询</h3> </a-row> <!--查询条件--> <a-form :form="form" layout="inline"> <a-form-item label="姓名"> <a-input class="a-input" v-model="queryParam.name" placeholder="请输入姓名" :disabled="loading" /> </a-form-item> <a-form-item label="日期"> <y-date-picker :start.sync="queryParam.startDate1" :end.sync="queryParam.endDate1" :disabled="loading" /> </a-form-item> <a-form-item> <a-button :disabled="loading" class="a-ml-10 a-btn" icon="search" @click="searchData">查询</a-button> <a-button :disabled="loading" class="a-btn a-ml-10" icon="reload" @click="reset">刷新</a-button> </a-form-item> </a-form> <!--查询结果--> <a-row class="a-pt-20 a-pt-10"> <a-col :span="6"> <p class="a-title">查询结果</p> </a-col> <a-col :span="6" :offset="12" class="a-right"> <a-button :disabled="loading" class="a-ml-10 a-btn" icon="file-pdf" @click="exportData">导出</a-button> </a-col> <a-table class="ant-table" :row-key="uuid" :columns="columns" :data-source="RenYuanKaoQin.data" :loading="loading" :pagination="{ position: 'bottom', total: Number(RenYuanKaoQin.total), current: Number(queryParam.pageNumber), pageSize: Number(queryParam.pageSize), showSizeChanger: true, pageSizeOptions: ['7', '14', '21'], showTotal: total => `总共有${total}条` }" :scroll="{x:1300, y: 'calc(100vh - 600px)' }" :locale="{ emptyText: '暂未找到符合条件的结果' }" @change="tableChange" > <!--操作--> <template slot="action" slot-scope="text, record"> <a href="javascript:;" rel="external nofollow" @click="intoDetail(record)">详情</a> </template> <span slot="serial" slot-scope="text, record, index">{{ index + 1 }}</span> //处理超长生成...,并加上提示文字代码 <div :style="{maxWidth: '180px',whiteSpace: 'nowrap',textOverflow: 'ellipsis',overflow: 'hidden', wordWrap: 'break-word', wordBreak: 'break-all' }" slot="groupName" slot-scope="text, record"> <a-tooltip placement="left"> <template slot="title"> <span>{{record.groupName}}</span> </template> {{record.groupName}} </a-tooltip> </div> </a-table> </a-row> </a-row> </template>
<script> import { YDatePicker } from '@/ponents/Form' import { mapGetters, mapActions } from 'vuex' import { clone, get, now } from 'lodash' export default { name: 'RenYuan-KaoQin', ponents: { YDatePicker }, metaInfo: { title: '考勤记录' }, data() { return { loading: false, form: this.$form.createForm(this), initQueryParam: {}, queryParam: { pageNumber: 1, pageSize: 7, name: '', startDate1: '', endDate1: '' }, columns: [ { title: '序号', align: 'center', width: 80, scopedSlots: { customRender: 'serial' } }, { title: '姓名', align: 'center', width: 150, dataIndex: 'memberName' }, { title: '签到时间', align: 'center', width: 250, dataIndex: 'inTimeNew' }, { title: '签退时间', align: 'center', width: 250, dataIndex: 'outTimeNew' }, { title: '出勤时间', align: 'center', width: 150, dataIndex: 'jgHour' }, { title: '所属劳动组织', align: 'center', width: 200, scopedSlots: { customRender: 'groupName' } },//这里groupName指向 div中slot="groupName" { title: '专业分工', align: 'center', width: 150, dataIndex: 'workTypeNew' }, { title: '人员类别', align: 'center', dataIndex: 'personnelTypeStr' } ] } }, puted: { ...mapGetters(['RenYuanKaoQin']), tAll() { return { t: get(this.RenYuanKaoQin, 'count.tAll[0].t'), exceptionCount: get(this.RenYuanKaoQin, 'count.tAll[0].exceptionCount') } }, tSpecial() { return { t: get(this.RenYuanKaoQin, 'count.tSpecial[0].t'), exceptionCount: get(this.RenYuanKaoQin, 'count.tSpecial[0].exceptionCount') } }, tLeader() { return { t: get(this.RenYuanKaoQin, 'count.tLeader[0].t'), exceptionCount: get(this.RenYuanKaoQin, 'count.tLeader[0].exceptionCount') } }, tEmployee() { return { t: get(this.RenYuanKaoQin, 'count.tEmployee[0].t'), exceptionCount: get(this.RenYuanKaoQin, 'count.tEmployee[0].exceptionCount') } } }, beforeRouteUpdate(to, from, next) { next() this.getData() }, beforeRouteEnter(to, from, next) { next(async vm => { vm.initQueryParam = clone(vm.queryParam) // 初始表单 vm.getRenYuanKaoQinCount({ xmbh: vm.$store.state.route.params.xmbh }) vm.getData() }) }, methods: { ...mapActions(['getRenYuanKaoQin', 'getRenYuanKaoQinCount']), uuid() { return now() + Math.random() }, / 清空查询条件 / reset() { this.queryParam = clone(this.initQueryParam) this.form.resetFields() this.getData() }, / 获取表格数据 / async getData() { this.loading = true await this.getRenYuanKaoQin({ xmbh: this.$store.state.route.params.xmbh, ...this.queryParam }) this.loading = false }, / 表格数据变化 / tableChange(pagination) { this.queryParam.pageSize = pagination.pageSize this.queryParam.pageNumber = pagination.current this.getData() }, searchData() { this.queryParam.pageNumber = 1 this.getData() } } } </script>
<style lang="stylus" scoped> .block { height: 86px; padding: 10px 0; box-sizing: border-box; background: url('../../../assets/home/bg.png') no-repeat; background-size: 100% 100%; text-align: center; font-size: 20px; h3 { text-align: center; font-size: 18px; } span { font-size: 20px; } } </style>
补充知识ant-design table 中的td 数据过多显示部分,鼠标放上去显示全部
第一表格中的数据自动换行,所以表格中的行高不一致
目标实现防止自动换行,
代码实现// 是主要实现
:global { .ant-table-tbody > tr > td, .ant-table-thead > tr > th { height: 62px; white-space:nowrap;// overflow: auto;// } .ant-table-thead > tr > th { background: #2db7f5; white-space:nowrap;// overflow: auto;// }
第二上述目标实现,全部显示出来
目标实现指定td的数据显示部分以及...,当鼠标放上去显示全部
代码实现
const webColumns = [ { title: 'IP', dataIndex: 'srcIp', key: 'srcIp', width:'15%', },{ title: '描述', dataIndex: 'msg', key: 'msg', //width:'8%', onCell: ()=>{ return { style:{ maxWidth:260, overflow:'hidden', whiteSpace:'nowrap', textOverflow:'ellipsis', cursor:'pointer', } } }, render: (text) => <span placement="Left" title={text}>{text}</span>, } ]
其中 oncell()以下为主要实现。
以上这篇Ant Design Vue table中列超长显示...并加提示语的实例就是长沙网络推广分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南