63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Vue
		
	
	
| <template>
 | ||
| <div>
 | ||
| <md>
 | ||
| ## 条件触发
 | ||
| 可以判断是否需要弹出。
 | ||
| </md>
 | ||
|   <Popconfirm
 | ||
|     title="Are you sure delete this task?"
 | ||
|     :visible="visible"
 | ||
|     @visibleChange="handleVisibleChange"
 | ||
|     @confirm="confirm"
 | ||
|     @cancel="cancel"
 | ||
|     okText="Yes"
 | ||
|     cancelText="No"
 | ||
|   >
 | ||
|     <a href="#">Delete a task</a>
 | ||
|   </Popconfirm>
 | ||
|   <br />
 | ||
|   <br />
 | ||
|   Whether directly execute:<a-checkbox defaultChecked @change="changeCondition" />
 | ||
| </div>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import { Popconfirm, Checkbox } from 'antd'
 | ||
| export default {
 | ||
|   data () {
 | ||
|     return {
 | ||
|       visible: false,
 | ||
|       condition: true,
 | ||
|     }
 | ||
|   },
 | ||
|   methods: {
 | ||
|     changeCondition (e) {
 | ||
|       this.condition = e.target.checked
 | ||
|     },
 | ||
|     confirm () {
 | ||
|       this.visible = false
 | ||
|     },
 | ||
|     cancel () {
 | ||
|       this.visible = false
 | ||
|     },
 | ||
|     handleVisibleChange (visible) {
 | ||
|       if (!visible) {
 | ||
|         this.visible = false
 | ||
|         return
 | ||
|       }
 | ||
|       // Determining condition before show the popconfirm.
 | ||
|       console.log(this.condition)
 | ||
|       if (this.condition) {
 | ||
|         this.confirm() // next step
 | ||
|       } else {
 | ||
|         this.visible = true
 | ||
|       }
 | ||
|     },
 | ||
|   },
 | ||
|   components: {
 | ||
|     Popconfirm,
 | ||
|     Checkbox,
 | ||
|   },
 | ||
| }
 | ||
| </script>
 |