# draggableTable **Repository Path**: zedcat/draggable-table ## Basic Information - **Project Name**: draggableTable - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-19 - **Last Updated**: 2025-11-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 可拖拽表头表格组件 一个基于Vue.js的表格组件,支持列的拖拽排序和列宽调整功能。 ## 功能特点 - 列的拖拽排序:使用鼠标拖动表头可以调整列的显示顺序 - 列宽调整:通过拖拽列边缘可以动态调整列的宽度 - 内容溢出提示:当单元格内容过长时,鼠标悬停会显示完整内容的提示框 - 响应式设计:适应不同屏幕尺寸 ## 技术栈 - Vue.js 2.6.11 - vuedraggable 2.24.3 - Webpack 3.6.0 ## 安装 ```bash # 克隆项目 git clone <项目地址> # 进入项目目录 cd drageTable # 安装依赖 npm install ``` ## 使用方法 ### 基本使用 ```vue ``` ### 组件属性 | 属性名 | 类型 | 描述 | |-------|------|------| | columns | Array | 列配置数组,包含key和title字段 | | data | Array | 表格数据数组 | ### 组件事件 | 事件名 | 参数 | 描述 | |-------|------|------| | column-change | newColumns | 当列顺序发生变化时触发,返回新的列配置数组 | ## 开发 ```bash # 启动开发服务器 npm run dev # 构建生产版本 npm run build ``` ## 项目结构 ``` ├── src/ │ ├── components/ │ │ └── draggable-table.vue # 可拖拽表格组件 │ ├── App.vue # 应用入口组件 │ └── main.js # 应用入口文件 ├── index.html # HTML模板 ├── webpack.config.js # Webpack配置 └── package.json # 项目配置和依赖 ``` ## 主要功能实现 ### 1. 列拖拽排序 使用vuedraggable组件实现列的拖拽功能,通过`v-model`绑定列配置数组,当拖拽完成后触发`change`事件通知父组件。 ### 2. 列宽调整 通过监听鼠标事件实现列宽调整功能: - `mousedown`:记录初始状态,开始调整 - `mousemove`:计算宽度变化,更新列宽 - `mouseup`:结束调整,保存最终宽度 ### 3. 内容提示 自定义`v-tooltip`指令,当鼠标悬停在内容上时显示提示框,避免内容过长影响表格布局。 ## License MIT