Vue3仿美团项目--第五天

本文详细描述了一个基于Vue框架的应用中,订单页面的构建,包括头部组件、导航栏、商品卡片、地址管理(路由配置、AddressList和AddressEdit组件的使用、Vuex状态管理)以及编辑、添加和删除地址的处理。同时提到了我的页面的设计,如头部样式和路由跳转功能。
摘要由CSDN通过智能技术生成

5 第五天

主要任务:订单页面,地址管理(添加地址,修改地址,删除地址),我的页面

5.1 订单页面

头部组件:引用公共组件,传递一个title为订单就行了。

导航栏:vant组件里面的Tab 标签页,标题是写死的,在订单组件中定义一个数组,存放这五个标题,遍历这个数组获取标题。

商品卡片:vant里面的Card 卡片组件,显示的内容是已完成的商品,这个数组是储存在vuex中的,在订单组件遍历已完成的订单数组。

商品卡片和空组件:需要在遍历卡片的时候判断当选择的标签是“全部”并且已完成的订单数组不为0的时候显示商品卡片,否则显示空组件。

5.2 地址

在src文件夹下新建地址管理的路由,在main.js里面配置路由, 点击生成订单页面的用户信息跳转到地址管理页面。 (这个点击跳按钮在生成订单组件中)

5.2.1 地址管理页面

头部:引用公共组件绑定title为地址管理。

下面是vant里面的AddressList 地址列表,去掉不需要的部分,颜色根据自己需要修改。

<van-address-list v-model="chosenAddressId"

:list="list" :disabled-list="disabledList" disabled-text="以下地址超出配送范围" default-tag-text="默认" @add="onAdd" @edit="onEdit" />

将我们的用户信息与vant官网中的各个变量对应,通过map方法获取一个新数组,因为我们的信息和vant中的不太一样,所以需要把有几条消息通过${}.${}拼接起来。

将数据转化为布尔值:可以通过boolean()转化,也可以取反再取反强制转化。 

5.2.2 跳转到编辑地址

从地址管理页面点击编辑需要跳转到编辑地址页面,在src文件夹的pages中新建编辑地址组件,在router中配置路由。

编辑地址页面包含头部组件和地址编辑。

头部:引用公共组件中的Header。

地址编辑:使用vant组件里面的AddressEdit 地址编辑,首先在main.js里面引入,然后use一下,然后将官网代码粘贴到编辑地址组件中,有些不需要的属性就删除掉了。

<van-address-edit :area-list="areaList"

show-delete show-set-default show-search-result

search-result="searchResult"

:area-columns-placeholder="['请选择', '请选择', '请选择']"

@save="onSave" @delete="onDelete" @change-detail="onChangeDetail" />

5.2.3 编辑地址显示默认值

点击编辑跳转到编辑地址页面,需要初始显示默认值,通过route.query获取点击编辑按钮的信息数据的id,在vuex的用户地址信息数组中进行匹配,匹配上了,就把该条信息赋值给地址编辑组件,成为初始值。

vant组件中的AddressEdit 地址编辑的API:

address-info地址信息初始值AddressEditInfo{}
5.2.4 vuex定义方法

1)添加地址:如果新传入的信息是默认地址,就把其他的都改为非默认,否则什么都不做。

2)编辑地址:如果把地址改为默认地址,并且一开始默认地址的id与编辑的id不匹配,就把其他的改为默认,否则不操作。

返回的数组是通过,把编辑的信息的id与用户数组的id进行匹配,如果匹配上就添加修改之后的信息,如果没匹配上就传入原来的数据。

3)删除地址:用filter过滤删除的信息,得到除删除以外的信息,返回数组。

需要判断当删除的项为默认项的时候,自动让数组中的index为0的信息成为默认项。

当信息都删除的时候,上面的判断会报错,因此需要在条件添加一条,当用户地址信息数组有长度的时候,才执行。

5.2.5 编辑和添加按钮

需要区分是编辑地址还是添加地址,在地址管理页面定义onAdd和onEdit方法,分别传递add和change两个参数。

1)头部组件:在编辑地址组件中,给头部组件绑定一个计算属性,传入一个type,当接收到的type参数为add的时候,显示编辑地址,否则显示添加地址。

2)添加地址功能:如果当前用户地址信息数组中有数据,那新传入的地址信息的id就是原来数组的最后一项的id+1,如果原来数组没有内容,那新添加的就是第一项,然后commit调用vuex添加地址方法。

3)编辑地址功能:当传递的参数不是add的时候就调用vuex里面的编辑方法。

5.2.5 删除地址

在编辑地址组件中,commit调用vuex里的删除方法。

优化:

引入Toast提示框,当编辑完成或者添加完成或者删除完成都会跳出提示框,然后再设置一个定时器,弹出提示后过一秒钟返回到上一个页面。

5.4 我的页面

5.4.1 头部

引用公共组件,绑定title为我的。

5.4.2 用户信息

背景颜色:从左向右的颜色渐变,通过 background: linear-gradient(90deg,#ffc400,#c7c351); 实现。

头像、昵称、个性签名:纯样式书写.......

5.4.3 列表

ul下有三个li,每个li包含文字和一个小箭头。

给列表绑定点击事件,点击跳转到对应的路由组件中。

  • 13
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泡泡邮递员..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值