3 changed files with 306 additions and 0 deletions
-
14src/pages.json
-
129src/pagesMember/address-form/address-form.vue
-
163src/pagesMember/address/address.vue
@ -0,0 +1,129 @@ |
|||
<template> |
|||
<view class="content"> |
|||
<form> |
|||
<!-- 表单内容 --> |
|||
<view class="form-item"> |
|||
<text class="label">收货人</text> |
|||
<input class="input" placeholder="请填写收货人姓名" value="" /> |
|||
</view> |
|||
<view class="form-item"> |
|||
<text class="label">手机号码</text> |
|||
<input class="input" placeholder="请填写收货人手机号码" value="" /> |
|||
</view> |
|||
<view class="form-item"> |
|||
<text class="label">所在地区</text> |
|||
<picker class="picker" mode="region" value=""> |
|||
<view v-if="false">广东省 广州市 天河区</view> |
|||
<view v-else class="placeholder">请选择省/市/区(县)</view> |
|||
</picker> |
|||
</view> |
|||
<view class="form-item"> |
|||
<text class="label">详细地址</text> |
|||
<input class="input" placeholder="街道、楼牌号等信息" value="" /> |
|||
</view> |
|||
<view class="form-item"> |
|||
<label class="label">设为默认地址</label> |
|||
<switch class="switch" color="#27ba9b" :checked="true" /> |
|||
</view> |
|||
</form> |
|||
</view> |
|||
<!-- 提交按钮 --> |
|||
<button class="button">保存并使用</button> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
import { ref } from 'vue' |
|||
|
|||
// 表单数据 |
|||
const form = ref({ |
|||
receiver: '', // 收货人 |
|||
contact: '', // 联系方式 |
|||
fullLocation: '', // 省市区(前端展示) |
|||
provinceCode: '', // 省份编码(后端参数) |
|||
cityCode: '', // 城市编码(后端参数) |
|||
countyCode: '', // 区/县编码(后端参数) |
|||
address: '', // 详细地址 |
|||
isDefault: 0, // 默认地址,1为是,0为否 |
|||
}) |
|||
|
|||
// 获取页面参数 |
|||
const query = defineProps<{ |
|||
id?: string |
|||
}>() |
|||
|
|||
// 动态设置标题 |
|||
uni.setNavigationBarTitle({ title: query.id ? '修改地址' : '新建地址' }) |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
page { |
|||
background-color: #f4f4f4; |
|||
} |
|||
|
|||
.content { |
|||
margin: 20rpx 20rpx 0; |
|||
padding: 0 20rpx; |
|||
border-radius: 10rpx; |
|||
background-color: #fff; |
|||
|
|||
.form-item, |
|||
.uni-forms-item { |
|||
display: flex; |
|||
align-items: center; |
|||
min-height: 96rpx; |
|||
padding: 25rpx 10rpx 40rpx; |
|||
background-color: #fff; |
|||
font-size: 28rpx; |
|||
border-bottom: 1rpx solid #ddd; |
|||
position: relative; |
|||
margin-bottom: 0; |
|||
|
|||
// 调整 uni-forms 样式 |
|||
.uni-forms-item__content { |
|||
display: flex; |
|||
} |
|||
|
|||
.uni-forms-item__error { |
|||
margin-left: 200rpx; |
|||
} |
|||
|
|||
&:last-child { |
|||
border: none; |
|||
} |
|||
|
|||
.label { |
|||
width: 200rpx; |
|||
color: #333; |
|||
} |
|||
|
|||
.input { |
|||
flex: 1; |
|||
display: block; |
|||
height: 46rpx; |
|||
} |
|||
|
|||
.switch { |
|||
position: absolute; |
|||
right: -20rpx; |
|||
transform: scale(0.8); |
|||
} |
|||
|
|||
.picker { |
|||
flex: 1; |
|||
} |
|||
|
|||
.placeholder { |
|||
color: #808080; |
|||
} |
|||
} |
|||
} |
|||
|
|||
.button { |
|||
height: 80rpx; |
|||
margin: 30rpx 20rpx; |
|||
color: #fff; |
|||
border-radius: 80rpx; |
|||
font-size: 30rpx; |
|||
background-color: #27ba9b; |
|||
} |
|||
</style> |
@ -0,0 +1,163 @@ |
|||
<template> |
|||
<view class="viewport"> |
|||
<!-- 地址列表 --> |
|||
<scroll-view class="scroll-view" scroll-y> |
|||
<view v-if="true" class="address"> |
|||
<view class="address-list"> |
|||
<!-- 收货地址项 --> |
|||
<view class="item"> |
|||
<view class="item-content"> |
|||
<view class="user"> |
|||
黑马小王子 |
|||
<text class="contact">13111111111</text> |
|||
<text v-if="true" class="badge">默认</text> |
|||
</view> |
|||
<view class="locate">广东省 广州市 天河区 黑马程序员</view> |
|||
<navigator |
|||
class="edit" |
|||
hover-class="none" |
|||
:url="`/pagesMember/address-form/address-form?id=1`" |
|||
> |
|||
修改 |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
<!-- 收货地址项 --> |
|||
<view class="item"> |
|||
<view class="item-content"> |
|||
<view class="user"> |
|||
黑马小公主 |
|||
<text class="contact">13222222222</text> |
|||
<text v-if="false" class="badge">默认</text> |
|||
</view> |
|||
<view class="locate">北京市 北京市 顺义区 黑马程序员</view> |
|||
<navigator |
|||
class="edit" |
|||
hover-class="none" |
|||
:url="`/pagesMember/address-form/address-form?id=2`" |
|||
> |
|||
修改 |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view v-else class="blank">暂无收货地址</view> |
|||
</scroll-view> |
|||
<!-- 添加按钮 --> |
|||
<view class="add-btn"> |
|||
<navigator hover-class="none" url="/pagesMember/address-form/address-form"> |
|||
新建地址 |
|||
</navigator> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script setup lang="ts"> |
|||
// |
|||
</script> |
|||
|
|||
<style lang="scss"> |
|||
page { |
|||
height: 100%; |
|||
overflow: hidden; |
|||
} |
|||
|
|||
/* 删除按钮 */ |
|||
.delete-button { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
width: 50px; |
|||
height: 100%; |
|||
font-size: 28rpx; |
|||
color: #fff; |
|||
border-radius: 0; |
|||
padding: 0; |
|||
background-color: #cf4444; |
|||
} |
|||
|
|||
.viewport { |
|||
display: flex; |
|||
flex-direction: column; |
|||
height: 100%; |
|||
background-color: #f4f4f4; |
|||
|
|||
.scroll-view { |
|||
padding-top: 20rpx; |
|||
} |
|||
} |
|||
|
|||
.address { |
|||
padding: 0 20rpx; |
|||
margin: 0 20rpx; |
|||
border-radius: 10rpx; |
|||
background-color: #fff; |
|||
|
|||
.item-content { |
|||
line-height: 1; |
|||
padding: 40rpx 10rpx 38rpx; |
|||
border-bottom: 1rpx solid #ddd; |
|||
position: relative; |
|||
|
|||
.edit { |
|||
position: absolute; |
|||
top: 36rpx; |
|||
right: 30rpx; |
|||
padding: 2rpx 0 2rpx 20rpx; |
|||
border-left: 1rpx solid #666; |
|||
font-size: 26rpx; |
|||
color: #666; |
|||
line-height: 1; |
|||
} |
|||
} |
|||
|
|||
.item:last-child .item-content { |
|||
border: none; |
|||
} |
|||
|
|||
.user { |
|||
font-size: 28rpx; |
|||
margin-bottom: 20rpx; |
|||
color: #333; |
|||
|
|||
.contact { |
|||
color: #666; |
|||
} |
|||
|
|||
.badge { |
|||
display: inline-block; |
|||
padding: 4rpx 10rpx 2rpx 14rpx; |
|||
margin: 2rpx 0 0 10rpx; |
|||
font-size: 26rpx; |
|||
color: #27ba9b; |
|||
border-radius: 6rpx; |
|||
border: 1rpx solid #27ba9b; |
|||
} |
|||
} |
|||
|
|||
.locate { |
|||
line-height: 1.6; |
|||
font-size: 26rpx; |
|||
color: #333; |
|||
} |
|||
} |
|||
|
|||
.blank { |
|||
margin-top: 300rpx; |
|||
text-align: center; |
|||
font-size: 32rpx; |
|||
color: #888; |
|||
} |
|||
|
|||
.add-btn { |
|||
height: 80rpx; |
|||
text-align: center; |
|||
line-height: 80rpx; |
|||
margin: 30rpx 20rpx; |
|||
color: #fff; |
|||
border-radius: 80rpx; |
|||
font-size: 30rpx; |
|||
background-color: #27ba9b; |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue