tabs組件代碼
<el-tabs v-model="activeTab" type="card" :before-leave="beforeLeave">
<el-tab-pane label="用戶信息" name="basicInfo">
用戶信息表單
</el-tab-pane>
<el-tab-pane v-if="code" label="用戶角色" name="userRole">
用戶角色列表
</el-tab-pane>
</el-tabs>
方法(二選一)
// 方法一使用promise的reject()
beforeLeave(item) {
var p = new Promise((resolve, reject) => {
this.$confirm('離開將不保存本頁修改', '提示', {
confirmButtonText: '確定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
// 你可以在這兒做些操作
resolve()
}).catch(err => {
// 你可以在這兒做些操作
reject(err)
})
})
return p
},
// 方法二使用了throw new Error()阻斷js
beforeLeave(item) {
return this.$confirm('離開將不保存本頁修改', '提示', {
confirmButtonText: '確定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
}).catch(() => {
throw new Error('取消成功!')
})
},
PS
都會在控制臺有一個報錯提示的小瑕疵沽翔,我也沒想到更好的辦法徘禁,哪位大神如果有缩幸,務(wù)必留言,感激不盡孕似。