buildadmin+tp8表格操作(7.1)表格的事件监听(el-table中的事件)

news2024/11/13 10:17:42

因为buildAdmin是封装的 el-table的组件,所以el-table中的事件, 也是可以使用的, 两者有几个事件是有共同的(比如 双击事件), 这时可以根据自己的需要自行选择

以下代码是 buildadmin 使用 el-table中的事件的例子
可以看到, table 组件中 绑定了很多的事件, 这些事件都是 el-table的事件
在这里插入图片描述

<template>
    <div class="default-main ba-table-box">
        <el-alert class="ba-table-alert" type="info" show-icon>
            <template #default>
                <div class="ba-markdown">
                    <div>对表格内各种行为事件的监听示例,<code>el-table 事件</code></div>
                    <div>1、请按下<code>F12</code>从浏览器控制台查看更多细节</div>
                    <div>2、请单击/右击/双击单元格、行、表头等触发 el-table 事件</div>
                </div>
            </template>
        </el-alert>

        <TableHeader
            :buttons="['refresh', 'add', 'edit', 'delete', 'comSearch', 'quickSearch', 'columnDisplay']"
            :quick-search-placeholder="t('Quick search placeholder', { fields: t('examples.table.event2.quick Search Fields') })"
        ></TableHeader>

        <!-- 示例核心代码(1/2) -->
        <!-- 我们在此示例了 el-table 的各种事件 -->
        <!-- 以此类推,el-table 自带的属性也都是可以使用的 -->
        <Table
            @cell-mouse-enter="onCellMouseEnter"
            @cell-mouse-leave="onCellMouseLeave"
            @cell-click="onCellClick"
            @cell-contextmenu="onCellContextmenu"
            @row-click="onRowClick"
            @row-contextmenu="onRowContextmenu"
            @row-dblclick="onDblclick"
            @header-click="onHeaderClick"
            @header-contextmenu="onHeaderContextmenu"
            @header-dragend="onHeaderDragend"
            ref="tableRef"
        ></Table>

        <!-- 温馨提示 -->
        <!-- 事件 select、select-all、selection-change、cell-dblclick、sort-change 请使用 ba-table 的钩子 -->
        <!-- 事件 filter-change	可用,但请自行实现筛选,buildadmin 并未使用 el 提供的表格筛选模式 -->

        <PopupForm />
    </div>
</template>

<script setup lang="ts">
import { ref, provide, onMounted } from 'vue'
import baTableClass from '/@/utils/baTable'
import { defaultOptButtons } from '/@/components/table'
import { baTableApi } from '/@/api/common'
import { useI18n } from 'vue-i18n'
import PopupForm from './popupForm.vue'
import Table from '/@/components/table/index.vue'
import TableHeader from '/@/components/table/header/index.vue'

defineOptions({
    name: 'examples/table/event2',
})

const { t } = useI18n()
const tableRef = ref()
const optButtons: OptButton[] = defaultOptButtons(['edit', 'delete'])

/**
 * 示例核心代码(2/2)
 */
const onCellMouseEnter = (row: TableRow, column: TableColumn, cell: HTMLElement, event: MouseEvent) => {
    console.info('%c-------单元格 hover 进入--------', 'color:blue')
    console.log('参数', row, column, cell, event)
}

const onCellMouseLeave = (row: TableRow, column: TableColumn, cell: HTMLElement, event: MouseEvent) => {
    console.info('%c-------单元格 hover 退出--------', 'color:blue')
    console.log('参数', row, column, cell, event)
}

const onCellClick = (row: TableRow, column: TableColumn, cell: HTMLElement, event: PointerEvent) => {
    console.info('%c-------单元格被点击--------', 'color:blue')
    console.log('参数', row, column, cell, event)
}

const onCellContextmenu = (row: TableRow, column: TableColumn, cell: HTMLElement, event: PointerEvent) => {
    console.info('%c-------单元格被右击--------', 'color:blue')
    console.log('参数', row, column, cell, event)
}

const onRowClick = (row: TableRow, column: TableColumn, event: PointerEvent) => {
    console.info('%c-------某一行被点击--------', 'color:blue')
    console.log('参数', row, column, event)
}

const onRowContextmenu = (row: TableRow, column: TableColumn, event: PointerEvent) => {
    console.info('%c-------某一行被右击--------', 'color:blue')
    console.log('参数', row, column, event)
}

const onDblclick = (row: TableRow, column: TableColumn, event: MouseEvent) => {
    console.info('%c-------某一行被双击--------', 'color:blue')
    console.log('参数', row, column, event)
}

const onHeaderClick = (column: TableColumn, event: PointerEvent) => {
    console.info('%c-------表头被点击--------', 'color:blue')
    console.log('参数', column, event)
}

const onHeaderContextmenu = (column: TableColumn, event: PointerEvent) => {
    console.info('%c-------表头被右击--------', 'color:blue')
    console.log('参数', column, event)
}

