vuetify v-switch 点击Switch开关弹出对话框确认后再改变switch开关状态

vuetify v-switch 点击Switch开关弹出对话框确认后再改变switch开关状态

目标:点击switch组件之后,弹出一个Dialog,然后后这个dialog做判断,再决定这个switch是否变化。

在网上一直搜到的是element-ui,以及都是用的$confirm,但我的需求是要有一个dialog,实在没办法了。

解决:在v-switch 上加disabled,使之不能点击。在v-switch外面套一层<div>。在这个div的地方绑定@click,这个click是开启dialog的,然后后面根据dialog的选择直接改变绑定在v-switch的值。

<div class="d-flex justify-space-between" @click="handleSwitch(i)">
	<v-switch
		v-model="item.flag"
        disabled
    ></v-switch>
</div>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要实现这个功能,你可以使用以下方法: 1. 在 el-switch 组件上添加一个点事件,当用户点开关时触发该事件; 2. 在事件处理函数中,一个对话框,并将该开关状态保存到一个变量中; 3. 在对话框中添加一个确定按钮,在用户点确定按钮时,更新该开关状态,并关闭对话框。在更新开关状态时,需要判断该开关之前的状态与当前状态是否一致,如果一致则不需要次更新状态,否则会导致开关状态的错误变化。 以下是一个简单的示例代码(假设你在 Vue.js 框架中使用 el-switch 组件): ```html <template> <div> <el-switch v-model="switchValue" @change="handleSwitchChange"></el-switch> <el-dialog :visible="dialogVisible" @close="handleDialogClose"> <span slot="title">确认</span> <div>确定要改变开关状态吗?</div> <span slot="footer"> <el-button @click="handleDialogClose">取消</el-button> <el-button type="primary" @click="handleDialogConfirm">确定</el-button> </span> </el-dialog> </div> </template> <script> export default { data() { return { switchValue: false, dialogVisible: false, originalSwitchValue: false }; }, methods: { handleSwitchChange(value) { // 记录原始状态 this.originalSwitchValue = value; // 显示对话框 this.dialogVisible = true; }, handleDialogClose() { // 关闭对话框时,恢复原始状态 this.switchValue = this.originalSwitchValue; this.dialogVisible = false; }, handleDialogConfirm() { // 确认改变状态时,更新开关状态 this.dialogVisible = false; if (this.switchValue !== this.originalSwitchValue) { // 发送请求更新开关状态 // ... } } } }; </script> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值