Skip to content

Conversation

@Reuse5653
Copy link

@Reuse5653 Reuse5653 commented Jul 16, 2025

🤔 这个 PR 的性质是?

  • 日常 bug 修复
  • 新特性提交
  • 文档改进
  • 演示代码改进
  • 组件样式/交互改进
  • CI/CD 改进
  • 重构
  • 代码风格优化
  • 测试用例
  • 分支合并
  • 其他

🔗 相关 Issue

close #1903

💡 需求背景和解决方案

1. 需求背景

当前 Upload 组件不支持对已上传的图片进行拖拽排序,在需要调整图片顺序的场景下,用户只能删除后重新上传,体验不佳。

2. 解决方案

Upload 组件新增 draggable 属性,并基于 HTML5 Drag & Drop API 实现拖拽排序功能。主要实现如下:

  • 新增 API: 添加了 draggable: boolean 属性,用于开启或关闭拖拽功能。
  • 核心逻辑: 在 useDrag.ts Hook 中,利用 HTML5 的 drag & drop API 监听 dragstart, dragover, dragend 等事件,并在 dragover 事件中实时更新 v-model 的数组顺序。

3. UI/交互效果演示

recording

📝 更新日志

  • feat(Upload): 新增 draggable 属性,用于支持对上传列表进行拖拽排序。
  • 本条 PR 不需要纳入 Changelog

🚀 相关 PR

☑️ 请求合并前的自查清单

⚠️ 请自检并全部勾选全部选项⚠️

  • 文档已补充或无须补充
  • 代码演示已提供或无须提供
  • TypeScript 定义已补充或无须补充
  • Changelog 已提供或无须提供

@Reuse5653 Reuse5653 changed the title feat(Upload): added draggable prop to support drag sorting feat(Upload): Added draggable prop to support drag sorting Jul 16, 2025
@Reuse5653 Reuse5653 changed the title feat(Upload): Added draggable prop to support drag sorting feat(Upload): add draggable prop to support drag sorting Jul 16, 2025
@pkg-pr-new
Copy link

pkg-pr-new bot commented Jul 16, 2025

Open in StackBlitz

npm i https://pkg.pr.new/tdesign-mobile-vue@1931

commit: b2ba74e

@github-actions
Copy link
Contributor

github-actions bot commented Jul 16, 2025

完成

@Reuse5653 Reuse5653 changed the title feat(Upload): add draggable prop to support drag sorting feat(Upload): support drag sorting Jul 18, 2025
@Reuse5653 Reuse5653 force-pushed the feat/upload-draggable branch from dcdb630 to f32c745 Compare July 18, 2025 14:16
@Wesley-0808
Copy link
Collaborator

Wesley-0808 commented Jul 19, 2025

  1. 不需要加样式的
  2. 效果非预期,目前的处理不太合适,像小程序端的处理就不用额外再加样式了
2025-07-19.21.44.17.mov
  1. 因为目前API平台和部分技术栈的API有点出入,所以请移除掉这些 非你修改的 行
image
  1. 本地的tdesign-mobile-vue文件夹需要和tdesign-api文件夹在同一路径下,在生成API文件的时候请勾选输出文件到各框架仓库,除此之外,需要重新生成一下文件(因为缺少.md文档),再次生成后请移除掉 非你修改的 行,正如第三点所述

@Reuse5653 Reuse5653 force-pushed the feat/upload-draggable branch from f32c745 to b2ba74e Compare July 26, 2025 07:24
@Reuse5653
Copy link
Author

好的,已修改
recording

@Wesley-0808
Copy link
Collaborator

好的,已修改

@Reuse5653 缺少滑动的效果~

* @param itemClassName - 单个可拖拽项的类名。
* @returns 返回一个包含拖拽事件处理器和状态的对象。
*/
export function useDrag(
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里的propsemit入参都能去掉,后面通过getCurrentInstance获取即可

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

【Upload】组件新增 draggable 属性,支持拖拽排序

2 participants