使用EleAdminPro 后台管理模板,模板集成:Vue3、Ant Desgin Vue、Vite、TypeScripts,如何实现触发列表的详情的点击事件时携带所点击行的id并跳转到另一个详情页面,详情页面使用a-card组件且该页面拥有五个不同的标题,当点击不同a-card的标题时需要展示不同详情内容
时间: 2024-04-08 09:35:38 浏览: 85
对于EleAdminPro后台管理模板,它使用了Vue3和Ant Design Vue,你可以按照以下步骤来实现触发列表详情点击事件时携带行ID并跳转到另一个详情页面,并且在详情页面中根据点击的a-card标题展示不同的内容。
首先,在列表中的每一行上添加点击事件,并传递行的ID。你可以在`<a-table>`组件中使用`@row-click`事件来监听行的点击事件:
```html
<template>
<div>
<a-table :dataSource="dataSource" @row-click="handleRowClick">
<!-- 列表内容 -->
</a-table>
</div>
</template>
<script>
export default {
data() {
return {
dataSource: [
// 列表数据
]
};
},
methods: {
handleRowClick(row) {
// 获取所点击行的ID
const id = row.id;
// 跳转到详情页面,并携带ID参数
this.$router.push({
name: 'details',
params: {
id: id
}
});
}
}
};
</script>
```
在上面的代码中,我们在`<a-table>`组件上使用`@row-click`事件来绑定行的点击事件,并通过`row`参数获取所点击行的ID。然后,使用`this.$router.push`方法跳转到名为`details`的路由,并通过`params`参数传递ID。
接下来,在详情页面中,可以根据路由参数中的ID来展示不同的内容。你可以在详情页面的`<template>`部分使用`v-if`和`v-else-if`指令根据不同的标题展示不同的内容:
```html
<template>
<div>
<a-card :title="title" bordered>
<!-- 根据标题展示不同的内容 -->
<div v-if="title === 'Title 1'">
<!-- 内容1 -->
</div>
<div v-else-if="title === 'Title 2'">
<!-- 内容2 -->
</div>
<!-- 其他标题对应的内容 -->
</a-card>
</div>
</template>
<script>
export default {
data() {
return {
title: ''
};
},
mounted() {
// 获取路由参数中的ID
const id = this.$route.params.id;
// 根据ID设置不同的标题
if (id === '1') {
this.title = 'Title 1';
} else if (id === '2') {
this.title = 'Title 2';
}
// 其他ID对应的标题
}
};
</script>
```
在上面的代码中,我们通过`this.$route.params.id`获取路由参数中的ID,并根据不同的ID设置不同的标题。然后,使用`v-if`和`v-else-if`指令根据不同的标题展示不同的内容。
这样,当你点击列表中的某一行时,将会携带所点击行的ID跳转到详情页面,并根据点击的a-card标题展示不同的内容。
阅读全文