Naive UI Admin后台管理系统的组件BasicTable使用指南

这篇具有很好参考价值的文章主要介绍了Naive UI Admin后台管理系统的组件BasicTable使用指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


Naive Ui Admin 是一个基于 Vue3.0、 Vite、 Naive UI、 TypeScript 的中后台解决方案,它使用了最新的前端技术栈,并提炼了典型的业务模型,页面,包括二次封装组件、动态菜单、权限校验、粒子化权限控制等功能,它可以帮助你快速搭建企业级中后台项目, 相信不管是从新技术使用还是其他方面,都能帮助到你。

项目地址:https://github.com/jekip/naive-ui-admin

通过阅读源码,整理了基于Navie UI封装的较为完善的BasicTable组件的使用指南。

BasicTable

BasicTable的示例网址:https://v1.naiveadmin.com/#/list/basic-list
官网使用教程:https://docs.naiveadmin.com/components/table.html#basictable

BasicTable集成了很多功能,如下:

  • 分页信息,可以自定义分页字段名,方便和后端做数据交互
  • 可编辑单元格,通过配置columnedit属性使该列渲染为可编辑组件,同时支持整行编辑。
  • 基础工具,包括表格斑马纹显示、刷新、密度以及列相关的设置选项
  • 动态计算调整表格的高度

开始

本节会帮你快速了解BasicTable的使用

基础使用

创建一个vue文件,使用BasicTable

<template>
  <n-card :bordered="false" class="proCard">
    <BasicTable
      :columns="columns"
      :request="loadDataTable"
      :row-key="(row) => row.id"
      :scroll-x="1000"
      @update:checked-row-keys="onCheckedRow"
    />
  </n-card>
</template>

<script>
import { defineComponent, reactive } from 'vue';
import { BasicTable } from '@/components/Table';
import { getPageList } from '@/api/system/role';
export const columns = [
  {
    title: 'id',
    key: 'id',
  },
  {
    title: '角色名称',
    key: 'roleName',
  },
  {
    title: '角色编码',
    key: 'roleCode',
  },
  {
    title: '创建时间',
    key: 'createTime',
  },
];
export default defineComponent({
  components: { BasicTable },
  setup() {
    const params = reactive({
      roleName: '',
    });
    // 数据请求
    const loadDataTable = async (res) => {
      return await getPageList({...res }, params);
    };

    function onCheckedRow(rowKeys) {
      console.log(rowKeys);
    }
    return {
      columns,
      loadDataTable,
      onCheckedRow,
    };
  },
});
</script>
<style lang="less" scoped></style>

BasicTable Props

BasicTable基于NDataTable封装,其属性见:NDataTable.props

名称 类型 默认值 说明
NDataTable.props - - 原 UI 组件的 props
title string null 表格标题
titleTooltip string null 表格标题的弹出提示
size 'small'|'medium'|'large' medium 表格尺寸
dataSource Array<object> [] 表格数据
columns Array<object> [] 表格列信息
beforeRequest (page: number, pageSize: number) => Promise<any> undefined 请求发起前数据处理
request (page: number, pageSize: number) => Promise<any> undefined 发起请求
beforeRequest (page: number, pageSize: number) => Promise<any> undefined 请求发起后数据处理
rowKey string|(record) => string undefined 行的每一列key
pagination object|boolean () => {} 分页信息
actionColumn object null Action列,对表格行的操作
canResize boolean true 是否允许调整尺寸
resizeHeightOffset number 0 重置高度

BasicTable Methods

方法的使用示例:@update:checked-row-keys="onCheckedRow"

名称 类型 说明
fetch-success (items: array, resultTotal: number) => void 数据获取成功时触发函数
fetch-error (error: string|object) 数据获取失败时触发函数
update:checked-row-keys (rowKeys) => void 行选中事件
edit-end (record, index, key, value) => void 可修改单元格的数据提交事件触发函数
edit-cancel (record, index, key, value) => void 可修改单元格的取消编辑事件触发函数
edit-row-end () => void 该行每个可编辑单元格提交成功事件触发函数
edit-change (colum: Array<object>, value: object, record) => void 可修改单元格的编辑状态改变事件触发函数

