码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • elementplus、vxe、surely 三种表格组件的封装


    目录

    1. element-plus

    1.1 功能描述

    1.2 优缺点

    1.3 全屏按钮组件

    1.4 表格行密度组件

    1.5 ElementPlus 表格组件

    1.5.1 表格组件接收的数据 props

    1.5.2 表格组件发送的事件 emit

    1.5.3 表格顶部操作行

    1.5.4 表格模板封装

    2. vxe

    2.1 功能介绍

    2.2 vxe-table 表格组件

    2.2.1 vxe-table 数据重载

    2.2.2  表格组件发送的事件 emit

    2.2.3 vxe-table 常见 API

    2.2.4 表格模板封装

    3. surely-table

    3.1 功能介绍

    3.2 surely-table 表格组件

    3.2.1 表格组件发送的事件 emit

    3.2.2 surely-table 常见 API

    3.2.3 表格模板封装

    3.2.4 调整 surely-table 样式


    1. element-plus

    Table 表格 | Element Plusa Vue 3 based component library for designers and developershttps://element-plus.gitee.io/zh-CN/component/table.html

    1.1 功能描述

    表头:

    • 左侧操作按钮 —— 设置表格密度、设置表格全屏
    • 右侧操作按钮 —— 针对 表格多行数据 进行操作
    • 可以添加表格标题
    • 可以调整 表头行 对齐方式
    • 可以筛选

    表身:

    • 表格操作列 —— 针对 表格单行数据 进行操作
    • 可以调整 表身行 对齐方式
    • 可以自定义单元格样式

    1.2 优缺点

    • 优点:较为常见的一种表格,配置相对简单
    • 缺点:数据量大时非常卡顿

    1.3 全屏按钮组件

    可以通过以下方式控制表格全屏状态:

    • ESC 按键
    • 点击切换全屏按钮 
    1. <template>
    2. <el-tooltip
    3. effect="dark"
    4. :content="fullScreen ? '取消全屏' : '全屏'"
    5. placement="top"
    6. :auto-close="1000"
    7. >
    8. <span class="tooltip-outline-none" @click="handleSetFullScreen()">
    9. <el-icon v-if="!fullScreen" class="pointer tooltip-icon" :size="18">
    10. <full-screen />
    11. el-icon>
    12. <i v-if="fullScreen" class="fa fa-compress pointer tooltip-icon">i>
    13. span>
    14. el-tooltip>
    15. template>
    16. <script lang="ts">
    17. import {
    18. reactive,
    19. toRefs,
    20. defineComponent,
    21. onMounted,
    22. onUnmounted,
    23. } from 'vue';
    24. export default defineComponent({
    25. name: 'TFullScreenButton',
    26. emits: ['full-screen-change'],
    27. setup(props, { emit }) {
    28. // 响应式数据
    29. const state = reactive({
    30. // 是否全屏
    31. fullScreen: false,
    32. });
    33. /**
    34. * esc 按键事件
    35. */
    36. const keydownEvent = (event: KeyboardEvent) => {
    37. if (document.fullscreenElement) {
    38. document.exitFullscreen();
    39. }
    40. if (event.keyCode === 27) {
    41. state.fullScreen = false;
    42. }
    43. // 发送事件,切换全屏状态
    44. emit('full-screen-change', state.fullScreen);
    45. };
    46. /**
    47. * esc 窗口尺寸变化事件
    48. */
    49. const windowResizeEvent = () => {
    50. state.fullScreen = document.fullscreen;
    51. // 发送事件,切换全屏状态
    52. emit('full-screen-change', state.fullScreen);
    53. };
    54. /**
    55. * 设置控制全屏显示状态值
    56. */
    57. const handleSetFullScreen = () => {
    58. // 设置状态值
    59. state.fullScreen = !state.fullScreen;
    60. // 浏览器全屏模式
    61. if (state.fullScreen && document.body.requestFullscreen) {
    62. document.body.requestFullscreen();
    63. } else if (document.fullscreenElement) {
    64. // 浏览器退出全屏模式
    65. document.exitFullscreen();
    66. }
    67. // 发送事件,切换全屏状态
    68. emit('full-screen-change', state.fullScreen);
    69. };
    70. onMounted(async () => {
    71. // 监听 esc 按键事件 退出全屏
    72. window.addEventListener('keyup', keydownEvent, false);
    73. // 监听窗口尺寸改变事件 退出全屏
    74. window.addEventListener('resize', windowResizeEvent, false);
    75. });
    76. onUnmounted(() => {
    77. // 移除监听事件
    78. window.removeEventListener('keyup', keydownEvent);
    79. window.removeEventListener('resize', windowResizeEvent);
    80. });
    81. return {
    82. ...toRefs(state),
    83. handleSetFullScreen,
    84. };
    85. },
    86. });
    87. script>

    1.4 表格行密度组件

    使用 el-dropd

  • 相关阅读:
    数商云采购商城价格管理应用场景介绍 | 数字化采购助力汽配行业企业降本增效
    MAC 机器上 Python 程序打包
    sklearn快速入门教程:处理分类型数据
    观察者模式
    关系型数据库和非关系型数据库之间的区别
    解决QT的无界面程序,Ctrl+C无法触发析构函数的问题
    密码学承诺之原理和应用 - Kate多项式承诺
    人工智能框架实战精讲:Keras项目-英文语料的文本分类实战与调参优化
    代码随想录 Day - 48|#198 打家劫舍|#213 打家劫舍 II|#337 打家劫舍 III
    速度与敏捷:解密Velocity的奥秘
  • 原文地址:https://blog.csdn.net/Lyrelion/article/details/127204659
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号