IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vben-Admin 框架--表格问题汇总 -> 正文阅读

[JavaScript知识库]vben-Admin 框架--表格问题汇总

前言

最近开发项目都是基于vben框架开发,从中遇到很多有趣的问题,为了以后方便方便查找,于是以此博文记录

一、表格请求

  1. 常见方式
const [registerTable, { getForm }] = useTable({
        // title: '开启搜索区域',
        api: getData, // 请求接口
        beforeFetch: (data) => {
         // 接口请求前 参数处理
          return data;
        }
})
  1. setTableData 设置表格数据
    此方法适用于表格数据请求时参数动态变化
const [registerTable, { setTableData }] = useTable({
 });
 onMounted(async () => {
      const {data} = await getData()
       setTableData(data); 
 })

二、表格常用设置

  1. clickToRowSelect: false, // 点击当前行多选框不选中
  2. showIndexColumn: true, // 是否显示序号列
  3. 表格某一列设置筛选条件
    filters中text为展示内容,value为借口请求参数
{
    title: '任务状态',
    dataIndex: 'taskStatus',
    filters: [
      { text: '执行中', value: 'p' },
      { text: '已完成', value: 's' },
      { text: '失败', value: 'f' },
    ],
    width: 120,
  }

效果图:
在这里插入图片描述

  1. 实现点击表格某一行中标题或者其他字段 出现弹框(例如点击表格中标题实现弹框)
    第一步 表格数据定义插槽
{
    title: '标题',
    dataIndex: 'taskStatus',
    helpMessage: '点击标题查看详情',
    width: 120,
    slots: { customRender: 'taskStatus' },
  },

第二步 页面引用插槽

 <BasicTable @register="registerTable">
      <template #taskStatus="{ record }">
        <a @click="handleDetail(record)" class="click-status">
          {{ statusJson[record.taskStatus] || '--' }}
        </a>
        <!-- <SlidersOutlined class="click-status" /> -->
      </template>
 </BasicTable>

第三步 在点击事件中加入对应得打开弹框事件

function handleDetail(record) {
   openDetailModal(true, { ...record });
}
  1. 表格每列加样式
    第一种 Tag式实现
import { h } from 'vue';
{
    title: '使用状态',
    dataIndex: 'state',
    width: 100,
    filters: [
      { text: '使用中', value: '1' },
      { text: '已停用', value: '2' },
    ],
    customRender: ({ record: { state } }) => {
      const colors = ['', 'green', 'red'];
      const statusJson = {
        '1': '使用中',
        '2': '已停用',
      };
      return h(Tag, { color: colors[state] }, () => statusJson[state] || '--');
    },
  },

效果图:
在这里插入图片描述
第二种:增加自定义类名,进行穿透进行加样式

export const columns: BasicColumn[] = [
  {
    title: '群组',
    dataIndex: 'groupName',
    width: 100,
  },
  {
    title: '告警',
    dataIndex: 'lv1',
    width: 100,
    className: 'gaojin',
  },
  {
    title: '一般',
    dataIndex: 'lv2',
    width: 100,
    className: 'yiban',
  },
  {
    title: '严重',
    dataIndex: 'lv3',
    width: 100,
    className: 'yanzhong',
  },
];
<style lang="less" scoped>
  :deep(.gaojin) {
    color: orange;
  }
  :deep(.yiban) {
    color: red;
  }
  :deep(.yanzhong) {
    color: purple;
  }
</style>

效果图:
在这里插入图片描述
8. 设置表格中可编辑行

{
        title: '*网站',
        dataIndex: 'site',
        editComponent: 'Select',
        editRow: true,
        editComponentProps: {
          options: [
            { label: 'facebook', value: 'facebook' },
            { label: 'twitter', value: 'twitter' },
          ],
        },
        editRule: async (text) => {
          if (!text?.trim()) {
            return '请输入网站';
          }
          return '';
        },
      },

效果图
在这里插入图片描述

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-06-16 21:35:35  更:2022-06-16 21:35:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:45:10-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码