知識
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!
微信小程序項目wx-store代碼詳解
發(fā)表時間:2021-1-5
發(fā)布人:葵宇科技
瀏覽次數(shù):64
該小程序采用的云開發(fā),沒有自己搭建后端,我心目中,只要沒有后端的內容我就覺得很簡單。但其實我還是想有朝一日能自己獨立完成前后端所有工作,寫一個更棒的作品。
啟動頁
之前文章也有過如何寫一個啟動頁面。至于為什么需要個啟動頁呢?
我覺得主要也就兩點,一個是好看,還有個就是添加獲取用戶信息類型按鈕,間接引導用戶授權獲取用戶信息。
至于為啥要獲取用戶信息?
曾真有段時間,我糾結了好久,因為我自己這個程序中,除了展示,好像也沒啥需要用到這個數(shù)據(jù)的地方。
但我還是寫了。
當前登陸用戶的用戶名和頭像圖片,通過 open-data 標簽可以無需授權直接獲取,只要指定相應類型userNickName和userAvatarUrl即可,樣式只需要用view容器包裹起來進行設置。button按鈕指定open-type為getUserInfo,在點擊事件中就可以拿到授權之后的用戶公開信息數(shù)據(jù)。
拿到用戶信息需要保存到數(shù)據(jù)庫中,也只需要首次登錄的用戶在授權之后才需要入庫,所以加個判斷當前登陸用戶是否是首次登錄,判斷條件是每個用戶的唯一值openId。
通過這個邏輯,那需要處理的可以分為如下幾個:
1、獲取當前登錄用戶的openId。
getOpenID() { let that = this; wx.cloud.callFunction({ name: 'login', complete: res => { const openId = res.result.event.userInfo.openId; that.setData({ openId }) } }) },
這個login云函數(shù)是項目構建時自動生成的,云函數(shù)寫法:
4、檢查當前登錄用戶是否已經(jīng)存在數(shù)據(jù)庫。
首頁
首頁從上到下分為幾塊,輪播圖,輪播告示,icon列表,推薦商品展示。
輪播圖。
直接用自帶的組件,swiper和swiper-item配合使用。
因為之前有小伙伴咨詢過,如何云開發(fā)中數(shù)據(jù)庫新建集合,這里用gif簡單說明一下。
為啥要兩個gif呢,因為超過300幀的它不給上傳~
輪播告示。
和輪播圖一樣的,只是輪播方向不同,swiper中添加個參數(shù) vertical。點擊顯示彈窗,引用的是WeUI庫,咋用參考以往文章。
icon列表。
到這里就要用到本程序中最最最復雜的一個數(shù)據(jù)庫集合了,幾乎所有的商品數(shù)據(jù)都是存放在這個集合中的。
那icon列表就是獲取goods集合中每個對象icon字段值,推薦商品列表就是每個對象中l(wèi)ist數(shù)組中所有isHot為true的數(shù)據(jù)。
而我這里肯定是需要點擊不同的icon跳轉到不同的分類欄目中的,那就需要在跳轉時候攜帶該分類id,還是當前這個數(shù)組的下標。
通過定義全局參數(shù),可以解決wx.switchTab無法攜帶參數(shù)的問題。
app.js中,在onLaunch里定義個全局對象。
在menu.js中,在最開始需要引入全局變量。
分類頁這兒主要的處理邏輯有三塊內容。
1、區(qū)分管理員權限和普通用戶權限。
管理員權限可以有新增商品和刪除的功能,普通用戶只可以查看。
權限這塊的處理應該會有更好的方案。
我比較挫,想到的最簡單的方法就是利用openId來做過濾。在頁面初次加載的時候獲取當前用戶的openId,和啟動頁一樣的方法,只是回調函數(shù)中不一樣。在數(shù)據(jù)庫中定義個管理員集合,你需要給那些用戶設置成管理員,將他們的openId放在這個集合中。
我是在app.js中獲取這個管理員集合的,可能是剛剛嘗過全局變量的甜頭吧。
當時對于這個邏輯處理的考慮也是想了蠻久,這個小程序的制作出發(fā)點只是作為一個助手作用,方便用戶查看店鋪所有商品,是做一個商品分類展示的功能,不支付線上下單,主要也是因為顯示下單這個功能太復雜,個人小程序沒權限做。
那我就想著僅僅分類展示并不滿足使用,加入個喜歡列表實用性更大。
商品的固定數(shù)據(jù)是可以存入云開發(fā)的數(shù)據(jù)庫中,但是針對于每個用戶不同的喜歡數(shù)據(jù),最好的方案就是使用緩存。
localStorange的數(shù)據(jù)形式是key / value,一開始計劃的是固定一個key,value中是個數(shù)組對象。
這一定是可行的,但我不會做......麻煩能實現(xiàn)的朋友私信我。
好的方案來不了可以來挫的嘛。我用商品的分類Id和當前商品Id拼接起來作為key,這就保證了key唯一性,那存入本地的數(shù)據(jù)是需要在喜歡列表展示的,我需要展示的數(shù)據(jù)有分類Id,id,商品名,是不是喜歡,封面縮略圖,價格。明白了這幾點要求,實現(xiàn)就很簡單了。
在每個商品的愛心圖標上加一個點擊事件。
3、從本地緩存中獲取喜歡列表詳情
有些商品是已經(jīng)加入喜歡列表的,商品上的喜歡圖標已經(jīng)是高亮狀態(tài),等到下次進入該分類頁,就應該將之前設置喜歡狀態(tài)的商品顯示出來,不然每次進來都是初始的模樣就毫無意義了。
首先是需要獲取商品列表數(shù)據(jù),再根據(jù)本地緩存數(shù)據(jù),將喜歡的商品數(shù)據(jù)修改一下狀態(tài)。
這樣就是分三步走。
獲取商品列表數(shù)據(jù)。
商品詳情頁
點擊跳轉過來的時候,攜帶的參數(shù)只有分類id和商品id。根據(jù)這兩個字段就可以在商品列表數(shù)據(jù)查詢到具體所有數(shù)據(jù)。
在當前頁面獲取傳參過來的數(shù)據(jù)。
按照之前數(shù)據(jù)庫集合中定義的數(shù)據(jù)格式,這里就分兩塊。一個是相關數(shù)據(jù)的填寫表單,一個就是上傳的圖片列表。
圖片列表上傳的實現(xiàn),官方都給了相應的api方法。
選擇圖片:
最輕松的一個頁面,讀取本地緩存展示數(shù)據(jù)。這里還用到了WeUI的mp-slideview組件,修改這個組件的樣式還是挺麻煩,高度樣式?jīng)]改成功,多少存在點瑕疵。
相關案例查看更多
相關閱讀
- 云南網(wǎng)站建設制作
- 跳轉小程序
- 云南小程序開發(fā)報價
- 云南科技公司
- 網(wǎng)站制作
- 云南網(wǎng)站建設百度官方
- 小程序
- 百度自然排名
- 云南網(wǎng)站建設價格
- 云南網(wǎng)站建設服務
- flex
- 百度小程序
- 文山小程序開發(fā)
- 大理小程序開發(fā)
- 網(wǎng)絡公司聯(lián)系方式
- vue開發(fā)小程序
- APP
- web服務
- 怎么做網(wǎng)站
- 正規(guī)網(wǎng)站建設公司
- 報廢車
- 小程序密鑰
- SEO
- 汽車報廢管理系統(tǒng)
- 搜索引擎排名
- 云南小程序制作
- 昆明小程序定制開發(fā)
- 云南小程序開發(fā)課程
- 云南網(wǎng)站建設哪家公司好
- 網(wǎng)站建設哪家強