vue 表格 vxe-table 如何实现拖拽单元格自动复制内容功能

vxe-table 如何实现拖拽单元格自动复制内容功能,当业务需要需要实现想 excel 一样,鼠标拖拽单元格向指定方向拖拽时,自动复制当前单元格的值填充到被拖拽的单元格中。

https://vxetable.cn

扩展区域自动复制填充,通过 area-config.extendByCopy 启用,当选择一个单元格,然后通过右下角的扩展按钮,向任意方向拖拽扩展,自动会将当前单元格的值复制到新的单元格

areaExtendCalcFill2

按住右下角区域扩展按钮。当选取一个单元格时,自动将当前内容填充到扩展区域的所有单元格中(同时按住 ctrl 键可取消值自动识别数字功能)

<template>
  <div>
    <vxe-grid v-bind="gridOptions"></vxe-grid>
  </div>
</template>

<script>
export default {
    data() {
        const gEditRender = {
            name: 'VxeSelect',
            props: {},
            options: [
                { label: 'Develop', value: '1' },
                { label: 'Test', value: '2' },
                { label: 'Designer', value: '3' },
                { label: 'PM', value: '4' }
            ]
        };
        const hEditRender = {
            name: 'VxeSelect',
            props: {
                multiple: true
            },
            options: [
                { label: 'Develop', value: '1' },
                { label: 'Test', value: '2' },
                { label: 'Designer', value: '3' },
                { label: 'PM', value: '4' }
            ]
        };
        const gridOptions = {
            border: true,
            height: 500,
            showOverflow: true,
            columnConfig: {
                resizable: true
            },
            editConfig: {
                mode: 'cell',
                trigger: 'dblclick' // 双击单元格激活编辑状态
            },
            mouseConfig: {
                area: true,
                extension: true // 是否开启区域扩展选取功能,开启后可以通过鼠标左键按住区域内右下角扩展按钮,将区域横向或纵向扩大
            },
            areaConfig: {
                extendByCopy: true // 是否启用扩展区域自动填充,当选取一个单元格时,自动将当前内容填充到扩展区域的所有单元格中(同时按住 ctrl 键可取消值自动识别数字功能)
            },
            keyboardConfig: {
                arrowCursorLock: true,
                isAll: true,
                isClip: true,
                isArrow: true,
                isShift: true,
                isTab: true,
                isEnter: true,
                isEdit: true,
                isDel: true,
                isEsc: true,
                isFNR: true // 是否开启查找与替换
            },
            columns: [
                { type: 'seq', width: 60 },
                { field: 'a', title: 'A', editRender: { name: 'VxeInput' } },
                { field: 'b', title: 'B', editRender: { name: 'VxeInput' } },
                { field: 'c', title: 'C', editRender: { name: 'VxeInput' } },
                { field: 'd', title: 'D', editRender: { name: 'VxeInput' } },
                { field: 'e', title: 'E', editRender: { name: 'VxeInput' } },
                { field: 'f', title: 'F', editRender: { name: 'VxeInput' } },
                { field: 'g', title: 'G单选', editRender: gEditRender },
                { field: 'h', title: 'H多选', minWidth: 200, editRender: hEditRender }
            ],
            data: [
                { id: 10001, a: 'Test1', b: 'Develop', c: 'Man', d: '23', e: '28', f: '', g: '', h: '' },
                { id: 10002, a: 'Test2', b: 'Test', c: 'Women', d: '23', e: '22', f: '', g: '', h: '' },
                { id: 10003, a: 'Test3', b: 'PM', c: 'Man', d: '23', e: '32', f: '', g: '', h: '' },
                { id: 10004, a: 'Test4', b: 'Designer', c: 'Women', d: '456', e: '24', f: '', g: '', h: '' },
                { id: 10005, a: 'Test5', b: 'Designer', c: 'Women', d: '23', e: '42', f: '', g: '', h: '' },
                { id: 10006, a: 'Test6', b: 'Designer', c: 'Man', d: '23', e: '38', f: '', g: '', h: '' },
                { id: 10007, a: 'Test7', b: 'Test', c: 'Women', d: '100', e: '24', f: '', g: '', h: '' },
                { id: 10008, a: 'Test8', b: 'PM', c: 'Man', d: '345', e: '34', f: '', g: '', h: '' },
                { id: 10009, a: 'Test9', b: 'Designer', c: 'Man', d: '67', e: '52', f: '', g: '', h: '' },
                { id: 10010, a: 'Test10', b: 'Test', c: 'Women', d: '23', e: '44', f: '', g: '', h: '' }
            ]
        };
        return {
            gridOptions,
            gEditRender,
            hEditRender
        };
    }
};
</script>

https://gitee.com/x-extends/vxe-table

posted @ 2026-02-24 11:03  独行者r2  阅读(11)  评论(0)    收藏  举报