vant-Dialog 彈出框的使用小結(jié)
1,dialog全局注冊, 然后在UserEdit.vue這個頁面使用 - 準備彈出輸入框?qū)?/p>
<!-- 姓名部分 -->
<van-cell
title="名稱"
is-link
:value="profile.name"
@click="showNameDialogFn" />
<!-- 修改用戶名稱的對話框 -->
<van-dialog
v-model="isShowNameDialog"
title="修改名稱"
show-cancel-button
:before-close="onNameDialogBeforeClose">
<!-- 輸入框 -->
<van-field
v-model.trim="userName"
input-align="center"
maxlength="7"
placeholder="請輸入名稱"
v-fofo
/>
</van-dialog>
<script>
export default {
data () {
return {
isShowNameDialog: false, // 是否顯示姓名彈出框
userName: '' // 編輯用戶名
}
},
methods: {
// 點擊名字-出現(xiàn)彈出框
showNameDialogFn () {
this.isShowNameDialog = true
this.userName = this.profile.name // 設(shè)置默認顯示內(nèi)容
},
// 姓名修改彈出層-關(guān)閉前方法
onNameDialogBeforeClose (action, done) {
}
}
}
</script>2,在彈窗關(guān)閉方法里判斷
// 姓名修改彈出層-關(guān)閉前方法
async onNameDialogBeforeClose (action, done) {
// action的值: confirm或cancel(點擊按鈕區(qū)分)
if (action === 'confirm') {
// 確定
// unicode編碼 \u4092
// url編碼 %E2%C3%D1
if (/^[A-Za-z0-9\u4e00-\u9fa5]{1,7}$/.test(this.userName)) {
// 通過校驗
// 調(diào)用接口
// 更新頁面顯示的名字
// 關(guān)閉彈窗
done()
} else {
// 提示用戶
Notify({ type: 'warning', message: '用戶名中英文和數(shù)字1-7位' })
// 阻止彈窗關(guān)閉
done(false)
}
} else if (action === 'cancel') {
// 取消
done()
}
}3,定義接口方法
// 用戶 - 更新資料
export const updateProfileAPI = ({ birthday, userName }) => {
return request({
url: '/v1_0/user/profile',
method: 'PATCH',
data: {
birthday: birthday,
name: userName
}
})
}4,在通過校驗位置, 調(diào)用接口更新
import { updateProfileAPI } from '@/api'
if (/^[A-Za-z0-9\u4e00-\u9fa5]{1,7}$/.test(this.userName)) {
// 通過校驗
// 調(diào)用接口
await updateProfileAPI({
userName: this.userName
})
// 更新頁面顯示的名字
this.profileObj.name = this.userName
// 關(guān)閉彈窗
done()
}到此這篇關(guān)于vant-Dialog 彈出框的用法的文章就介紹到這了,更多相關(guān)vant-Dialog 彈出框內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
elementUI給el-tabs/el-tab-pane添加圖標效果實例
這篇文章主要給大家介紹了關(guān)于elementUI給el-tabs/el-tab-pane添加圖標效果實例的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用elementUI具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2023-07-07
Vuex數(shù)據(jù)持久化的兩種方式:手動存儲和vuex-persistedstate插件詳解
這篇文章主要介紹了Vuex數(shù)據(jù)持久化的兩種方式:手動存儲和vuex-persistedstate插件,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
VueJs監(jiān)聽window.resize方法示例
本篇文章主要介紹了VueJs監(jiān)聽window.resize方法示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01
解決ElementUI中tooltip出現(xiàn)無法顯示的問題
這篇文章主要介紹了解決ElementUI中tooltip出現(xiàn)無法顯示的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03

