版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)一購(gòu)物車(chē)模塊開(kāi)發(fā)Shoppingcartmoduledevelopment在小程序開(kāi)發(fā)中,購(gòu)物車(chē)模塊一般包括商品列表、商品金額計(jì)算、商品數(shù)量增減、商品所選規(guī)格等,小程序提供了各類(lèi)API和組件為實(shí)現(xiàn)商品購(gòu)物車(chē)提供了便利。項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)描述購(gòu)物車(chē)功能6、底部添加結(jié)算按鈕在底部添加“全選”按鈕、“合計(jì)”文本、“去結(jié)算”按鈕,并綁定相應(yīng)的事件。5、計(jì)算選中商品的總金額
在事件中,更新本地緩存中的商品信息,并計(jì)算選中商品的總金額。4、列表中添加組件在列表中添加選擇框、數(shù)量輸入框、刪除按鈕等控件,并綁定相應(yīng)的事件。3、讀取本地緩存
在購(gòu)物車(chē)頁(yè)面讀取本地緩存中的商品信息,并展示在列表中。
2、商品信息存入本地緩存在點(diǎn)擊事件中,將商品信息存入本地緩存中,并提示用戶“加入成功”。1、“加入購(gòu)物車(chē)”按鈕
在商品詳情頁(yè)添加“加入購(gòu)物車(chē)”按鈕,并綁定點(diǎn)擊事件。實(shí)現(xiàn)購(gòu)物車(chē)
購(gòu)物車(chē)功能是指在電商平臺(tái)上,用戶可以將自己想要購(gòu)買(mǎi)的商品添加到一個(gè)虛擬的購(gòu)物籃中,然后在合適的時(shí)候進(jìn)行結(jié)算和支付的功能。購(gòu)物車(chē)功能可以讓用戶更方便地瀏覽和比較商品,也可以讓用戶更靈活地控制自己的消費(fèi)預(yù)算和時(shí)間。購(gòu)物車(chē)功能-邏輯實(shí)現(xiàn)wx.login獲取code碼登錄成功后,顯示購(gòu)物車(chē)頁(yè)面獲取當(dāng)前被點(diǎn)擊的商品的索引值商品數(shù)量加減刪除1、登錄授權(quán)3、購(gòu)物車(chē)商品數(shù)量操作獲取本地token從服務(wù)器拿到的物品數(shù)據(jù)2、wx.request請(qǐng)求購(gòu)物車(chē)任何一次觸發(fā)該函數(shù),都會(huì)重新計(jì)算價(jià)格再進(jìn)行選中項(xiàng)的價(jià)格累加6、計(jì)算總價(jià)會(huì)觸發(fā)計(jì)算總價(jià)的方法4、單選事件每個(gè)商品都應(yīng)該是選中狀態(tài)會(huì)觸發(fā)計(jì)算總價(jià)的方法5、全選事件邏輯實(shí)現(xiàn)過(guò)程定義基礎(chǔ)數(shù)據(jù)Page({
data:
{
cartList:[{
id:1,
goodsNo:'202108675',
thumbnail:'/images/goods1.jpg',
title:'澳洲臘梅鮮花|花期長(zhǎng)|有香味水養(yǎng)冬天應(yīng)季',
quantity:2,
salePrice:72,
color:'紅'
}
],
//購(gòu)物車(chē)商品列表
colorGoods:[],
//購(gòu)物車(chē)?yán)锷唐匪x的顏色
hasResult:true,
//判斷購(gòu)物車(chē)?yán)锸欠裼袛?shù)據(jù)
isChecked:false,
//單選,默認(rèn)為false
isCheckAll:false,
//全選,默認(rèn)為false
},})
打開(kāi)pages/goodsCart/goodsCart.js文件的data對(duì)象中定義基礎(chǔ)數(shù)據(jù),代碼如下所示。定義基礎(chǔ)數(shù)據(jù)
cartList是指購(gòu)物車(chē)商品列表,colorGoods是指選中購(gòu)買(mǎi)商品的顏色,hasResult用于判斷購(gòu)物車(chē)?yán)锸欠裼袛?shù)據(jù)。isChecked用于商品左側(cè)復(fù)選框,定義單個(gè)商品是否被選中。isCheckAll用于頁(yè)面底部全選復(fù)選框,定義購(gòu)物車(chē)中的商品是否被選中。購(gòu)物車(chē)模塊
在小程序開(kāi)發(fā)中,購(gòu)物車(chē)模塊一般包括商品列表、商品金額計(jì)算、商品數(shù)量增減、商品所選規(guī)格等,小程序提供了各類(lèi)API和組件為實(shí)現(xiàn)商品購(gòu)物車(chē)提供了便利。購(gòu)物車(chē)視圖頁(yè)面<view
class="cart">
<block
wx:if="{{hasResult}}">
<view
class="top-cart"></view>
<view
class="item-list"></view>
<view
class="total-cart"></view></block><view
wx:else
class="no-result"></view></view>
購(gòu)物車(chē)頁(yè)面主要包括上部購(gòu)物車(chē)商品信息、中間購(gòu)物車(chē)商品列表和底部購(gòu)物車(chē)結(jié)算信息,每個(gè)商品左邊有單選,底部可以通過(guò)全選操作商品,用戶可以選中商品,或者滑動(dòng)操作查看右邊的商品。感
謝
觀
看THANK項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)二購(gòu)物車(chē)頁(yè)面詳情ShoppingcartpageDetails
購(gòu)物車(chē)頁(yè)面設(shè)計(jì)應(yīng)該注重用戶界面的友好性和直觀性。購(gòu)物車(chē)頁(yè)面應(yīng)該具有清晰簡(jiǎn)潔的布局,突出顯示重要信息,讓用戶一目了然。購(gòu)物車(chē)詳情頁(yè)面應(yīng)該包括商品名稱、價(jià)格、數(shù)量、小計(jì)、刪除和結(jié)算等基本信息。項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)描述購(gòu)物車(chē)商品列表屬性類(lèi)型描述bindchangeEventHandlecheckbox-group選中項(xiàng)發(fā)生改變時(shí)觸發(fā)change事件,detail={value:[選中的checkbox的value的數(shù)組]}屬性類(lèi)型默認(rèn)值描述valuestring
checkbox標(biāo)識(shí),選中時(shí)觸發(fā)checkbox-group的change事件,并攜帶checkbox的valuedisabledbooleanfalse是否禁用checkedbooleanfalse當(dāng)前是否選中,可用來(lái)設(shè)置默認(rèn)選中colorstring#09BB07checkbox的顏色,同css的color
checkbox-group多項(xiàng)選擇器,內(nèi)部由多個(gè)checkbox組成。
購(gòu)物車(chē)?yán)锏纳唐纷筮呌袕?fù)選框,使用小程序的表單組件checkbox,該組件包含了四個(gè)屬性值。購(gòu)物車(chē)商品數(shù)量
為商品數(shù)量“-”和“+”按鈕添加reduceCount和addCount函數(shù),實(shí)現(xiàn)購(gòu)物車(chē)商品數(shù)據(jù)的增加與減少。購(gòu)物車(chē)商品數(shù)量data:{
users:[
{name:'小明',age:28},
{name:'小紅',age:39},
{name:'小李',age:40},
{name:'小張',age:30}
]},onLoad(options){
letinfo=this.data.users;
info.forEach(function(item,index){
console.log(index+'姓名:'+info[index].name+'年齡:'+info[index].age);
})
info.forEach((item,index)=>{
console.log(index+'姓名:'++'年齡:'+item.age);})}
forEach()方法用于調(diào)用數(shù)組的每個(gè)元素,并將元素傳遞給回調(diào)函數(shù)。購(gòu)物車(chē)商品數(shù)量
settleCount(){
let
totalPrice=0;
this.data.cartList.forEach(item=>{
if(item.isChecked){
totalPrice+=item.salePrice*item.
quantity
}
})
this.setData({
totalPrice:totalPrice
})
},
在pages/goodsCart/goodsCart.js文件中,不管是減號(hào)還是加號(hào)按鈕,當(dāng)點(diǎn)擊時(shí),都需要進(jìn)行總金額的計(jì)算,所以先完成計(jì)算總金額函數(shù)settleCount,獲得選中的商品,如果商品isChecked屬性為真時(shí),則對(duì)商品的金額進(jìn)行計(jì)算。代碼如下。購(gòu)物車(chē)商品列表
<view
class="oper">
<view
class="reduce"data-id="{{item.id}}"
bindtap="reduceCount"
>-</view>
<input
value="{{item.quantity}}"
type="number"/>
<view
class="add"
data-id="{{item.id}}"
bindtap="addCount">+</view>
<viewclass="btn-del"data-index="{{item.id}}"bindtap="btnDel">刪除</view></view>購(gòu)物車(chē)底部信息
<view
class="total-cart">
<view
class="all">
<checkbox-group
bindchange="checkAll">
<checkbox
value="1"
checked="false"></checkbox>
<text>全選</text>
</checkbox-group>
</view>
<view
class="total-price">
總價(jià):<text
class="price">¥{{totalPrice}}</text>
</view>
<view
class="btn
btn-primary">去結(jié)算</view>
</view>
購(gòu)物車(chē)底部信息包含了三個(gè)內(nèi)容,全選的復(fù)選框,選中的商品總價(jià),結(jié)算按鈕。在pages/goodsCart/goodsCart.wxml文件中,為"total-cart"視圖容器編寫(xiě)頁(yè)面布局代碼:購(gòu)物車(chē)為空狀態(tài)<view
wx:else
class="no-result">
<view
class="no-content">
<image
src="/images/cring.png"></image>
<text>暫無(wú)商品</text>
<button
class="go-list"
bindtap="gotoList">前往添加商品</button>
</view></view>
當(dāng)購(gòu)物車(chē)頁(yè)面為空時(shí),購(gòu)物車(chē)頁(yè)面將定向到商品列表頁(yè)面。購(gòu)物車(chē)為空狀態(tài)
gotoList:function(){
wx.navigateTo({
url:
'/pages/goodsList/goodsList'
})
}
在pages/goodsCart/goodsCart.js文件中,實(shí)現(xiàn)bindtap="gotoList",當(dāng)購(gòu)物車(chē)為空時(shí),跳轉(zhuǎn)到商品列表頁(yè)面選購(gòu)商品。購(gòu)物車(chē)為空狀態(tài)表wx.navigateTo參數(shù)屬性類(lèi)型必填描述urlstring是需要跳轉(zhuǎn)到應(yīng)用內(nèi)非tabBar頁(yè)面的路徑(代碼包路徑),路徑后可以帶參數(shù)。參數(shù)與路徑之間使用?分隔,參數(shù)鍵與參數(shù)值用=相連,不同參數(shù)用&分隔;如'path?key=value&key2=value2'eventsObject否頁(yè)面間通信接口,用于監(jiān)聽(tīng)被打開(kāi)頁(yè)面發(fā)送到當(dāng)前頁(yè)面的數(shù)據(jù)。successfunction否接口調(diào)用成功的回調(diào)函數(shù),eventChannel參數(shù),和被打開(kāi)頁(yè)面進(jìn)行通信failfunction否接口調(diào)用失敗的回調(diào)函數(shù)completefunction否接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行)
wx.navigateTo(Objectobject)保留當(dāng)前頁(yè)面,跳轉(zhuǎn)到應(yīng)用內(nèi)的某個(gè)頁(yè)面。但是不能跳到tabbar頁(yè)面。使用wx.navigateBack可以返回到原頁(yè)面。小程序中頁(yè)面棧最多十層。購(gòu)物車(chē)為空狀態(tài)
wx.navigateTo({
url:'test?id=1',events:{//為指定事件添加一個(gè)監(jiān)聽(tīng)器,獲取被打開(kāi)頁(yè)面?zhèn)魉偷疆?dāng)前頁(yè)面的數(shù)據(jù)
acceptDataFromOpenedPage:function(data){console.log(data)},},success:function(res){//通過(guò)eventChannel向被打開(kāi)頁(yè)面?zhèn)魉蛿?shù)據(jù)res.eventChannel.emit('acceptDataFromOpenerPage',{data:'test'})}})
舉例說(shuō)明wx.navigateTo(Objectobject)的使用。課程思政
黨的二十大報(bào)告提出:“要實(shí)現(xiàn)高水平科技自立自強(qiáng),建設(shè)科技強(qiáng)國(guó)”,同學(xué)們,你覺(jué)得如何加快建設(shè)科技強(qiáng)國(guó),從而實(shí)現(xiàn)高水平科技自立自強(qiáng)?同學(xué)們通過(guò)小組合作、翻閱相關(guān)文件完成以下腦圖,如圖所示。感
謝
觀
看THANK項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)三購(gòu)物車(chē)結(jié)算金額Cartpaymentamount在商城系統(tǒng)中,購(gòu)物車(chē)結(jié)算是必備的一個(gè)環(huán)節(jié)。購(gòu)物車(chē)結(jié)算功能是遍歷每個(gè)模塊中的商品?計(jì)進(jìn)?累加就是購(gòu)物車(chē)結(jié)算總額。本案例提供了一種購(gòu)物結(jié)算方法和購(gòu)物車(chē),根據(jù)用戶獲取已購(gòu)買(mǎi)的商品信息,進(jìn)行購(gòu)物結(jié)算,提高購(gòu)物效率,進(jìn)而提高用戶體驗(yàn)。項(xiàng)目七購(gòu)物車(chē)模塊開(kāi)發(fā)任務(wù)描述單選產(chǎn)品金額計(jì)算在pages/goodsCart/goodsCart.wxml文件中,為checkbox設(shè)置value、checked屬性值。<checkbox
value="{{item.id}}"
checked="{{item.isChecked}}"></checkbox>在pages/goodsCart/goodsCart.js文件中,為單選checkbox-group綁定checkboxChange處理函數(shù)。<checkbox-group
bindchange="checkboxChange"
>此代碼省略</checkbox-group>
單選功能可以改變選中狀態(tài),計(jì)算總價(jià)和商品總數(shù)量,購(gòu)物車(chē)中可以通過(guò)增加或減少按鈕來(lái)修改商品數(shù)量。單選產(chǎn)品金額計(jì)算-every函數(shù)vararray=;varresult=array.every(function(value,index,arr){returnvalue>3;});console.log(result);在這個(gè)例子中,數(shù)組中的第一個(gè)元素1不滿足條件(value>3),因此every函數(shù)立即返回false,不會(huì)繼續(xù)遍歷剩余的元素。
every函數(shù)是JavaScript中的一個(gè)數(shù)組方法,用于檢測(cè)數(shù)組中的所有元素是否都符合指定的條件。every函數(shù)遍歷數(shù)組中的每一個(gè)元素,如果所有元素都滿足回調(diào)函數(shù)規(guī)定的條件,則返回true;如果數(shù)組中有一個(gè)元素不滿足條件,則立即停止遍歷并返回false。單選產(chǎn)品金額計(jì)算
let
isAll=list.every(item=>item.isChecked)
that.setData({
totalPrice:totalPrice,
isCheckAll:isAll
})
使用every()方法檢測(cè)商品的isChecked是否為true,如果為true,則對(duì)商品進(jìn)行統(tǒng)計(jì)。單選產(chǎn)品金額計(jì)算-some()函數(shù)array.some(function(currentValue,index,arr),thisValue)function(currentValue,index,arr)必須?;卣{(diào)函數(shù),數(shù)組中的每個(gè)元素都會(huì)執(zhí)行這個(gè)函數(shù)。currentValue必須
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 賓館住宿合同范本年
- 上海電子信息職業(yè)技術(shù)學(xué)院《蒙古國(guó)文學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度私人車(chē)輛司機(jī)勞動(dòng)合同(含專(zhuān)業(yè)駕駛培訓(xùn))3篇
- 2025年度物流園區(qū)停車(chē)場(chǎng)租賃與運(yùn)營(yíng)合同
- 2025年度宗教活動(dòng)場(chǎng)地租賃合同范本下載3篇
- 2025年度綠色環(huán)保產(chǎn)品推廣攤位租賃合同2篇
- 2025年度生態(tài)園林景觀綠化養(yǎng)護(hù)管理合同范本集錦3篇
- 二零二五版?zhèn)€人消費(fèi)分期付款合同3篇
- 2025年度餐飲企業(yè)特色食材配送與食品安全追溯體系合同3篇
- 山西機(jī)電職業(yè)技術(shù)學(xué)院《中國(guó)古代文學(xué)(3)》2023-2024學(xué)年第一學(xué)期期末試卷
- 名表買(mǎi)賣(mài)合同協(xié)議書(shū)
- COCA20000詞匯音標(biāo)版表格
- 滬教版七年級(jí)數(shù)學(xué)上冊(cè)專(zhuān)題06圖形的運(yùn)動(dòng)(原卷版+解析)
- JTG-T-F20-2015公路路面基層施工技術(shù)細(xì)則
- 光伏發(fā)電站集中監(jiān)控系統(tǒng)通信及數(shù)據(jù)標(biāo)準(zhǔn)
- 建筑垃圾減排及資源化處置措施
- 2024年遼寧石化職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫(kù)附答案
- 中西方校服文化差異研究
- 2024年一級(jí)建造師考試思維導(dǎo)圖-市政
- 高壓架空輸電線路反事故措施培訓(xùn)課件
- 隱私計(jì)算技術(shù)與數(shù)據(jù)安全保護(hù)
評(píng)論
0/150
提交評(píng)論