const onHeaderDragend = (newWidth: number, oldWidth: number, column: TableColumn, event: MouseEvent) => {
    console.info('%c-------列宽度改变--------', 'color:blue')
    console.log(newWidth, oldWidth, column, event)
}

const baTable = new baTableClass(
    new baTableApi('/admin/examples.table.Event2/'),
    {
        pk: 'id',
        column: [
            { type: 'selection', align: 'center', operator: false },
            { label: t('examples.table.event2.id'), prop: 'id', align: 'center', width: 70, operator: 'RANGE', sortable: 'custom' },
            {
                label: t('examples.table.event2.string'),
                prop: 'string',
                align: 'center',
                operatorPlaceholder: t('Fuzzy query'),
                operator: 'LIKE',
                sortable: false,
            },
            {
                label: t('examples.table.event2.switch'),
                prop: 'switch',
                align: 'center',
                render: 'switch',
                operator: 'eq',
                sortable: false,
                replaceValue: { '0': t('examples.table.event2.switch 0'), '1': t('examples.table.event2.switch 1') },
            },
            { label: t('examples.table.event2.datetime'), prop: 'datetime', align: 'center', operator: 'eq', sortable: 'custom', width: 160 },
            {
                label: t('examples.table.event2.create_time'),
                prop: 'create_time',
                align: 'center',
                render: 'datetime',
                operator: 'RANGE',
                sortable: 'custom',
                width: 160,
                timeFormat: 'yyyy-mm-dd hh:MM:ss',
            },
            { label: t('Operate'), align: 'center', width: 100, render: 'buttons', buttons: optButtons, operator: false },
        ],
        dblClickNotEditColumn: [undefined, 'switch'],
    },
    {
        defaultItems: { switch: '1', datetime: null },
    }
)

provide('baTable', baTable)

onMounted(() => {
    baTable.table.ref = tableRef.value
    baTable.mount()
    baTable.getIndex()?.then(() => {
        baTable.initSort()
        baTable.dragSort()
    })
})
</script>

<style scoped lang="scss"></style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1229811.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

光伏拉晶厂RFID智能化生产工序管理

一、项目背景 随着全球能源短缺和气候变暖的挑战日益突显&#xff0c;清洁能源已成为国内能源发展的主要目标之一&#xff0c;作为清洁能源的重要组成部分&#xff0c;光伏行业在过去几十年中取得了巨大的发展&#xff0c;成为我国的战略性新兴产业之一。在智能制造的大环境下…

mybatis使用foreach标签实现union集合操作

最近遇到一个场景就是Java开发中&#xff0c;需要循环多个表名&#xff0c;然后用同样的查询操作分别查表&#xff0c;最终得到N个表中查询的结果集合。在查询内容不一致时Java中跨表查询常用的是遍历表名集合循环查库&#xff0c;比较耗费资源&#xff0c;效率较低。在查询内容…

cadence layout lvs时出现error

Error&#xff1a;Schematic export failed or was cancelled.Please consult the transcript in the viewer window. 解决办法同下&#xff1a; cadence layout lvs时出现error-CSDN博客

BetterDisplay Pro for Mac(显示器校准软件)

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件&#xff0c;可以帮助用户调整显示器的颜色和亮度&#xff0c;以获得更加真实、清晰和舒适的视觉体验。 以下是BetterDisplay Pro的主要特点&#xff1a; - 显示器校准&#xff1a;可以根据不同的需求和环境…

requests解决HAR支持问题:引入第三方库提升开发效率

关于HAR支持的问题已关闭。HAR&#xff08;HTTP Archive&#xff09;是一种用于存储HTTP请求和响应的标准格式&#xff0c;广泛应用于网络调试和性能优化中。然而&#xff0c;HAR支持的缺失可能会给开发者带来不便&#xff0c;影响其工作效率。 解决方案 为了解决这个问题&…

【2023云栖】大模型驱动DataWorks数据开发治理平台智能化升级

随着大模型掀起AI技术革新浪潮&#xff0c;大数据也进入了与AI深度结合的创新时期。2023年云栖大会上&#xff0c;阿里云DataWorks产品负责人田奇铣发布了DataWorks Copilot、DataWorks AI增强分析、DataWorks湖仓融合数据管理等众多新产品能力&#xff0c;让DataWorks这款已经…

GaussDB SQL基础语法示例-GOTO语句

目录 一、前言 二、在GaussDB数据库中的概念及语法 1、基本概念 2、语法 三、在GaussDB数据库中的基础示例和限制场景说明 1、基础示例 2、限制场景说明 四、小结 一、前言 SQL是用于访问和处理数据库的标准计算机语言。GaussDB支持SQL标准&#xff08;默认支持SQL2、…

2023年第十三届中国国际储能大会(CIES2023)-核心PPT资料下载

一、峰会简介 本届大会以“推动新型能源体系建设&#xff0c;促进储能产业高质量发展”为主题&#xff0c;为进一步积极探索储能领域新技术、新业态、新模式&#xff0c;推进储能产业上下游供应链深度合作&#xff0c;推动新型储能与新型电力系统协同创新&#xff0c;搭建储能…

