Vben Admin 自学记录 —— Table组件的基本使用及练习(持续更新中...)

news2024/11/17 9:47:33

Table 表格

对 antv 的 table 组件进行封装

table相关使用及概念

练习 —— 画一个简单的包含增删改查的表格静态页面(不包含相关逻辑和处理)

之前相关记录: Vben Admin 自学记录 —— 介绍及使用

1.在之前添加的新路由模块中添加一个表格练习页面

在 src/router/routes/modules/test.ts中添加

// 添加表格路由
{
      path: 'tableTest',
      name: 'tableTest',
      component: () => import('/@/views/myComponents/tableTest/basicTable.vue'),
      meta: {
        title: t('routes.test.tableTest'),
      },
},

设置路由title

export default {
    testRoute: '测试路由',
    test1: '测试子路由 1',
    test2: '测试子路由 2',
    test3: '测试子路由 3',
    tableTest:'表格测试'
  };

src/views/myComponents中添加文件
在这里插入图片描述

2.在tableTest中添加data.ts,用来配置表格、搜索表单的配置,以及初始数据

data.ts

import { FormProps, FormSchema } from '/@/components/Form';
import { BasicColumn } from '/@/components/Table';
import { formatToDate } from '/@/utils/dateUtil';

// 搜索Form展示信息
// 姓名 name
// 性别 sex
// 出生日期 dt
// 年龄 age

// 表格展示信息
// 姓名 name
// 性别 sex
// 出生日期 dt
// 年龄 age
// 电话 tel
// 住址 address


type sexOptionType = [{ label: string; value: string }, { label: string; value: string }];

const sexOption: sexOptionType = [
  { value: '0', label: '男' },
  { value: '1', label: '女' },
];

// 配置表格SearchForm字段
export const formConfig: Partial<FormProps> = {
  labelWidth: 120,
  actionColOptions: {
    span: 25,
  },
  //自动展开行
  autoAdvancedLine: 1,
  showAdvancedButton: true,

  baseColProps: {
    span: 8,
  },
  schemas: [
    {
      field: 'name',
      label: '姓名',
      component: 'Input',
    },
    {
      field: 'sex',
      label: '性别',
      component: 'Select',
      componentProps: {
        options: sexOption,
      },
    },
    {
      field: 'dt',
      label: '出生日期',
      component: 'DatePicker',
      componentProps: {
        style: {
          width: '100%',
        },
        valueFormat: 'YYYYMMDD',
      },
    },
    {
      field: 'age',
      label: '年龄',
      component: 'InputNumber',
      componentProps: {
        style: {
          width: '100%',
        },
      },
    },
  ],
};

// 配置表格表头字段
export const columns: BasicColumn[] = [
  {
    title: '姓名',
    width: 200,
    dataIndex: 'name',
  },
  {
    title: '性别',
    width: 200,
    dataIndex: 'sex',
  },
  {
    title: '出生日期',
    width: 200,
    dataIndex: 'dt',
    customRender: function (text) {
      return formatToDate(text.text);
    },
  },
  {
    title: '年龄',
    width: 200,
    dataIndex: 'age',
  },
  {
    title: '电话',
    width: 200,
    dataIndex: 'tel',
  },
  {
    title: '住址',
    width: 200,
    dataIndex: 'address',
  },
];

// 自定义表单数据,我这里是写死的数据
export function initData() {
  return [
    {
      name: '张三',
      sex: '男',
      dt: '20200701',
      age: '22',
      tel: '13789890909',
      address: '北京市北京小区',
    },
    {
      name: '李四',
      sex: '女',
      dt: '20230507',
      age: '27',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '王五',
      sex: '男',
      dt: '20221001',
      age: '26',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '小明',
      sex: '男',
      dt: '20220701',
      age: '25',
      tel: '15477778888',
      address: '大连市大连小区',
    },
    {
      name: '小红',
      sex: '女',
      dt: '20180808',
      age: '28',
      tel: '15477778888',
      address: '大连市大连小区',
    },
  ];
}
3.在 basicTable.vue 引入 table组件及配置等
<template>
  <div
    :style="{
      overflow: 'hidden',
      position: 'relative',
      height: '100%',
    }"
  >
    <!-- 注册table -->
    <BasicTable @register="registerTable">
      <template #action="{ record }">
        <TableAction
          :actions="[
            {
              tooltip: '查看',
              icon: 'clarity:info-standard-line',
              // onClick: handleView.bind(null, { data: record,}),
            },
            {
              tooltip: '编辑',
              icon: 'clarity:note-edit-line',
              // onClick: handleEdit.bind(null, { data: record,}),
            },
            {
              tooltip: '删除',
              color: 'error',
              icon: 'ant-design:delete-outlined',
              // popConfirm: {
              //   title: '是否确定删除?',
              //   confirm: handleDel.bind(null, record),
              // },
            },
          ]"
        />
      </template>
      <template #toolbar>
        <a-button type="primary">{{ '新增' }}</a-button>
      </template>
    </BasicTable>
  </div>
