用微信小程序写一个收货地址和新增地址功能
时间: 2023-12-27 13:02:06 浏览: 213
首先,我们需要创建两个页面,一个是展示收货地址的页面,一个是新增收货地址的页面。
在展示收货地址的页面,我们可以使用 `wx.request` 方法从后端获取用户的收货地址列表,然后通过 `wx:for` 和 `block` 标签进行渲染。
```html
<!-- pages/addressList/addressList.wxml -->
<view class="container">
<!-- 循环渲染用户的收货地址列表 -->
<block wx:for="{{addressList}}" wx:key="index">
<view class="address-item">
<view class="address-info">
<text class="name">{{item.name}}</text>
<text class="phone">{{item.phone}}</text>
</view>
<view class="address-detail">{{item.detail}}</view>
</view>
</block>
</view>
```
在 .js 文件中,我们需要定义 `data` 对象用来存储用户的收货地址列表,并在 `onLoad` 方法中调用后端接口获取地址列表。
```javascript
// pages/addressList/addressList.js
Page({
data: {
addressList: []
},
onLoad: function() {
// 调用后端接口获取用户的收货地址列表
wx.request({
url: 'https://example.com/api/address/list',
success: res => {
this.setData({
addressList: res.data
})
}
})
}
})
```
在新增收货地址的页面,我们可以使用 `form` 表单和 `input` 标签来让用户输入收货地址信息,然后在提交表单时调用后端接口保存收货地址。
```html
<!-- pages/addAddress/addAddress.wxml -->
<view class="container">
<form bindsubmit="handleSubmit">
<view class="form-item">
<label class="label">收货人姓名</label>
<input name="name" class="input" placeholder="请输入收货人姓名" required />
</view>
<view class="form-item">
<label class="label">联系电话</label>
<input name="phone" class="input" placeholder="请输入联系电话" type="number" required />
</view>
<view class="form-item">
<label class="label">收货地址</label>
<input name="detail" class="input" placeholder="请输入收货地址" required />
</view>
<button class="btn-submit" form-type="submit">保存</button>
</form>
</view>
```
在 .js 文件中,我们需要定义 `handleSubmit` 方法来处理表单提交事件,并在该方法中调用后端接口保存收货地址。
```javascript
// pages/addAddress/addAddress.js
Page({
handleSubmit: function(e) {
const formData = e.detail.value
// 调用后端接口保存收货地址
wx.request({
url: 'https://example.com/api/address/save',
method: 'POST',
data: formData,
success: res => {
wx.showToast({
title: '保存成功',
icon: 'success'
})
setTimeout(() => {
wx.navigateBack()
}, 1500)
}
})
}
})
```
最后,在 app.json 文件中定义页面路径和页面标题。
```json
{
"pages": [
{
"path": "pages/addressList/addressList",
"name": "addressList",
"navigationBarTitleText": "收货地址"
},
{
"path": "pages/addAddress/addAddress",
"name": "addAddress",
"navigationBarTitleText": "新增收货地址"
}
]
}
```
这样,我们就完成了一个简单的收货地址展示和新增功能。需要注意的是,该代码只是示例代码,并不能直接运行,需要根据自己的实际情况进行修改。
阅读全文