在商品列表页
index.wxml
中,给下单按钮绑定一个添加购物车的事件
addCart
,使用
catchtap
是不会冒泡,同时传入
data-item
,当前的商品,代码如下所示:
1
<view class="order" catchtap="addCart" data-item="{{ item }}">下单</view>
在
index.js
中,在
Page
中,定义
addCart
事件。对此,可以分析一下当点击按钮以后添加购物车的逻辑:
拿到点击要添加入到购物车的商品
判断该商品在不在购物车里面
如果不在, 把该商品添加到购物车里面, 并且新加一个字段
num = 1
如果在,修改改商品的
num
值 累加
在
addCart
中,第一步拿到该商品,通过
e.currentTarget.dataset
获取。第二步,判断该商品在不在购物车里面,根据
_id
尝试从购物车里面获取数据,看能不能获取的到。使用
try...catch
,在有值的情况下,把购物车里面的该商品的
num
值累加
,并且进行下单成功的提示;在没有值,把商品添加到购物车里面,并且进行下单成功的提示,最后调用
setTabBar()
方法修改底部购物车
默认的ecshop中只能单件点击“添加到购物车”,没有办法批量添加,其实很简单,我们68ecshop可以用函数 addToCart()来实现。下面我们就来讲一下具体的 *** 作方法。
第一,修改商品列表模板 /themes/default/library/goods_list.lbi,在每个商品的前面增加一个复选框按钮。在74行的样子增加以下的代码:
<input type="checkbox" value="{$goods.goods_id}" />
第二,随便找个位置,增加可以添加选定商品到购物车的链接。代码如下:
<a href="javascript:addSelectedToCart('goodslist')">Add selected products to cart</a>
第三,添加循环将选定商品加入购物车的函数,打开/js/common.js文件,在第36行,加入下面的代码:
/*
*添加选定商品到购物车
*/
function addSelectedToCart(p)
{
for ( var i=0i<document.getElementById(p).elements.lengthi++ )
{
var e = document.getElementById(p).elements[i]
if ( (e.type=='checkbox')&&(!e.disabled) )
{
if ( e.checked )
{
addToCart(e.value)
}
}
}
}
import java.awt.*import java.awt.event.*
class ShopFrame extends Frame implements ActionListener
{ Label label1,label2,label3,label4
Button button1,button2,button3,button4,button5
TextArea text
Panel panel1,panel2
static float sum=0.0f
ShopFrame(String s)
{ super(s)
setLayout(new BorderLayout())
label1=new Label("面纸:3元",Label.LEFT)
label2=new Label("钢笔:5元",Label.LEFT)
label3=new Label("书:10元",Label.LEFT)
label4=new Label("袜子:8元",Label.LEFT)
button1=new Button("加入购物车")
button2=new Button("加入购物车")
button3=new Button("加入购物车")
button4=new Button("加入购物车")
button5=new Button("查看购物车")
text=new TextArea("商品有:"+"\n",5,10)
text.setEditable(false)
addWindowListener(new WindowAdapter()
{ public void windowClosing(WindowEvent e)
{ System.exit(0)
}
}
)
button1.addActionListener(this)
button2.addActionListener(this)
button3.addActionListener(this)
button4.addActionListener(this)
button5.addActionListener(this)
panel1=new Panel()
panel2=new Panel()
panel1.add(label1)
panel1.add(button1)
panel1.add(label2)
panel1.add(button2)
panel1.add(label3)
panel1.add(button3)
panel1.add(label4)
panel1.add(button4)
panel2.setLayout(new BorderLayout())
panel2.add(button5,BorderLayout.NORTH)
panel2.add(text,BorderLayout.SOUTH)
this.add(panel1,BorderLayout.CENTER)
this.add(panel2,BorderLayout.SOUTH)
setBounds(100,100,350,250)
setVisible(true)
validate()
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ text.append("一个面纸、")
sum=sum+3
}
else if(e.getSource()==button2)
{ text.append("一只钢笔、")
sum=sum+5
}
else if(e.getSource()==button3)
{ text.append("一本书、")
sum=sum+10
}
else if(e.getSource()==button4)
{ text.append("一双袜子、")
sum=sum+8
}
else if(e.getSource()==button5)
{
text.append("\n"+"总价为:"+"\n"+sum)
}
}
}
public class Shopping {
public static void main(String[] args) {
new ShopFrame("购物车")
}
}
我没用Swing可能显示不出来你的效果。不满意得话我在给你编一个。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)