当前位置: 首页 > news >正文

vue3调用ant-design-vue组件库的a-table组件

一.安装依赖

npm  i ant-design-vue

二.main.ts引入使用

import AntDesign from "ant-design-vue";
import "ant-design-vue/dist/antd.css";app.use(AntDesign)

三.页面调用

<template><div class="layout-padding"><div class="layout-padding-view layout-padding-auto"><a-table :columns="filterColumn" :data-source="dataSource" :pagination="pagination" style="overflow: auto;"><template #bodyCell="{ column, record }"><template v-if="column.dataIndex === 'deviceid'"><span style="color: #66b1ff;">{{ record.deviceid }}</span></template><template v-if="column.key === 'action'"><a-button type="primary" :disabled="record.status === 1 ? true : false">按钮1</a-button><a-divider type="vertical" /><a-button type="primary" danger>按钮2</a-button></template><template v-if="column.key === 'status'"><a-tag color="green" v-if="record.status === 1">已处理</a-tag><a-tag color="red" v-if="record.status === 0">未处理</a-tag></template></template><template #customFilterDropdown="{ setSelectedKeys, selectedKeys, confirm, clearFilters, column }"><a-card><a-checkbox-group :options="checkColumn" v-model:value="checkValue" @change="checkChange" /></a-card></template></a-table></div></div>
</template><script lang="ts">
import { toRefs, reactive, onMounted, defineComponent, getCurrentInstance, computed } from 'vue';export default defineComponent({setup() {// 页面加载时onMounted(() => {init()});const { proxy }: any = getCurrentInstance();const onPageChange = (page: number, val: number) => {data.pagination.current = page;data.pagination.pageSize = val;init()}const data = reactive({pagination: {current: 1,pageSize: 10,total: 0,onChange: onPageChange, //点击页码事件showTotal: (total: number) => `共${total}条数据`, // 展示总共有几条数据buildOptionText: (pageSizeOptions: { value: string }) => `${pageSizeOptions.value}条/页`,},columns: [{title: '序号', type: 'index', width: 60, align: 'center', dataIndex: 'index', customRender: ({ index }: any) => index + 1},{ title: '设备号码', dataIndex: 'deviceid', key: 'deviceid', },{title: '设置值/报警值', dataIndex: 'fault_value', customRender: ({ record }: any) => {let value = `${Number(record.value_set) || '-'}/${Number(record.fault_value) || '-'}`if (!Number(record.value_set) && !Number(record.fault_value)) {value = '-'}return value}},{ title: '报警时间', dataIndex: 'send_time', key: 'send_time' },{ title: '状态', dataIndex: 'status', key: 'status', },{ title: '操作', dataIndex: 'action', key: 'action', minWidth: 230, customFilterDropdown: true }],// 数据dataSource: [],// 初始备份的表格列配置描述及过滤后的容器filterColumn: [] as any[],checkValue: ['index', "deviceid", "fault_value", "send_time", "status", "action"],});const init = async () => {let params = {page: data.pagination.current, pageSize: data.pagination.pageSize,} as any;let res = await proxy.apis.alarminfoLists(params);if (res.code === 200) {data.dataSource = res.data.list || [];data.pagination.total = res.data.page.total;}};// 选择框使用的数据const checkColumn = computed(() => {return data.columns.map((item) => {if (item.dataIndex === "action" || item.dataIndex === "index") {return { label: item.title, value: item.dataIndex, disabled: true };}return { label: item.title, value: item.dataIndex };});});function filterAction(value: Array<string>) {return data.columns.filter((item) => {if (value.includes(item.dataIndex)) {// 为true时,循环遍历的值会暴露出去return true;}return false;});}data.filterColumn = filterAction(data.checkValue);const checkChange = (checked: Array<string>) => {const filterValue = filterAction(checked);data.filterColumn = filterValue;};return {...toRefs(data),checkChange,checkColumn,onPageChange,};},
});
</script><style scoped lang="scss"></style>

效果图

http://www.dtcms.com/a/515526.html

相关文章:

  • 手机网站开发软件南昌网站外包
  • 以图搜图随州网站seo诊断
  • java设计模式六、装饰器模式
  • 微信小程序隐藏滚动条多种方法教程
  • AWS DMS实现MySQL到Redshift的CDC增量数据复制方案
  • 王者重名生成查询抖音快手微信小程序看广告流量主开源
  • 旅游网站建设1000字软文范例800字
  • 网站搜索引擎友好性最近三天发生的重要新闻
  • Flink的checkpoint interval与mini-batch什么区别?
  • CADSoftTools发布两款重要更新:CAD VCL Multiplatform 16.2 与 CAD .NET 16全新发布
  • 【个人成长笔记】在本地Windows系统中如何正确使用adb pull命令,把Linux系统中的文件或文件夹复制到本地中(亲测有效)
  • 触摸未来2025-10-22:语序之困
  • 【滑动窗口与双指针】【定长滑窗】—1456. 定长子串中元音的最大数目
  • Flink 实验性特性把“已预分区”的 DataStream 重新解释为 KeyedStream
  • ADB -> 常用文件操作的组合命令
  • 网格系统网站济南网约车公司
  • 社区网站的推广方案手机写wordpress博客
  • 原子性、可见性和指令重排问题的根源
  • 什么是测试覆盖率?如何衡量?
  • 《宝可梦传说Z-A》下载 整合龙神Ryuinx、eden模拟器附金手指和存档 安卓手机PC版
  • 自动驾驶---基于安全走廊的端到端
  • 2025主流AI标书工具推荐,“闭眼选”高效生成投标文件
  • (22)100天python从入门到拿捏《【网络爬虫】网络基础与HTTP协议》
  • iis6建设网站叶梓 wordpress 主题
  • 【C#】获取电脑网卡MAC地址
  • ​2025网络安全前景与学习路线:抓住数字时代的安全机遇
  • Linux小课堂: SSH 服务部署与客户端连接实战详解
  • 好看网站手机版南开做网站公司
  • 七日 Go 的自学笔记 (一)
  • Node.js 接入淘宝 API 实战:构建商品信息实时同步服务