(六)、基于 LangChain 实现大模型应用程序开发 | 基于知识库的个性化问答 (文档分割 Splitting)

在上一章中&#xff0c;我们刚刚讨论了如何将文档加载到标准格式中&#xff0c;现在我们要谈论如何将它们分割成较小的块。这听起来可能很简单&#xff0c;但其中有很多微妙之处会对后续工作产生重要影响。 文章目录 1、为什么要做文档分割&#xff1f;2、文档分割方式3、基于…

【OpenCV】仿射变换中cv2.estimateAffine2D 的原理

目录 一、介绍 二、仿射变换矩阵 (M) 1.M中六个元素的说明 2.计算旋转角度 3.M的计算过程 三、输出状态 (inliers) 四、错切参数 1.错切参数的定义 2.错切参数例子 &#xff08;1&#xff09;水平错切 &#xff08;2&#xff09;垂直错切 一、介绍 cv2.estimateAffi…

开源vs闭源大模型如何塑造技术的未来?开源模型的优劣势未来发展方向

开源vs闭源大模型如何塑造技术的未来&#xff1f;开源模型的优劣势&未来发展方向 写在最前面一、开源与闭源&#xff1a;定义与历史背景开源和闭源的定义开源大模型&#xff1a;社区驱动的创新 二、开源和闭源的优劣势比较开源大模型&#xff08;瓶颈&#xff09;数据&…

windows中运行项目中.sh和kaggle安装与配置

在git bash中运行 命令如下&#xff1a; bash download_data.sh 或者 ./download_data.sh如果使用kaggle的数据集&#xff0c;会要求输入用户名和API。 API在这个文件里面&#xff0c;复制过来即可。 安装kaggle pip install kaggle去kaggle官网&#xff0c;点击这里&…

MES集成 | 集成标准不统一?看得帆云iPaaS怎么应对

得帆信息结合自身丰富实施经验及众多实践案例&#xff0c;编写了《得帆云 AIGC低代码PaaS平台系列白皮书——MES集成应用》&#xff0c;希望能为正在使用MES产品的企业数字化转型领导者和IT人员带来一些帮助。 MES是众多大型生产制造型企业在做生产执行管理时会实施的一套系统。…

监控电脑的软件叫什么丨科普小知识

监控电脑的软件叫电脑监控软件。 电脑监控软件是一种可以监控电脑使用情况的软件&#xff0c;通常具有记录屏幕活动、网站访问、聊天记录等功能。 应用场景 1、企业内部管理&#xff1a;企业管理者可以通过监控电脑软件来监视员工的工作活动&#xff0c;以确保员工遵守公司政…

2023年电子工程师大会暨第三届社区年度颁奖活动--【其利天下技术】

华秋电子发烧友将于2023年11月23日在深圳举办一场盛大的技术交流活动&#xff0c;即“2023年电子工程师大会暨第三届社区年度颁奖活动”。本次活动邀请了各大高校教授、企业高管、行业专家和电子工程师们齐聚一堂&#xff0c;围绕“开源硬件”、“OpenHarmony RISC-V”、“工程…

.NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径

📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,我们面对的不仅仅是技术还有人心,人心不可测,海水不可量,唯有技术,才是深沉黑夜中的一座闪烁的灯塔 !背景介绍 突然闯到路径搜索算法里…

接口测试基础与接口测试用例设计思路详解

接口测试简介 1.什么是接口 接口就是内部模块对模块&#xff0c;外部系统对其他服务提供的一种可调用或者连接的能力的标准&#xff0c;就好比usb接口&#xff0c;他是系统向外接提供的一种用于物理数据传输的一个接口&#xff0c;当然仅仅是一个接口是不能进行传输的&#x…

Redis7--基础篇3(持久化)

持久化介绍 官网地址&#xff1a; https://redis.io/docs/manual/persistence RDB(Redis DataBase)AOF(Append Only File)RDB AOF RDB模式(Redis DataBase) RDB 持久性以指定的时间间隔执行数据集的时间点快照。 实现类似照片记录效果的方式&#xff0c;就是把某一时刻的数据…

Blender烘焙AO操作及对应的python代码

&#xff08;一&#xff09;Blender软件操作 1. 导入模型&#xff08;这里省略&#xff09; 2. 材质设置 模型使用的所有材质都需要删除Surface Shader&#xff0c;没有其他多余的计算&#xff0c;可以大量缩短烘焙时间。删除之后的只留下一个材质输出节点&#xff0c;如图所…

ubuntu从源码编译gdal

删除旧版本 sudo apt remove libgdal* sudo apt remove gdal* sudo apt autoremove下载proj和gdal https://github.com/OSGeo/PROJ/releases 这里使用的是9.3.0版本&#xff1a; https://github.com/OSGeo/gdal/releases 这里使用的是3.7.3版本&#xff1a; 编译 安装…