vben admin的useTable 增加表格拖拽功能

由于项目vben admin的 vue antd的版本是2.2.8,在看了table的文档之后发现只有用Surely vue才支持封装好的拖拽功能。只有自己动手去实现vben里的useTable的拖拽功能了

在useTable的配置项里面添加customRow的属性,然后定义一个函数:

 定义的dataSource必须用reactive包裹起来,否则在页面不能看到拖拽的变化。

      let source= 0; // 源目标数据序号
      let target= 0; // 目标数据序号
         // Table拖拽
      function customRow(record, index) {
        console.log(record, index); // 这里输出是表格全部的数据
        return {
          props: {
            // draggable: 'true'
          },
          style: {
            cursor: 'pointer',
          },
          // 鼠标移入
          onMouseenter: (event) => {
            // 兼容IE
            let ev = event || window.event;
            ev.target.draggable = true; // 让你要拖动的行可以拖动,默认不可以
          },
          // 开始拖拽
          onDragstart: (event) => {
            // 兼容IE
            let ev = event || window.event;
            // 阻止冒泡
            ev.stopPropagation();
            // 得到源目标数据序号
            source= index;
            console.log(record, index, 'source');
          },
          // 拖动元素经过的元素
          onDragover: (event) => {
            // 兼容 IE
            let ev = event || window.event;
            // 阻止默认行为
            ev.preventDefault();
          },
          // 鼠标松开
          onDrop: (event) => {
            // 兼容IE
            let ev = event || window.event;
            // 阻止冒泡
            ev.stopPropagation();
            // 得到目标数据序号
            target= index;
            // 这里就是让数据位置互换,让视图更新 你们可以看record,index的输出,看是什么
            [dataSource[source], dataSource[target]] = [dataSource[target], dataSource[source]];
            console.log(record, index, 'target', source, target);
          },
        };
      }

 然后页面上就可以实现拖拽的功能了,并且可以拿到目标行和源数据行的所有数据和序号

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: 要在Vbenadmin重新加载usemodel的table,可以按照以下步骤操作: 1. 打开Vbenadmin后台管理页面,并登录账号。 2. 在左侧菜单栏选择“工具”,然后选择“数据字典”。 3. 在数据字典页面,找到需要重新加载的table所对应的数据库表,并点击该表。 4. 在该表的详细信息页面,点击右上角的“刷新”按钮,即可重新加载该table。 注意,重新加载table可能会导致数据丢失或冲突,应谨慎操作。同时,若该table所对应的模型正在被其他程序或进程使用,也可能会导致错误或异常,应注意安全和稳定性。 ### 回答2: Vben Admin使用model重新加载table的方法如下: 1. 首先,在Vben Admin的项目找到需要重新加载的table所在的页面组件。 2. 在该组件的脚本部分,找到数据请求的地方,通常是在`created`或`mounted`生命周期函数进行数据的初始化请求。 3. 在数据请求的代码块,找到发送请求的方法,一般是将model绑定到`query`参数或使用`@Load`装饰器。 4. 在发送请求的方法,添加一个重新加载的逻辑。 a. 如果使用model绑定到`query`参数的方式,可以直接修改`query`对象的某个属性的值,如`query.page = 1`,然后重新发送请求。 b. 如果使用`@Load`装饰器的方式,可以在发送请求之前,定义一个新的model对象,然后将新的model对象绑定到`@Load`装饰器的参数。 ```typescript @Load('newModel') getData(newModel: YourModelType) { // 发送请求的逻辑 } // 在重新加载的时候调用 this.getData({ ...this.newModel }); ``` 5. 重新加载table时,可能还需要重置分页参数。如果使用Vben Admin默认的分页组件,可以通过修改`pageParams`对象的属性来实现,如将`pageParams.current`重置为1。 ```typescript // 重置分页参数 this.pageParams.current = 1; ``` 6. 最后,重新加载table的操作可以放在一个按钮的点击事件触发,或者根据具体的需求添加其他的交互逻辑。 以上是Vben Admin使用model重新加载table的一种方法,根据具体的情况可以进行相应的调整和扩展。 ### 回答3: 在Vben admin,可以使用model来管理数据表格。要重新加载table,可以通过以下步骤来完成: 1. 首先,在Vben admin的页面选择要重新加载的table,可以是通过点击菜单选择某个页面或是在某个组件引入表格。 2. 在要重新加载table的方法,可以使用model的reload方法。该方法用于重新加载数据表格并更新页面显示的数据。 3. 在使用reload方法之前,需要确保已经获取到了最新的数据或是需要重新加载的数据。可以通过调用接口或是其他方式来获取数据。如果有需要的话,可以在reload方法前进行数据的处理、筛选或排序等操作。 4. 调用reload方法,并将重新加载的数据作为参数传入。例如:model.reload(data)。其,data是重新加载的数据。 5. 重新加载table后,数据表格会更新为最新的数据,并且页面上的数据也会相应地进行更新。 需要注意的是,reload方法是以异步的方式执行的,即在调用reload方法后,页面上的数据不会立即更新。如果需要在数据加载完成后执行一些操作,可以在reload方法后添加回调函数,并在回调函数进行相应的操作。 综上所述,使用model的reload方法可以实现Vben admintable的重新加载,更新页面上的数据。通过获取最新的数据并传入reload方法,即可完成table的重新加载操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值