vant-Dialog 彈出框的使用小結(jié)
1,dialog全局注冊, 然后在UserEdit.vue這個頁面使用 - 準(zhǔn)備彈出輸入框?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: {
// 點(diǎn)擊名字-出現(xiàn)彈出框
showNameDialogFn () {
this.isShowNameDialog = true
this.userName = this.profile.name // 設(shè)置默認(rèn)顯示內(nèi)容
},
// 姓名修改彈出層-關(guān)閉前方法
onNameDialogBeforeClose (action, done) {
}
}
}
</script>2,在彈窗關(guān)閉方法里判斷
// 姓名修改彈出層-關(guān)閉前方法
async onNameDialogBeforeClose (action, done) {
// action的值: confirm或cancel(點(diǎn)擊按鈕區(qū)分)
if (action === 'confirm') {
// 確定
// unicode編碼 \u4092
// url編碼 %E2%C3%D1
if (/^[A-Za-z0-9\u4e00-\u9fa5]{1,7}$/.test(this.userName)) {
// 通過校驗(yàn)
// 調(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,在通過校驗(yàn)位置, 調(diào)用接口更新
import { updateProfileAPI } from '@/api'
if (/^[A-Za-z0-9\u4e00-\u9fa5]{1,7}$/.test(this.userName)) {
// 通過校驗(yàn)
// 調(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)文章
Vue中v-for的數(shù)據(jù)分組實(shí)例
下面小編就為大家分享一篇Vue中v-for的數(shù)據(jù)分組實(shí)例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03
element-ui中el-row中設(shè)置:gutter間隔不生效問題
這篇文章主要介紹了element-ui中el-row中設(shè)置:gutter間隔不生效問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08
vue移動端html5頁面根據(jù)屏幕適配的四種解決方法
在vue移動端h5頁面當(dāng)中,其中適配是經(jīng)常會遇到的問題,這塊主要有四個方法可以適用。這篇文章主要介紹了vue移動端h5頁面根據(jù)屏幕適配的四種方案 ,需要的朋友可以參考下2018-10-10
vue-router中關(guān)于children的使用方法
這篇文章主要介紹了vue-router中關(guān)于children的使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
Composition API思想封裝NProgress示例詳解
這篇文章主要為大家介紹了Composition API思想封裝NProgress示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08