BasicTable Slots

名称 参数 说明
tableTitle () 表格上方左区域的展示
toolbar () 表格上方右区域的展示

Columns Options

BasicTable的props中的columns,其可选性如下表:

名称 类型 默认值 说明
edit boolean false 该列是否可编辑
editRow boolean false 只允许整行编辑操作,不能单独进入
editable boolean false 以编辑模式显示,即不需点击进入
editComponent NInput|NInputNumber|NSelect|NCheckbox|NSwitch|NDataPicker|NTimePicker NInput 可编辑时,编辑组件类型
editComponentProps Recordable undefined 编辑组件的属性,例如编辑组件为下拉菜单时,需要提供的options
editRule boolean(text: string, record: Recordable) => Promise<string> false 校验规则
editValueMap (value: any) => string 自定义的value处理方法
onEditRow () => void undefined 编辑行
auth Array<sting> [] 权限编码控制是否显示
ifShow boolean|(column: BasicColumn) => boolean true 业务控制是否显示
draggable boolean true 控制是否支持拖拽,默认支持

案例:

import { h } from 'vue';

export const columns = [
  {
    title: 'id',
    key: 'id',
    width: 100,
  },
  {
    title: '名称',
    key: 'name',
    editComponent: 'NInput',
    // 默认必填校验
    edit:true,
    editRule: true,
    editRow: true,
    width: 200,
    editable: true,
  },
  {
    title: '地址',
    key: 'address',
    editComponent: 'NSelect',
    editComponentProps: {
      options: [
        {
          label: '广东省',
          value: 1,
        },
        {
          label: '浙江省',
          value: 2,
        },
      ],
    },
    edit: true,
    width: 200,
    ellipsis: false,
  },
  {
    title: '开始日期',
    key: 'beginTime',
    edit: true,
    width: 160,
    editComponent: 'NDatePicker',
    editComponentProps: {
      type: 'datetime',
      format: 'yyyy-MM-dd HH:mm:ss',
      valueFormat: 'yyyy-MM-dd HH:mm:ss',
    },
    ellipsis: false,
  },
  {
    title: '结束日期',
    key: 'endTime',
    width: 160,
  },
];

Component Setting

export default {
  table: {
    apiSetting: {
      // 当前页的字段名
      pageField: 'page',
      // 每页数量字段名
      sizeField: 'pageSize',
      // 接口返回的数据字段名
      listField: 'records',
      // 接口返回总页数字段名
      totalField: 'pages',
    },
    //默认分页数量
    defaultPageSize: 10,
    //可切换每页数量集合
    pageSizes: [10, 20, 30, 40, 50],
  },
  upload: {
    //考虑接口规范不同
    apiSetting: {
      // 集合字段名
      infoField: 'data',
      // 图片地址字段名
      imgField: 'photo',
    },
    //最大上传图片大小
    maxSize: 2,
    //图片上传类型
    fileType: [
      'image/png',
      'image/jpg',
      'image/jpeg',
      'image/gif',
      'image/svg+xml',
    ],
  },
};

实现

组件的实现可以参考:AdminPro JS版搭建流程 | 组件使用 | BasicTable文章来源地址https://www.toymoban.com/news/detail-484203.html

