ZBLOG

要在 Vue 中实现点击 “跟进” 按钮时打开一个新的页面并以弹窗形式展示,你可以使用 Vue Router 和 Ant Design Vue 的 Modal 组件来实现。以下是如何修改你的代码以满足这一要求。

修改后的代码示例

<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="openModal('edit', record)">编辑</a-button>
        <a-button @click="showFollowUpModal(record)">跟进</a-button>
        <a-button @click="complete(record)">完成</a-button>
      </template>
    </template>
  </a-table>

  <a-modal
    v-model:visible="isFollowUpModalVisible"
    title="跟进"
    @ok="handleFollowUpOk"
    @cancel="handleFollowUpCancel"
  >
    <p>这是关于 {{ selectedRecord?.name }} 的跟进信息。</p>
    <!-- 在这里可以添加更多输入或内容 -->
  </a-modal>
</template>

<script setup>
import { ref } from 'vue';
import { Table, Button, Modal } from 'ant-design-vue';

const columns = ref([]);
const data = ref([]);
const currentPage = ref(1);
const pageSize = ref(10);
const totalRecords = ref(100);
const isFollowUpModalVisible = ref(false);
const selectedRecord = ref(null);

const openModal = (action, record) => {
  console.log(action, record);
};

const showFollowUpModal = (record) => {
  selectedRecord.value = record; // 存储当前记录
  isFollowUpModalVisible.value = true; // 显示弹窗
};

const handleFollowUpOk = () => {
  // 在这里处理跟进行为,比如保存数据等
  console.log('跟进操作已确认:', selectedRecord.value);
  
  isFollowUpModalVisible.value = false; // 隐藏弹窗
};

const handleFollowUpCancel = () => {
  isFollowUpModalVisible.value = false; // 隐藏弹窗
};

const complete = (record) => {
  console.log('完成', record);
};
</script>

<style scoped>
/* 可根据需要添加样式 */
</style>

改动说明:

  1. 增加 Modal:在模板中加入了 a-modal,用于展示 “跟进” 内容。
  2. 状态管理
    • 使用 isFollowUpModalVisible 管理 Modal 是否可见。
    • 使用 selectedRecord 存储当前选择的记录,以便在 Modal 中展示。
  3. 按钮事件:将 “跟进” 按钮的点击事件指向新方法 showFollowUpModal,该方法会设置当前记录并显示 Modal。
  4. 处理确定和取消按钮:定义了 handleFollowUpOkhandleFollowUpCancel 方法,分别处理用户确认和取消操作。

通过这些改动,您可以在点击 “跟进” 时打开一个包含相关信息的弹窗,从而提升用户体验。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=22458

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?