我的PrimeVue菜单如下:
<template>
<div class="">
<label class="text-slate-500 text-sm">Doctor Name</label>
<div class="text-sm">{{ appointment.doctor.name }}</div>
</div>
<div>
<span>
<a href="#"><i class="pi pi-ellipsis-v" @click="toggle"></i></a>
</span>
<Menu ref="menu" :model="items" :popup="true" />
</div>
</template>
export default {
data() {
return {
items: [{
label: 'Reschedule',
command: (event) => {
this.rescheduleVisible = true
},
},
{
label: 'Mark Completed'
},
{
label: 'Cancel Schedule'
},
{
label: 'Generate Bill'
},
{
label: 'Set Reminder'
},
{
label: 'Send Message'
},
]
},
},
methods: {
toggle(event) {
console.log(event)
this.$refs.menu[0].toggle(event);
}
}
}
我在约会列表中使用此菜单。现在,当我单击Reschedule
菜单项时,我需要获取相应的约会ID,以便将其传递到模态弹出窗口,通过将rescheduleVisible
设置为true
并显示约会的详细信息,可以看到模态弹出窗口。如何完成此操作?
模态如下所示:
<Dialog v-model:visible="rescheduleVisible" modal header="Reschedule" :style="{ width: '30vw' }">
<div class="bg-white dark:bg-gray-800 sm:rounded-lg">
<div class="p-2 text-gray-900 dark:text-gray-100">
<div class="grid grid-col-1 gap-3">
<div class="p-2">
<div>
<InputLabel for="appointment_time" value="Date and Time" />
<Calendar inputId="appointment_time" v-model="form.appointment_time" :showTime="true"
:showSeconds="false" hourFormat="12" />
</div>
</div>
<div class="p-2">
<div>
<InputLabel for="doctor" value="Doctor" />
<Dropdown v-model="form.doctor_id" :options="doctors" optionLabel="name"
optionValue="id" placeholder="Select Doctor" :filter="true" />
</div>
</div>
</div>
<div class="mt-3">
<div class="flex justify-end">
<!-- <SecondaryButton class="ml-2" @click="cancel()">Cancel</SecondaryButton> -->
<PrimaryButton class="ml-2" :class="{ 'opacity-25': form.processing }"
:disabled="form.processing">
Reschedule
</PrimaryButton>
</div>
</div>
</div>
</div>
</Dialog>
编辑:约会列表
2条答案
按热度按时间vxbzzdmp1#
如果
rescheduleVisible
为真,我会在模板中添加弹出窗口,使其可见。但您需要首先在数据中定义rescheduleVisible
,否则它不是React变量,Vue不知道如何观察它。q8l4jmvw2#
如果我的用例是正确的,那么你有一个约会列表,每个约会都有一个菜单,菜单上有一些子项,当点击任何子项时,你需要打开一个模态,并传递当前约会的id。
解决方法可能是
我不确定是否有任何事件或属性可以将循环的当前项目信息传递给Menu组件。但是,您可以使用一些其他逻辑来完成此操作-
我假设你的模板是这样的-
您可以为所选约会ID创建数据变量-
然后将当前约会的id传递给
toggle
方法-并且toggle方法可以将所传递的约会ID设置为所选择的。
最后,在任何孩子单击时,您都可以打开模态并传递
selected
变量中所选约会的id,在模态关闭时,再次重置selected
变量。不确定这是否是正确的方法,但无法找到在for循环中使用PrimeVue菜单组件的许多示例。