vben admin 中 BasicTable 组件 useTable 的使用


前期准备表格数据以及 API

准备表头数据

这里采用在外部的文件当中定义表头数据,当需要使用的时候,引入就可以了

export function getBasicColumns2(): BasicColumn[] {
  return [
    {
      title: 'sim卡号(iccid)',
      dataIndex: 'iccid',
      sorter: true,
      width: 130,
      align: 'center',
    },
    {
      title: '设备编号',
      dataIndex: 'deviceId',
      sorter: true,
      width: 130,
      align: 'center',
    },
    {
      title: '设备名称',
      dataIndex: 'deviceName',
      width: 150,
      align: 'center',
    },
    {
      title: 'sim状态',
      dataIndex: ['state', 'text'],
      sorter: true,
      width: 130,
      align: 'center',
    },
    {
      title: '注册时间',
      dataIndex: 'createTime',
      sorter: true,
      width: 150,
      format: 'date|YYYY-MM-DD HH:mm:ss',
    },
    {
      title: '激活时间',
      dataIndex: 'activeDate',
      sorter: true,
      width: 150,
      helpMessage: '激活后系统会有10-15分钟延迟,请耐心等待',
      format: 'date|YYYY-MM-DD HH:mm:ss',
    },
    {
      title: '开卡时间',
      dataIndex: 'openDate',
      sorter: true,
      width: 150,
      format: 'date|YYYY-MM-DD HH:mm:ss',
    },
  ];
}

准备表格中的数据

可以通过请求来获取
也可以在页面中定义
也可以在外部定义,然后在页面中引入

这里通过 mock 来模拟了测试的数据

list: [
      {
        id: '1555042387559780352',
        deviceId: '2206101',
        deviceName: '2222',
        iccid: '89860483162090515058',
        msisdn: '1440832155058',
        imsi: '460080321505058',
        state: { text: '停机', value: 'stop' },
        fakeState: { text: '待激活', value: 'notActive' },
        createTime: 1.659585971141e12,
        activeDate: 1.6592832e12,
        openDate: 1.6589376e12,
        modifyTime: 1.659585971141e12,
      },
      {
        id: '1562280375538700288',
        deviceId: '2205909',
        deviceName: '2205909',
        iccid: '89860483162090515069',
        msisdn: '1440832155069',
        imsi: '460080321505069',
        state: { text: '已激活', value: 'activated' },
        fakeState: { text: '待激活', value: 'notActive' },
        createTime: 1.661311641949e12,
        activeDate: 1.6596288e12,
        openDate: 1.6589376e12,
        modifyTime: 1.661311641949e12,
      },
      {
        id: '1565246034465939456',
        deviceId: '2209002',
        deviceName: '2209002',
        iccid: '89860483162090515062',
        msisdn: '1440832155062',
        imsi: '460080321505062',
        state: { text: '已激活', value: 'activated' },
        fakeState: { text: '待激活', value: 'notActive' },
        createTime: 1.662018710137e12,
        activeDate: 1.6614432e12,
        openDate: 1.6589376e12,
        modifyTime: 1.662018710137e12,
      },
      {
        id: '1582305527906983936',
        deviceId: '2208101',
        deviceName: '2208101',
        iccid: 'RS232_NET',
        imsi: 'RS232_NET',
        state: { text: '待激活', value: 'notActive' },
        fakeState: { text: '待激活', value: 'notActive' },
        createTime: 1.666086010323e12,
        modifyTime: 1.666086010323e12,
      },
      {
        id: '1582546476625059840',
        deviceId: '2208102',
        deviceName: '皮带秤-网线',
        iccid: 'RS232_NET',
        imsi: 'RS232_NET',
        state: { text: '待激活', value: 'notActive' },
        fakeState: { text: '待激活', value: 'notActive' },
        createTime: 1.666143456976e12,
        modifyTime: 1.666143456976e12,
      },
    ],

准备API

mock 如何模拟数据在另一篇文章中有记录 vben admin 当中使用 mock 模拟数据以及对响应数据进行处理

import { defHttp } from '/@/utils/http/axios';
import { BasicModel, Page } from '/@/api/model/baseModel';

enum Api {
  SIM_DATA_LIST = '/v1/device/sim/_query',
}

export interface SimCard extends BasicModel<SimCard> {
  configName?: string; // 名称
  configKey?: string; // 参数键
  configValue?: string; // 参数值
  isSys?: string; // 系统内置(1是 0否)
}
//获取sim卡信息的接口
export const getSimDataList = (params?: SimCard | any) =>
  defHttp.postJson<Page<SimCard>>({
    url: Api.SIM_DATA_LIST,
    params,
  });

一、在 index.vue 当中使用 BasicTable 以及 useTable

先定义 registerTable

<template>
  <BasicTable @register="registerTable" />
</template>
<script lang="ts">
  import { defineComponent } from 'vue';
  import { BasicTable, useTable } from '/@/components/Table'; // 引用组件
  import { getBasicColumns2 } from './tableData'; // 引入表头数据
  import { getSimDataList } from '/@/api/test/mock'; // 引入请求表格数据的接口
  export default defineComponent({
    name: 'ViewsTableTestBasicTableTest01',
    components: { BasicTable },
  });
</script>
<script lang="ts" setup>
  const columns = getBasicColumns2(); // 表头数据,这里是将数据放到了一个单独的文件当中
  const [registerTable] = useTable({
    api: getSimDataList, // 请求数据的 api
    columns: columns, // 表头数据
    showTableSetting: true, // 是否显示表格设置
    canResize: true, //是否开启自适应
  });
</script>

以上是最基础的配置,更多的配置可以看看官网,这里只是问了让表格展示粗来~

二、实现效果

## 1.引入库

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 要在Vbenadmin重新加载usemodeltable,可以按照以下步骤操作: 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的重新加载操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值