要在点击“跟进”按钮时传递 record
并控制 FollowUpModal
的弹窗打开,可以按照以下步骤进行:
- 在
<template>
中,定义一个响应式变量,用于控制模态框的显示状态。 - 在
followUp
函数中,设置该变量为true
,并将要传递的record
保存到另一个响应式变量中。 - 使用条件渲染来显示或隐藏
FollowUpModal
。
下面是修改后的代码示例:
<template>
<a-table
:columns="columns"
:data-source="data"
:scroll="{
x: columns.reduce((sum, col) => sum + (col.width || 0), 0) > 1800 ? undefined : 'max-content'
}"
:pagination="{
current: currentPage,
pageSize: pageSize,
total: totalRecords,
pageSizeOptions: ['10', '20', '30', '40', '100'],
onShowSizeChange: handlePageSizeChange,
onChange: handlePageChange,
showQuickJumper: true,
showSizeChanger: true,
showTotal: (total, range) => `显示 ${range[0]}~${range[1]} 条记录,共 ${total} 条记录`
}"
>
<template #bodyCell="{ column, record }">
<template v-if="column.key === 'operation'">
<a-button @click="followUp(record)">跟进</a-button>
<!-- 控制 FollowUpModal 的显示 -->
<FollowUpModal v-if="isModalVisible" :record="selectedRecord" @close="handleClose"/>
</template>
</template>
</a-table>
</template>
<script setup>
import { ref } from 'vue';
import FollowUpModal from '../workOrderManager/components/followUpPage.vue'
const columns = ref([]);
const data = ref([]);
const isModalVisible = ref(false);
const selectedRecord = ref(null);
const followUp = (record) => {
selectedRecord.value = record; // 保存当前记录
isModalVisible.value = true; // 显示模态框
};
const handleClose = () => {
isModalVisible.value = false; // 隐藏模态框
};
</script>
修改说明:
- 状态管理:添加了两个响应式变量
isModalVisible
和selectedRecord
。前者用于控制模态框的可见性,后者用于存储选中的记录。 - 事件处理:在按钮上添加了点击事件,当用户点击“跟进”时,将当前行的记录保存到
selectedRecord
中,并将isModalVisible
设置为true
,以打开模态框。 - 条件渲染:通过条件渲染 (
v-if
) 来控制是否渲染FollowUpModal
。同时,我们也假设FollowUpModal
接受一个名为record
的 prop,用于展示对应的数据,并且它应该有一个关闭事件(如 @close)以便在关闭时可以更新状态。
确保你根据实际情况调整传入给子组件的 props 和相关功能。
内容由零声教学AI助手提供,问题来源于学员提问