需求,点击table内的具体一行的某一列,出现弹窗,展示JSON数据
第一步: 给a-table元素内添加属性
:customRow="rowClick"
// 表格
// 弹窗
{{ items }}
第二步: 【vue.js|vue3+antd实现table中点击具体某一列展示弹窗】根据定义的函数名,编写ts部分的内容;
分析:主要为两个方面:
- 获取到行的参数后将数据存储为JSON格式
- 确定点击的为具体的某一列然后展示该列的该行的字段
- 整体逻辑不复杂,主要是找到确定列的参数,根据event.target.cellIndex确定鼠标点击的第几列,然后根据这个参数判断自己需要点击哪一列进行弹窗显示
- 需要注意的点是对JSON数组赋值之前先将数据清空,否则会出现脏数据
params.length = 0;
="ts">
import { defineComponent, ref } from 'vue';
export default defineComponent({
setup() {
const visible = ref(false);
// JSON格式的参数信息
let params = reactive([])
const showModal = () => {
visible.value = https://www.it610.com/article/true;
};
const handleOk = (e: MouseEvent) => {
visible.value = https://www.it610.com/article/false;
};
// record为整行的数据,需要具体哪一列根据字段名取
const rowClick = (record, index) => {
return {
onClick: (event) => {
// 判断点击的列数为4的时候展示弹窗
if (event.target.cellIndex == 4) {
visible.value = https://www.it610.com/article/true;
// 将JSON数组清空
params.length = 0;
params.push(JSON.parse(record.params))
}
}
}
};
return {
visible,
showModal,
handleOk,
rowClick,
};
},
});
推荐阅读
- javascript|Vue3 + Vite2 项目实战复盘总结(干货!)
- vue|Vue+element-ui+ts封装table业务组件
- 面试|理解JS的三座大山
- 面试|瑞吉外卖项目剩余功能补充
- 前端|axios在vue中的使用
- 面试|MySQL 免安装版的下载与配置教程
- 面试|MySQL 入门(Case 语句很好用)
- 面试|MySQL 出现 The table is full 的解决方法
- 前端|H5页面前端开发常见的兼容性问题解决方法