UNIAPP优购商城购物车功能
目录
一、购物车页面
(1)、qxc-address(收货地址)
2、qxc-goods(购物车显示商品信息)
3、qxc-settle(购物车结算页面)
4、购物车页面
前言:由于uniapp拥有高效开发,性能优秀,功能扩展灵活等优点,吸引了无数电商企业使用uniapp一次开发多个平台应用和部署,而今天要讲的,就是多渠道经营的卖家要开发商城中不可或缺的功能:购物车
那么首先,我们需要写出地址框,购物车标题,购物车统计,以及购物车为空时的页面
一、购物车页面
购物车 购物车空空如也
以上代码是一个 UniApp 页面的模板代码,使用了条件渲染来展示购物车的内容。根据 `cart` 数组的长度,当购物车不为空时,会渲染购物车的地址框、标题、列表和统计部分;当购物车为空时,会显示一个空购物车的提示信息。
具体来看:
`
`
`
`
这段代码使用了多个自定义组件(例如 `qxc-address`、`qxc-goods` 和 `qxc-settle`),
(1)、qxc-address(收货地址)
收货人:{{address.userName}} 电话:{{address.telNumber}} 收货地址:{{allAddress}}
1.在标签内,首先定义了一个名为address的
2. 在
3. 如果address.userName不存在,则显示一个
在
用于购物车结算页面的展示和操作:
在template部分,首先是一个view标签,class为"cart-tool",用于包裹以下的结算工具栏内容。其中,view标签下有三个子view标签,分别是:
1. class为"tool-selectAll"的view标签,用于显示全选的复选框。该复选框使用了checkbox组件,并通过checkbox-group实现了全选功能。
2. class为"total-price-box"的view标签,用于显示合计价格。其中,class为"total-price"的view标签用于显示合计文案,class为"price-text"的text标签用于显示具体的价格。另外,还有一个class为"runway-text"的view标签用于显示包含运费的文案。
3. class为"settle"的view标签,用于显示结算按钮。按钮的文案通过props传入,显示的内容为"结算"或"支付",同时显示购物车中选中的商品数量。
在script部分,export default导出了一个对象,其中包含了组件的相关配置和逻辑:
1. name属性为"qxc-settle",用于组件的命名。
2. data方法返回一个空对象,用于存放组件的数据。
3. props属性定义了组件的props,包括cartData、buttonText和showAllCheck。其中,cartData为购物车的数据,buttonText为结算按钮的文案,showAllCheck表示是否显示全选的复选框。
4. methods属性定义了组件的方法。其中,gotopay方法用于处理点击结算按钮的逻辑。在gotopay方法中,首先判断按钮文案,如果为"结算",则会判断是否选择了收货地址和商品;如果为"支付",则会判断是否存在token。根据判断结果进行相应的跳转操作。
5. changAllCheck方法用于处理全选复选框的变化事件,通过$emit方法将变化的值传递给父组件。
6. computed属性定义了组件的计算属性。其中,allChecked计算属性用于判断是否全选,通过检查cartData中的每个元素的checked属性来判断;totalPrice计算属性用于计算选中商品的合计价格;totalSum计算属性用于计算选中商品的数量。
总结:这是一个UniApp的购物车结算组件,包含了全选、合计价格和结算按钮的展示和操作。通过props传入购物车数据和按钮文案,通过方法和计算属性处理按钮点击和数据的变动。
4、购物车页面
回到购物车页面中,我们还有剩余的script代码未完成
这段代码是一个UniApp的页面组件,用于展示购物车的功能。以下是代码的功能说明:
1. data中定义了两个数据属性:cart用于存储购物车商品列表,address用于存储收货地址信息。
2. onShow函数在页面展示时被调用,用于从缓存中获取购物车和地址数据。
3. methods中定义了几个方法:
- changAllCheck方法用于全选或取消全选购物车商品。
- changChacked方法用于修改购物车中某个商品的选中状态。
- changeNum方法用于修改购物车中某个商品的数量,如果数量为0则从购物车中移除该商品。
最后,使用export default将组件导出,以供其他页面使用。
这样,我们的购物车页面代码就完成了。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
