鄉(xiāng)鎮(zhèn)中心小學(xué)校園網(wǎng)站建設(shè)指南四川聚順成網(wǎng)絡(luò)科技有限公司
目錄
- 1 創(chuàng)建數(shù)據(jù)源
- 2 注冊(cè)用戶
- 3 判斷用戶是否注冊(cè)
- 4 完整代碼
- 總結(jié)
我們的培訓(xùn)報(bào)名小程序,用戶每次打開(kāi)時(shí)都需要填寫(xiě)個(gè)人信息才可以報(bào)名,如果用戶多次報(bào)名課程,每次都需要填寫(xiě)個(gè)人信息,比較麻煩。
本篇我們就優(yōu)化一下功能,打開(kāi)小程序的時(shí)候我們判斷用戶是否注冊(cè),如果已注冊(cè)就直接提取個(gè)人信息,如果未注冊(cè)就引導(dǎo)用戶注冊(cè)。
1 創(chuàng)建數(shù)據(jù)源
先創(chuàng)建一個(gè)報(bào)名人員信息表
然后創(chuàng)建字段,我們的字段有姓名、性別、身份證、電話、工作單位,為了控制數(shù)據(jù)權(quán)限我們?cè)黾右粋€(gè)openid字段
2 注冊(cè)用戶
數(shù)據(jù)源建好了之后,我們新建一個(gè)用戶注冊(cè)的頁(yè)面
用戶注冊(cè)的話我們使用表單容器來(lái)開(kāi)發(fā),拖入表單容器,數(shù)據(jù)源選擇我們剛剛創(chuàng)建的數(shù)據(jù)源
這里要注意,openid需要綁定輸入值,綁定為用戶登錄信息里的openid
然后切換到樣式,影藏組件
選中表單容器,我們?cè)谔峤怀晒χ笤黾右粋€(gè)返回上一頁(yè)的事件
3 判斷用戶是否注冊(cè)
如何判斷用戶是否注冊(cè)呢?這需要在生命周期函數(shù)中做判斷,打開(kāi)應(yīng)用編輯器,在右下角點(diǎn)擊代碼編輯器
首先呢我們需要獲取一下用戶的openid,可以從當(dāng)前的登錄對(duì)象里獲取,先輸入如下代碼獲取用戶的登錄信息
var openid ;//存儲(chǔ)登錄用戶的id//獲取當(dāng)前登錄用戶基本信息await $app.auth.getUserInfo().then(res =>{ openid = res.openId});
獲取到信息之后,按照這個(gè)登錄信息去用戶表匹配去
const user = await app.cloud.callModel({name:'bmry_v3qpbaf',methodName:'wedaGetItem',params:{where:[{key:'openid',rel:'eq',val:openid}]}})
然后根據(jù)用戶信息是否獲取到來(lái)做路由跳轉(zhuǎn)
if(JSON.stringify(user) === "{}"){app.navigateTo({pageId: 'u_yong_hu_zhu_ce', // 頁(yè)面 Id });}else{$app.dataset.state.user = user}
4 完整代碼
export default {async onPageLoad(query) {//console.log('---------> LifeCycle onPageLoad', query)var openid ;//存儲(chǔ)登錄用戶的id//獲取當(dāng)前登錄用戶基本信息await $app.auth.getUserInfo().then(res =>{ openid = res.openId});console.log("openid",openid)const user = await app.cloud.callModel({name:'bmry_v3qpbaf',methodName:'wedaGetItem',params:{where:[{key:'openid',rel:'eq',val:openid}]}})if(JSON.stringify(user) === "{}"){app.navigateTo({pageId: 'u_yong_hu_zhu_ce', // 頁(yè)面 Id });}else{$app.dataset.state.user = user}},onPageShow() {//console.log('---------> LifeCycle onPageShow')},onPageReady() {//console.log('---------> LifeCycle onPageReady')},onPageHide() {//console.log('---------> LifeCycle onPageHide')},onPageUnload() {//console.log('---------> LifeCycle onPageUnload')},
}
總結(jié)
我們本篇介紹了用戶注冊(cè)以及在首頁(yè)判斷用戶是否注冊(cè)來(lái)自動(dòng)跳轉(zhuǎn)的內(nèi)容,在開(kāi)發(fā)業(yè)務(wù)邏輯的時(shí)候,需要熟練掌握javascript以及微搭A(yù)PI的用法才可以按照自己的需要實(shí)現(xiàn)具體的功能,感興趣的同學(xué)照著教程練習(xí)一下吧。