vuecssuiant-designantdreactantantd-vueenterprisefrontendui-designvue-antdvue-antd-uivue3vuecomponent
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
1.5 KiB
78 lines
1.5 KiB
<docs> |
|
--- |
|
order: 4 |
|
title: |
|
zh-CN: 条件触发 |
|
en-US: Conditional trigger |
|
--- |
|
|
|
## zh-CN |
|
|
|
可以判断是否需要弹出。 |
|
|
|
## en-US |
|
|
|
Make it pop up under some conditions. |
|
|
|
</docs> |
|
|
|
<template> |
|
<div> |
|
<a-popconfirm |
|
title="Are you sure delete this task?" |
|
:visible="visible" |
|
ok-text="Yes" |
|
cancel-text="No" |
|
@visibleChange="handleVisibleChange" |
|
@confirm="confirm" |
|
@cancel="cancel" |
|
> |
|
<a href="#">Delete a task</a> |
|
</a-popconfirm> |
|
<br /> |
|
<br /> |
|
Whether directly execute: |
|
<a-checkbox v-model:checked="condition" /> |
|
</div> |
|
</template> |
|
<script lang="ts"> |
|
import { message } from 'ant-design-vue'; |
|
import { ref, defineComponent } from 'vue'; |
|
export default defineComponent({ |
|
setup() { |
|
const visible = ref<boolean>(false); |
|
const condition = ref<boolean>(true); |
|
|
|
const confirm = () => { |
|
visible.value = false; |
|
message.success('Next step.'); |
|
}; |
|
|
|
const cancel = () => { |
|
visible.value = false; |
|
message.error('Click on cancel.'); |
|
}; |
|
|
|
const handleVisibleChange = (bool: boolean) => { |
|
if (!bool) { |
|
visible.value = false; |
|
return; |
|
} |
|
// Determining condition before show the popconfirm. |
|
console.log(condition.value); |
|
if (condition.value) { |
|
confirm(); // next step |
|
} else { |
|
visible.value = true; |
|
} |
|
}; |
|
return { |
|
visible, |
|
condition, |
|
confirm, |
|
cancel, |
|
handleVisibleChange, |
|
}; |
|
}, |
|
}); |
|
</script>
|
|
|