You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
289 lines
7.1 KiB
289 lines
7.1 KiB
<template> |
|
<view class="body-background"></view> |
|
<u-navbar |
|
:title="title" |
|
:auto-back="true" |
|
left-icon-size="40rpx" |
|
:safe-area-inset-top="true" |
|
:placeholder="true" |
|
bgColor="#fff" |
|
></u-navbar> |
|
<u-row :custom-style="{padding:'16rpx 26rpx'}"> |
|
<u-col :custom-style="{backgroundColor:'#ffffff',borderRadius:'10rpx',padding:'30rpx 40rpx'}"> |
|
<u-form |
|
errorType="toast" |
|
labelPosition="left" |
|
:model="model" |
|
:rules="rules" |
|
ref="addrForm" |
|
labelWidth="200rpx" |
|
> |
|
<u-form-item |
|
:custom-style="{ |
|
padding:'36rpx 0' |
|
}" |
|
label="姓名" |
|
prop="address.name" |
|
borderBottom |
|
> |
|
<u-input |
|
fontSize="28" |
|
placeholder="请填写您的真实姓名" |
|
v-model="model.address.name" |
|
border="none" |
|
></u-input> |
|
</u-form-item> |
|
<u-form-item |
|
:custom-style="{ |
|
padding:'36rpx 0' |
|
}" |
|
label="手机号码" |
|
prop="address.phone" |
|
borderBottom |
|
> |
|
<u-input |
|
fontSize="28" |
|
placeholder="请输入" |
|
v-model="model.address.phone" |
|
border="none" |
|
></u-input> |
|
</u-form-item> |
|
<u-form-item |
|
:custom-style="{ |
|
padding:'36rpx 0' |
|
}" |
|
label="地区" |
|
prop="address.area" |
|
borderBottom |
|
> |
|
<u-input |
|
fontSize="28" |
|
placeholder="请选择地区" |
|
v-model="model.address.area" |
|
border="none" |
|
></u-input> |
|
</u-form-item> |
|
<u-form-item |
|
:custom-style="{ |
|
padding:'36rpx 0' |
|
}" |
|
label="详细地址" |
|
prop="address.address" |
|
borderBottom |
|
> |
|
<u-input |
|
fontSize="28" |
|
placeholder="请输入详细收货地址" |
|
v-model="model.address.address" |
|
border="none" |
|
></u-input> |
|
</u-form-item> |
|
<u-form-item |
|
:custom-style="{ |
|
padding:'36rpx 0' |
|
}" |
|
label="设为默认收货地址" |
|
prop="address.is_default" |
|
labelWidth="260rpx" |
|
> |
|
<u-switch |
|
size="32" |
|
:custom-style="{marginLeft:'auto'}" |
|
v-model="model.address.is_default" |
|
activeColor="#FF9545" |
|
inactiveColor="#DDDDDD" |
|
:inactiveValue="0" |
|
:activeValue="1" |
|
> |
|
|
|
</u-switch> |
|
</u-form-item> |
|
|
|
</u-form> |
|
</u-col> |
|
</u-row> |
|
<view class="foot-button border-box"> |
|
<u-button |
|
type="primary" |
|
text="保存" |
|
shape="circle" |
|
:custom-style="{ |
|
color:'#020B18', |
|
backgroundColor:'#FF9545', |
|
border:'none', |
|
fontSize:'36', |
|
fontWeight:'400', |
|
height:'80rpx' |
|
}" |
|
@click="submit" |
|
></u-button> |
|
</view> |
|
</template> |
|
|
|
<script> |
|
import { |
|
imghost |
|
} from '@/config/host.js' |
|
import MzSubsection from '@/components/MzSubsection/Index.vue'; |
|
import api from '@/utils/functions.js'; |
|
import {userAddrAdd, userAddrEdit, userDetail, userEdit} from "@/api/user"; |
|
|
|
export default { |
|
components: { |
|
MzSubsection |
|
}, |
|
data() { |
|
return { |
|
switchValue:false, |
|
model: { |
|
address: { |
|
name:'', |
|
phone: '', |
|
area:'', |
|
address:'', |
|
is_default:0, |
|
}, |
|
}, |
|
rules: { |
|
'address.name': { |
|
type: 'string', |
|
required: true, |
|
message: '请填写姓名', |
|
trigger: ['blur', 'change'] |
|
}, |
|
'address.phone': { |
|
type: 'string', |
|
required: true, |
|
message: '请填写电话', |
|
trigger: ['blur', 'change'] |
|
}, |
|
'address.area': { |
|
type: 'string', |
|
required: true, |
|
message: '请填写地区', |
|
trigger: ['blur', 'change'] |
|
}, |
|
'address.address': { |
|
type: 'string', |
|
required: true, |
|
message: '请填写详细地址', |
|
trigger: ['blur', 'change'] |
|
}, |
|
}, |
|
value:1, |
|
options: [ |
|
{ |
|
text: '删除', |
|
style: { |
|
backgroundColor: '#FC4956' |
|
} |
|
} |
|
], |
|
title: '添加收货地址', |
|
loading: true, |
|
staticImage: { |
|
bg: imghost + '/static/image/BG.png', |
|
newIcon: imghost + '/static/image/new-icon.png', |
|
}, |
|
isTop: false, |
|
lists: [], |
|
size: { |
|
height: 500, |
|
} |
|
} |
|
}, |
|
onLoad(option) { |
|
if(option.detail !== '' && option.detail){ |
|
|
|
this.model.address = JSON.parse(option.detail); |
|
console.log(this.model.address) |
|
} |
|
}, |
|
computed: { |
|
api() { |
|
return api |
|
}, |
|
sectionStyle() { |
|
const style = {}; |
|
style.padding = '0 26rpx'; |
|
style.position = 'sticky'; |
|
style.zIndex = '9999'; |
|
style.top = api.navHeight().systemBarHeight + 'px' |
|
return style; |
|
}, |
|
listHeight() { |
|
let that = this; |
|
let height; |
|
let info = uni.createSelectorQuery().in(this).select('.subsection'); |
|
info.boundingClientRect(function (data) { |
|
that.size.height = data.height; |
|
}).exec(function (res) { |
|
|
|
}); |
|
// that.size.height = (api.navHeight().windowHeight - height); |
|
} |
|
}, |
|
methods: { |
|
chatDetail(item) { |
|
wx.navigateTo({ |
|
url: '/pages/ChatDetail/index?id=' + item.id |
|
}); |
|
}, |
|
checkSection(index) { |
|
this.current = index; |
|
}, |
|
scrollToLower() { |
|
|
|
}, |
|
getAddrDetail(id){ |
|
|
|
}, |
|
submit(){ |
|
this.$refs.addrForm.validate().then(res => { |
|
let result; |
|
console.log(this.model) |
|
if(this.model.address.id !== '' && this.model.address.id !== undefined){ |
|
result = userAddrEdit(this.model.address); |
|
}else{ |
|
result = userAddrAdd(this.model.address); |
|
} |
|
|
|
result.then((res) => { |
|
if(res.code === 200){ |
|
uni.$u.toast((this.model.address.id !== '')?'修改成功':'创建成功') |
|
let pages = getCurrentPages(); // 当前页面 |
|
let beforePage = pages[pages.length - 2]; // 上一页 |
|
uni.navigateBack({ |
|
success: function() { |
|
beforePage.onLoad(); // 执行上一页的onLoad方法 |
|
} |
|
}); |
|
}else{ |
|
uni.$u.toast(res.msg) |
|
} |
|
}) |
|
|
|
|
|
}).catch(errors => { |
|
uni.$u.toast(errors[0].message) |
|
}) |
|
} |
|
}, |
|
onPageScroll(res) { |
|
if (res.scrollTop <= 20) { |
|
uni.$emit('isTop', true); |
|
} else { |
|
uni.$emit('isTop', false); |
|
} |
|
}, |
|
created() { |
|
this.listHeight(); |
|
// this.pagePadding = (api.navHeight().navPaddingTop + |
|
// api.navHeight().navHeight + (api.navHeight().headerPadding * 2)) |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
@import './components/edit.scss'; |
|
</style> |