</template>

<script lang="ts">
  import { defineComponent } from 'vue';
  import { formConfig, columns, initData } from './data';
  import { BasicTable, useTable, TableAction } from '/@/components/Table';

  const data = initData();
  export default defineComponent({
    name: 'tableTest',
    components: {
      BasicTable,
      TableAction,
    },
    setup() {
      // 设置table
      const [registerTable, { reload }] = useTable({
        title: '查询结果',
        dataSource: data,		 //数据
        columns: columns,        //表头配置
        bordered: true,
        useSearchForm: true,     //开启搜索区域
        formConfig: formConfig,  //搜索字段配置
        actionColumn: {
          width: 120,
          title: '操作',
          dataIndex: 'action',
          slots: { customRender: 'action' },
        },
        rowSelection: { type: 'radio' },
        pagination: { pageSize: 10 },  
        showTableSetting: true,  // 显示表格设置
        tableSetting: { fullScreen: true },
        showIndexColumn: true,
        indexColumnProps: { fixed: 'left' },
      });
      return {
        registerTable,
        reload,
      };
    },
  });
</script>

<style scoped></style>

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/496804.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

TCP/IP网络编程(三)

TCP/IP网络编程读书笔记 第14章 多播与广播14.1 多播14.1.1 多播的数据传输方式及流量方面的优点14.1.2 路由&#xff08;Routing&#xff09;和 TTL&#xff08;Time to Live&#xff0c;生存时间&#xff09;&#xff0c;以及加入组的办法14.1.3 实现多播 Sender 和 Receiver…

使用mybatisX逆向生成数据表实体类(pojo,dao),mapper,service

先看使用mybatisX后生成的文件。 1.先在idea安装mybatisX插件&#xff0c;在file->setting->plugins&#xff0c;搜索mybatisX插件&#xff0c;重新启动idea即可。 2.在idea编辑器右侧点击Database&#xff0c;点击“”链接你的数据库类型&#xff0c;这里我选mysql。 输…

Vue核心 列表渲染 数据监视

1.13.列表渲染 1.13.1.基本列表 v-for指令 用于展示列表数据语法&#xff1a;&#xff0c;这里key可以是index&#xff0c;更好的是遍历对象的唯一标识可遍历&#xff1a;数组、对象、字符串&#xff08;用的少&#xff09;、指定次数&#xff08;用的少&#xff09; <!…

尚硅谷大数据技术NiFi教程-笔记01【NiFi(基本概念、安装、使用)】

视频地址&#xff1a;尚硅谷大数据NiFi教程&#xff08;从部署到开发&#xff09;_哔哩哔哩_bilibili 尚硅谷大数据技术NiFi教程-笔记01【NiFi&#xff08;基本概念、安装、使用&#xff09;】尚硅谷大数据技术NiFi教程-笔记02【NiFi&#xff08;使用案例&#xff0c;同步文件、…

Kafka 权威指南

Kafka 权威指南 这本书于 2021 年看完&#xff0c;2022 年又看了一遍&#xff0c;感觉书读百遍&#xff0c;其义自现。 这本书侧重于 Kafka 的理论知识&#xff0c;虽然书有点老&#xff0c;但是其中关于 Kafka 的基础知识的章节讲得确实不错&#xff0c;适合学习 Kafka 的新手…

深入篇【C++】类与对象:运算符重载详解 -上

深入篇【C】类与对象&#xff1a;运算符重载详解 -上 ⏰.运算符重载&#x1f553;Ⅰ.<运算符重载&#x1f550;Ⅱ.>运算符重载&#x1f552;Ⅲ.运算符重载&#x1f551;Ⅳ.运算符重载①.格式1.改进12.改进2 ②.默认成员函数1.功能2.不足 ⏰.运算符重载 内置类型(int /do…

二分法相关使用

文章目录 1. 在一个有序数组中,找某个数是否存在2. 在一个有序数组中,找大于等于某个数最左侧的位置3. 在一个有序数组中, 找小于等于某个数最右侧的位置4. 局部最大值问题 1. 在一个有序数组中,找某个数是否存在 在线OJ&#xff1a;704. 二分查找 有序数组下的二分思路如下:…

亚马逊:分布式计算宣言

文章目录 分布式计算宣言背景关键概念基于服务的模型基于工作流的模型和数据域应用概念跟踪状态变化对进行中的工作流程元素进行更改工作流程和 DC 客户订单处理 分布式计算宣言 创建时间&#xff1a; 1998 年 5 月 24 日 修订日期&#xff1a; 1998 年 7 月 10 日 背景 很…

