• buildadmin+tp8表格操作(7)表格的事件监听


    buildadmin 中的事件都已经在 baTable类中定义好了。我们一般不会去修改,万一我们要在事件上有所操作, 我们可以通过事件的 前置和后置 钩子函数来处理
    在这里插入图片描述
    在这里插入图片描述
    那么我们是如何使用这些钩子呢?
    我们只需要在 创建对象的时候,定义好这些钩子就可以了。如下例中, baTable类 创建对象的进候,就添加了相应的 before after 钩子

    const baTable = new baTableClass(
        new baTableApi('/admin/examples.table.Event/'),
        {
            pk: 'id',
            column: [
                { type: 'selection', align: 'center', operator: false },
                { label: t('examples.table.event.id'), prop: 'id', align: 'center', width: 70, operator: 'RANGE', sortable: 'custom' },
                {
                    label: t('examples.table.event.string'),
                    prop: 'string',
                    align: 'center',
                    operatorPlaceholder: t('Fuzzy query'),
                    operator: 'LIKE',
                    sortable: false,
                },
                {
                    label: t('examples.table.event.switch'),
                    prop: 'switch',
                    align: 'center',
                    render: 'switch',
                    operator: 'eq',
                    sortable: false,
                    replaceValue: { '0': t('examples.table.event.switch 0'), '1': t('examples.table.event.switch 1') },
                },
                { label: t('examples.table.event.datetime'), prop: 'datetime', align: 'center', operator: 'eq', sortable: 'custom', width: 160 },
                {
                    label: t('examples.table.event.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 },
        },
        {
            // 示例核心代码(1/2)
            // 操作前置钩子,return false 可取消原操作
            getIndex() {
                console.info('%c-------获取表格数据前置--------', 'color:blue')
            },
            postDel({ ids }) {
                console.info('%c-------请求删除前置--------', 'color:blue')
                console.log('被删除数据', ids)
            },
            requestEdit({ id }) {
                console.info('%c-------请求编辑前置--------', 'color:blue')
                console.log('被编辑数据', id)
            },
            onTableDblclick({ row, column }) {
                console.info('%c-------双击了单元格,双击具体操作执行前置--------', 'color:blue')
                console.log('双击携带了数据', row, column)
            },
            toggleForm({ operate, operateIds }) {
                console.info('%c-------表单切换前置--------', 'color:blue')
                console.log('表单切换携带了数据', operate, operateIds)
            },
            onSubmit({ formEl, operate, items }) {
                console.info('%c-------表单提交前置(尚未请求提交)--------', 'color:blue')
                console.log('表单提交前携带了数据,您可以在此对数据进行预处理', formEl, operate, items)
            },
            onTableAction({ event, data }) {
                console.info('%c-------表格内部事件 - 前置--------', 'color:blue')
                console.log('触发的事件和携带的数据为', event, data)
            },
            onTableHeaderAction({ event, data }) {
                console.info('%c-------表头事件 - 前置--------', 'color:blue')
                console.log('触发的事件和携带的数据为', event, data)
            },
            mount() {
                console.info('%c-------表格初始化前置--------', 'color:blue')
            },
        },
        {
            // 示例核心代码(2/2)
            getIndex({ res }) {
                console.info('%c-------获取表格数据后置--------', 'color:green')
                console.log('获取数据请求的响应', res)
            },
            postDel({ res }) {
                console.info('%c-------请求删除后置--------', 'color:green')
                console.log('删除请求的响应', res)
            },
            requestEdit({ res }) {
                console.info('%c-------请求编辑后置--------', 'color:green')
                console.log('编辑请求的响应', res)
            },
            onTableDblclick({ row, column }) {
                console.info('%c-------双击了单元格,双击具体操作执行后置--------', 'color:green')
                console.log('双击携带了数据', row, column)
            },
            toggleForm({ operate, operateIds }) {
                console.info('%c-------表单切换后置--------', 'color:green')
                console.log('表单切换携带了数据', operate, operateIds)
            },
            onSubmit({ res }) {
                console.info('%c-------表单提交后置(已经发送请求)--------', 'color:green')
                console.log('表单提交请求的响应', res)
            },
            onTableAction({ event, data }) {
                console.info('%c-------表格内部事件 - 后置--------', 'color:green')
                console.log('触发的事件和携带的数据为', event, data)
            },
            onTableHeaderAction({ event, data }) {
                console.info('%c-------表头事件 - 后置--------', 'color:green')
                console.log('触发的事件和携带的数据为', event, data)
            },
        }
    )
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117

    通过以上的钩子,就可以响应自定义的事件处理了

  • 相关阅读:
    leetcodeTop(100) 31链表排序
    三体系ISO认证是什么?能给企业带来哪些好处?
    编辑距离解析
    微波雷达传感器模块,智能感知人体存在,实时感应交互控制应用
    【区块链 | Compound】5.剖析DeFi借贷产品之Compound:延伸篇
    智能反射面辅助的物理层安全技术综述
    人工智能+
    关于Flink的旁路缓存与异步操作
    【2023年数学建模国赛】D题解题思路
    Java学习笔记37——网络编程01
  • 原文地址:https://blog.csdn.net/hjh15827475896/article/details/134506329