一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

基于vxe-gantt实现任务行拖拽排序功能

时间:2026-05-24 09:05:01 编辑:袖梨 来源:一聚教程网

在现代项目管理工具中,拖拽排序功能极大提升了任务调度的灵活性。VXE Gantt组件通过rowConfig.drag和dragSort参数,为用户提供了直观的行拖拽排序解决方案。

使用 vxe gantt 实现行拖拽排序

说明

  1. 通过全局配置rowConfig.drag开启行拖拽功能,用户可直接拖动调整任务顺序
  2. 在列配置中设置dragSort:true定义拖拽触发区域,建议应用于首列或标题列

需同时启用rowConfig.drag和dragSort才能实现完整的拖拽排序效果,前者控制整体功能,后者指定操作区域。

代码

<template>
  <div>
    <vxe-button status="success" @click="resultEvent">获取排序后的数据vxe-button>
    <vxe-gantt ref="ganttRef" v-bind="ganttOptions">vxe-gantt>
  div>
template><script setup>
import { ref, reactive } from 'vue'const ganttRef = ref()const ganttOptions = reactive({
  border: true,
  // 1. 开启行拖拽
  rowConfig: {
    drag: true
  },
  taskBarConfig: {
    showProgress: true,
    showContent: true,
    barStyle: {
      round: true,
      bgColor: '#f56565',
      completedBgColor: '#65c16f'
    }
  },
  taskViewConfig: {
    tableStyle: {
      width: 480
    }
  },
  columns: [
    { type: 'seq', width: 70 },                     // 序号列,不参与拖拽
    { field: 'title', title: '任务名称', dragSort: true }, // 2. 指定拖拽把手列
    { field: 'start', title: '开始时间', width: 100 },
    { field: 'end', title: '结束时间', width: 100 }
  ],
  data: [
    { id: 10001, title: 'A项目', start: '2024-03-01', end: '2024-03-04', progress: 3 },
    { id: 10002, title: '城市道路修理进度', start: '2024-03-03', end: '2024-03-08', progress: 10 },
    { id: 10003, title: 'B大工程', start: '2024-03-03', end: '2024-03-11', progress: 90 },
    { id: 10004, title: '超级大工程', start: '2024-03-05', end: '2024-03-11'