vue3 + el-switch ,当开关关闭时,el-dialog弹框确认后改变状态

本文介绍了如何在Vue应用中,通过点击非激活的el-switch并结合disabled属性,控制dialog的显示与隐藏。作者展示了如何使用ref和v-model实现状态管理以及处理before-close和按钮点击事件。
摘要由CSDN通过智能技术生成

不通过el-switch切换开启和关闭,加上disabled,改一下样式。switch外层包裹一等div,给div绑定click事件,通过click控制dialog,再进行判断。

<template>
    <div class="appMain">
        <div>
            <div style="display: flex;width:600px;justify-content:space-between" class="edit-container">
                <el-row class="edit-header" justify="space-between">
                    <div>
                        <i class="splitIcon"></i>
                        <span>xxxxx</span>
                    </div>
                    <div @click="handleStatus()">
                        <el-switch style="margin-left:15px" v-model="setLagg" disabled />
                    </div>
                </el-row>
            </div>
        </div>
        <div>
            <el-dialog v-model="centerDialogVisible" title="确认" width="30%" align-center :close-on-click-modal="false"
                :before-close="handleClose">
                <span>确认</span>
                <template #footer>
                    <span class="dialog-footer">
                        <el-button @click="handleCancel">取消</el-button>
                        <el-button type="primary" @click="handleConfirm">
                            {{ 确认 }}
                        </el-button>
                    </span>
                </template>
            </el-dialog>
        </div>
    </div>
</template>
<script setup>
import { ref } from "vue"
const setLagg = ref(true)
const centerDialogVisible = ref(false)

const handleClose = () => {
    centerDialogVisible.value = false
}
const handleConfirm = () => {
    setLagg.value = false
    centerDialogVisible.value = false
}
const handleCancel = () => {
    centerDialogVisible.value = false
}
const handleStatus = () => {
    if (setLagg.value == true) {
        centerDialogVisible.value = true
    } else {
        setLagg.value = !setLagg.value
    }

}

</script>
<style scoped>
:deep(.el-switch.is-disabled .el-switch__core, .el-switch.is-disabled .el-switch__label) {
    cursor: default;
}

:deep(.el-switch.is-disabled) {
    opacity: 1;
}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值