uni-app nvue页面中使用video视频播放组件

我遇到的问题是&#xff0c;在nvue页面引用video组件&#xff0c;然后啥也没显示的&#xff0c;显示了无法控制播放&#xff0c;折腾了好久&#xff0c;在这里记录下来&#xff01;希望可以帮助到需要的人 我的代码是这样的&#xff08;src换成官方的举例&#xff09; <vi…

查看mysql数据库版本的方式(cmd命令和navicat)

目录 一、使用场景 二、查看方式 &#xff08;一&#xff09;cmd命令方式 &#xff08;二&#xff09;navicat16软件里面查看 &#xff08;三&#xff09;navicat试用版本查看的方式 一、使用场景 在有些时候需要调试系统的时候&#xff0c;就要看数据库的版本&#xff…

【致敬未来的攻城狮计划】— 连续打卡第二十三天:RA2E1的存储器基础知识

系列文章目录 1.连续打卡第一天&#xff1a;提前对CPK_RA2E1是瑞萨RA系列开发板的初体验&#xff0c;了解一下 2.开发环境的选择和调试&#xff08;从零开始&#xff0c;加油&#xff09; 3.欲速则不达&#xff0c;今天是对RA2E1 基础知识的补充学习。 4.e2 studio 使用教程 5.…

【MySQL】数据库基础操作一:建库与建表

目录 &#x1f31f;前言 &#x1f308;1、常见的关系型数据库 &#x1f31f;数据库的基本操作 &#x1f308;1、常用数据库的操作 &#x1f308;2、常用的数据类型 &#x1f308;3、表的基本操作 &#x1f345;创建表的一个小练习 &#x1f31f;前言 &#x1f…

基于Python的特征工程:数据预处理(一)

一、概述 特征工程是机器学习工作流程中不可或缺的一环&#xff0c;它将原始数据转化为模型可理解的形式。数据和特征的质量决定了机器学习的上限&#xff0c;而模型和算法则是逼近这个上限的手段。因此&#xff0c;特征工程的重要性不言而喻。其主要工作涉及特征的采集、预处…

干货 | 带你用Process完成中介效应检验

Hello&#xff0c;大家好&#xff01; 这里是壹脑云科研圈&#xff0c;我是喵君姐姐~ 今天我们给大家介绍下平常常用的也很简单的操作&#xff0c;如何使用spss中process插件进行中介效应检验。 Process的功能很强大&#xff0c;它的下载也是免费开源的&#xff0c;在spss的…

springboot项目:瑞吉外卖 前后端 代码、思路 详细分析 part5

part1 part2 part3 part4 part5 本页 6 移动端短信发送和手机验证码登入 6.1 短信发送 6.2 手机验证码登入 6.1 短信发送 6.1.1整体分析 2. 3. 注册登入阿里云账户。找到短信服务&#xff0c;设置短信签名&#xff08;上面图片的阿里云、菜鸟裹裹、天猫…&#xff09;&…

体验 Dolly V2

体验 Dolly V2 1. 什么是 Dolly V22. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 部署 Dolly V26. 编写测试程序7. 运行测试程序 1. 什么是 Dolly V2 Databricks的dolly-v2-12b&#xff0c;是一个在 Databricks 机器学习平台上训练的指令跟随型大型语言模型&#xff0c;…

【2023/05/06】EDSAC

Hello&#xff01;大家好&#xff0c;我是霜淮子&#xff0c;2023倒计时第1天。 Share 去成为你本该成为的人&#xff0c;任何时候都不会太晚。 &#xff08;出处&#xff1a;乔治艾略特&#xff09; Day1 EDSAC&#xff1a;存储程序式计算机的开山之作。 part1 EDSAC&…

redis(3)

redis客户端登陆: redis-cli -h host -p port -a password String类型的应用场景: 1)String通常用于保存单个字符串或者JSON格式的字符串数据 2)因为String类型通常是二进制安全的&#xff0c;因此你完全可以把一个图片内容当作字符串来进行存储 3)计数器&#xff0c;是常规的k…

java错题总结(31-33页)

假定Base b new Derived&#xff08;&#xff09;; 调用执行_360笔试题_牛客网 ABDC 只要是被子类重写的方法&#xff0c;不被super调用都是调用子类方法 ------------------------------------------------------------------------------------------- --------…

【Linux】Linux安装Redis(图文解说详细版)

文章目录 前言第一步&#xff0c;下载安装包第二步&#xff0c;上传安装包到/opt下&#xff08;老规矩了&#xff0c;安装包在opt下&#xff09;第三步&#xff0c;解压安装包第四步&#xff0c;编译第五步&#xff0c;安装第六步&#xff0c;配置redis第七步&#xff0c;设置开…