<template>
|
|
<view class="redact-address">
|
|
<view class="redact-address-title">{{title}}</view>
|
|
|
|
<uv-form label-width="210rpx"
|
|
:model="addressDetail"
|
|
ref="form" :rules="rules">
|
|
<!-- <uv-field v-model="addressDetail.name" name="联系人" label="联系人" placeholder="请输入联系人姓名"
|
|
:rules="[{ required: true, message: '请填写联系人' }]" />
|
|
|
|
<uv-field v-model="addressDetail.phone" name="手机号" label="手机号" placeholder="请输入手机号"
|
|
:rules="[{ required: true, message: '请填写手机号' }]" />
|
|
|
|
<uv-field @click="$emit('clickAddressIcon')" v-model="addressDetail.address" name="所在地区" label="所在地区" placeholder="选择省市区街道"
|
|
:rules="[{ required: true, message: '请选择省市区街道' }]">
|
|
<template #right-icon>
|
|
<image @click.stop="$emit('clickAddressIcon')" src="../static/address/selectIcon.png" mode="aspectFit"></image>定位
|
|
</template>
|
|
</uv-field>
|
|
|
|
<uv-field v-model="addressDetail.addressDetail" name="详细地址" label="详细地址" placeholder="小区楼栋、门牌号、村等"
|
|
:rules="[{ required: true, message: '请填写详细地址' }]" /> -->
|
|
|
|
<uv-form-item label="联系人"
|
|
prop="name"
|
|
>
|
|
<uv-input v-model="addressDetail.name"
|
|
placeholder="请输入联系人姓名"
|
|
border="none">
|
|
</uv-input>
|
|
</uv-form-item>
|
|
|
|
<uv-form-item label="手机号"
|
|
prop="phone"
|
|
>
|
|
<uv-input v-model="addressDetail.phone"
|
|
placeholder="请输入手机号"
|
|
border="none">
|
|
</uv-input>
|
|
</uv-form-item>
|
|
|
|
<uv-form-item label="所在地区"
|
|
prop="address"
|
|
>
|
|
<uv-input
|
|
v-model="addressDetail.address"
|
|
placeholder="请选择所在地区"
|
|
border="none">
|
|
</uv-input>
|
|
<template #right>
|
|
<view style="padding-right: 40rpx;color: #FBAB32;"
|
|
@click.stop="$emit('clickAddressIcon')">
|
|
<image
|
|
src="../../static/address/selectIcon.png"
|
|
mode="aspectFit"></image>定位
|
|
</view>
|
|
</template>
|
|
</uv-form-item>
|
|
|
|
<uv-form-item label="详细地址"
|
|
prop="addressDetail"
|
|
>
|
|
<uv-input v-model="addressDetail.addressDetail"
|
|
placeholder="请输入详细地址"
|
|
border="none">
|
|
</uv-input>
|
|
</uv-form-item>
|
|
</uv-form>
|
|
|
|
<view @click="onSubmit" class="save">{{ addressDetail.id ? '修改地址' : '新增地址'}}</view>
|
|
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
rules: {
|
|
'name': {
|
|
type: 'string',
|
|
required: true,
|
|
message: '请填写姓名',
|
|
trigger: ['blur', 'change']
|
|
},
|
|
'addressDetail': {
|
|
type: 'string',
|
|
max: 50,
|
|
required: true,
|
|
message: '请输入详细地址',
|
|
trigger: ['blur', 'change']
|
|
},
|
|
},
|
|
}
|
|
},
|
|
props : {
|
|
addressDetail : {
|
|
type : Object,
|
|
default : function(){ return {} }
|
|
},
|
|
title : {
|
|
type : String,
|
|
default : '新增地址'
|
|
}
|
|
},
|
|
methods: {
|
|
//新增和修改地址
|
|
onSubmit() {
|
|
|
|
this.$refs.form.validate().then(res => {
|
|
console.log(res);
|
|
uni.showToast({
|
|
icon: 'success',
|
|
title: '校验通过'
|
|
})
|
|
}).catch(errors => {
|
|
uni.showToast({
|
|
icon: 'error',
|
|
title: '校验失败'
|
|
})
|
|
})
|
|
// this.$emit('saveOrUpdate', this.addressDetail)
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.redact-address {
|
|
box-sizing: border-box;
|
|
|
|
.redact-address-title {
|
|
height: 80rpx;
|
|
line-height: 80rpx;
|
|
font-size: 30rpx;
|
|
color: #333333;
|
|
font-weight: 600;
|
|
}
|
|
|
|
.save {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 90%;
|
|
height: 80rpx;
|
|
border-radius: 40rpx;
|
|
color: white;
|
|
font-size: 28rpx;
|
|
margin: 0rpx auto;
|
|
background: $uni-color;
|
|
margin-top: 150rpx;
|
|
}
|
|
|
|
image {
|
|
width: 25rpx;
|
|
height: 25rpx;
|
|
}
|
|
|
|
|
|
//修改组件默认样式
|
|
.uv-form {
|
|
padding: 30rpx 0rpx;
|
|
}
|
|
|
|
&::v-deep .uv-cell {
|
|
padding: 0rpx 0rpx;
|
|
font-size: 26rpx;
|
|
|
|
&::after {
|
|
border: none !important;
|
|
}
|
|
|
|
.uv-field__label {
|
|
display: flex;
|
|
align-items: center;
|
|
height: 80rpx;
|
|
|
|
}
|
|
|
|
.uv-field__control,
|
|
.uv-field__right-icon {
|
|
height: 80rpx;
|
|
font-size: 26rpx;
|
|
border-bottom: 2rpx solid #cbc8c8;
|
|
}
|
|
|
|
.uv-field__right-icon {
|
|
display: flex;
|
|
align-items: center;
|
|
height: 78rpx;
|
|
color: #5FCC9F;
|
|
}
|
|
|
|
.uv-cell__value {
|
|
height: 120rpx;
|
|
}
|
|
|
|
}
|
|
|
|
&::v-deep .uv-field__error-message {
|
|
color: #5AC796;
|
|
font-size: 20rpx;
|
|
margin-top: 10rpx;
|
|
}
|
|
}
|
|
</style>
|