到了这里,关于Naive UI Admin后台管理系统的组件BasicTable使用指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 开源后台管理系统Geekplus Admin

    本系统采用前后端分离开发模式,后端采用springboot开发技术栈,mybatis持久层框架,redis缓存,shiro认证授权框架,freemarker模版在线生成代码,websocket消息推送等,后台管理包含用户管理,角色管理,菜单权限管理,部门组织管理,通知管理,日志管理,系统监控,在线用户,

    2024年02月12日
    浏览(47)
  • 开源后台管理系统 (go-vue-admin)

    go-vue-admin 是一套基于go语言开源的后台管理系统。功能参考诺依网站 ,前后端分离。 前端采用vue3、Element Plus 、RuoYi-Vue3 后端采用gofrome 框架、mysql、redis、Jwt 实现了一键生成前后端代码,高效开发。 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:

    2024年02月07日
    浏览(50)
  • 后台管理系统模板推荐(vue-element-admin)

    vue-element-admin 是基于vue 和 Element-ui 的一套后台管理系统集成的模板 GitHub地址: https://github.com/PanJiaChen/vue-element-admin 项目在线预览: https://panjiachen.gitee.io/vue-element-admin 由尚硅谷提供的 登录页面 主页面 element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库,方便程序员进行页

    2024年02月16日
    浏览(55)
  • Tauri-Admin通用后台管理系统|tauri+vue3+pinia桌面端后台EXE

    基于 tauri+vite4+pinia2 跨端后台管理系统应用实例 TauriAdmin 。 tauri-admin 基于最新跨端技术  Tauri Rust webview2  整合  Vite4  构建桌面端通用后台管理解决方案。 搭载轻量级ve-plus组件库 、支持 多窗口切换管理、vue-i18n多语言包、动态路由权限、常用业务功能模块、3种布局模板及动

    2024年02月15日
    浏览(39)
  • Vite-Admin后台管理系统|vite4+vue3+pinia前端后台框架实例

    基于 vite4.x+vue3+pinia 前端后台管理系统解决方案 ViteAdmin 。 前段时间分享了一篇vue3自研pc端UI组件库VEPlus。这次带来最新开发的基于 vite4+vue3+pinia 技术栈搭配ve-plus组件库构建的中后台权限管理系统框架。 支持vue-i18n国际化多语言、动态路由鉴权、4种布局模板及tab页面缓存 等功

    2023年04月13日
    浏览(86)
  • TinyVue - 华为云 OpenTiny 出品的企业级前端 UI 组件库,免费开源,同时支持 Vue2 / Vue3,自带 TinyPro 中后台管理系统

    华为最新发布的前端 UI 组件库,支持 PC 和移动端,自带了 admin 后台系统,完成度很高,web 项目开发又多一个选择。 关于 OpenTiny 和 TinyVue 在上个月结束的华为开发者大会2023上,官方正式进行发布了 OpenTiny,这是华为云出品的企业级设计体系统,一套前端 UI 组件库。适配

    2024年02月11日
    浏览(62)
  • ELADMIN - 免费开源 admin 后台管理系统,基于 Spring Boot 和 Vue ,包含前端和后端源码

    一款简单好用、功能强大的 admin 管理系统,包含前端和后端源码,分享给大家。 ELADMIN 是一款基于 Spring Boot、Jpa 或 Mybatis-Plus、 Spring Security、Redis、Vue 的前后端分离的后台管理系统。 ELADMIN 的作者在 Github 和 Gitee 上看了很多的项目,发现大多数都是基于 Mybatis , 而基于 Sp

    2024年02月04日
    浏览(55)
  • 基于 vue-element-admin 升级的 Vue 3 + TypeScript + Element-Plus 版本后台管理系统正式开源

    【vue3-element-admin 】基于 Vue3 + Vite4 + TypeScript5+ Element-Plus 从0到1搭建企业级后台管理系统(前后端开源)_有来技术的博客-CSDN博客 vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 + Element Plus 版本的后台管理前端解决方案,技术栈为 Vue3 + Vite4 + TypeScript + Element Plus + Pinia + Vue Rout

    2024年02月13日
    浏览(56)
  • 【vue后台管理系统】基于Vue+Element-UI+ECharts开发通用管理后台(中)

    点击菜单图标之前: 点击菜单图标之后: 首先我们要知道菜单栏的收缩,由el-menu的collapse属性控制: 我们通过分析可以知道: 菜单按钮的点击是在CommonHeader.vue组件中,而我们修改的collapse属性却在CommonAside.vue中,这是两个不同的组件。很明显这涉及到了组件间的通信问题,

    2024年02月03日
    浏览(49)
  • vue3后台管理系统实现动态侧边导航菜单管理(ElementPlus组件)

    记住 一级(el-sub-menu)的都是只是展示的 点击跳转的都是一级下的子级(el-menu-item) 完整展示 1:在登陆功能进行登陆 获取menu列表 注册路由表的时候 把文件进行创建好 因为注册的方法需要获取这个路径 整个router下的main product等等都要创建 2:侧边菜单界面 router/index.ts

    2024年02月16日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包