在Vue3+TypeScript项目中,已经在<script setup>标签中声明了setup函数,使用ant design vue框架如何在列表页面使得点击查看、编辑、新建按钮的弹窗是同一个,但点击查看不可编辑内容、新建无默认展示内容、修改需展示所点击列表的内容
时间: 2024-04-17 19:26:33 浏览: 185
在Vue3+TypeScript项目中,你可以使用Ant Design Vue框架中的`Modal`组件来实现点击查看、编辑、新建按钮时弹窗是同一个,但根据不同操作的需求展示不同的内容。
首先,你可以在模板中创建一个按钮,用于触发弹窗的显示。然后,使用一个变量来控制弹窗的显示与隐藏。
下面是一个示例代码:
```html
<template>
<div>
<a-button @click="openModal('view')">查看</a-button>
<a-button @click="openModal('edit')">编辑</a-button>
<a-button @click="openModal('create')">新建</a-button>
<a-modal v-model:visible="showModal" title="弹窗标题">
<template v-if="modalMode === 'view'">
<!-- 查看内容 -->
<p>姓名:{{ userInfo.name }}</p>
<p>年龄:{{ userInfo.age }}</p>
<!-- 其他查看内容 -->
</template>
<template v-else-if="modalMode === 'edit'">
<!-- 编辑内容 -->
<a-input v-model="userInfo.name" />
<a-input v-model="userInfo.age" />
<!-- 其他编辑内容 -->
</template>
<template v-else-if="modalMode === 'create'">
<!-- 新建内容 -->
<a-input v-model="userInfo.name" placeholder="姓名" />
<a-input v-model="userInfo.age" placeholder="年龄" />
<!-- 其他新建内容 -->
</template>
<template #footer>
<a-button @click="closeModal">取消</a-button>
<a-button type="primary" @click="saveModal">保存</a-button>
</template>
</a-modal>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue';
import { Modal, Button, Input } from 'ant-design-vue';
const showModal = ref(false);
const modalMode = ref('');
const userInfo = ref({
name: '',
age: ''
});
const openModal = (mode) => {
modalMode.value = mode;
showModal.value = true;
if (mode === 'view') {
// 根据实际需求,设置查看内容的初始值
userInfo.value = {
name: 'John',
age: 30
};
} else if (mode === 'edit') {
// 根据实际需求,设置编辑内容的初始值
userInfo.value = {
name: 'John',
age: 30
};
} else if (mode === 'create') {
// 清空新建内容的初始值
userInfo.value = {
name: '',
age: ''
};
}
};
const closeModal = () => {
showModal.value = false;
};
const saveModal = () => {
// 根据实际需求,编写保存弹窗内容的逻辑
closeModal();
};
</script>
```
在上述示例中,我们通过点击查看、编辑、新建按钮来触发弹窗的显示。通过`openModal`函数来设置弹窗的显示模式,并根据不同模式设置相应的初始值。
在弹窗的内容中,我们使用了`v-if`和`v-else-if`指令来根据不同的模式展示不同的内容。当模式为查看时,展示查看内容;当模式为编辑时,展示编辑内容;当模式为新建时,展示新建内容。
在弹窗的底部,我们使用了`#footer`来自定义底部按钮,并绑定了取消和保存的点击事件处理函数。
请注意,示例中的弹窗内容和保存逻辑仅作为示例,你需要根据实际情况修改弹窗的标题、内容以及保存逻辑。
这样,当点击不同按钮时,弹窗会显示相应的内容,并根据操作类型展示不同的初始值。你可以根据实际需求对弹窗内容和保存逻辑进行进一步的处理和修改。
阅读全文