| 
					
				 | 
			
			
				@@ -0,0 +1,446 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<template>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	<view class="app-container">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">收货人</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right input"><input type="text" placeholder="请输入收货人" v-model="formData.name"></view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">手机号码</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right input"><input type="number" placeholder="请输入手机号码" v-model="formData.phone"></view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">所在地区</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<picker @change="onRegionChange" v-model="regionValue" mode="region">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<view class="picker">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<view v-if="regionValue.length">{{regionValue[0] + '/' +regionValue[1] + '/' +regionValue[2]}}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<view v-else style="color: #666666;">请选择省/市/区</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<image src="@/static/icon/right.png"></image>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</picker>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">所在街道</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<picker @change="onStreetChange" :value="streetValue" :range="streetList" range-key="name"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					:disabled="!regionValue[2]">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<view class="picker">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<view v-if="streetValue !== ''">{{streetList[streetValue].name}}</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<view v-else style="color: #666666;">请选择街道</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						<image src="@/static/icon/right.png"></image>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</picker>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">收货地址</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right textarea">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<textarea placeholder="请输入收货地址" auto-height v-model="formData.address"></textarea>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<view class="r" @tap="getLocation">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					<image src="@/static/icon/address2.png"></image>定位
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">门牌号</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right input"><input type="text" placeholder="请输入门牌号" maxlength="15" v-model="formData.houseNo">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="row">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="title">设为默认地址</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			<view class="right default">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				<switch @change="switchChange" color="#FF3F42" v-model="formData.defaultAddr"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					:checked="formData.defaultAddr" style="transform:scale(0.7)" />
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="button red" @tap="submitForm">保存</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<view class="button white" v-if="editId" @tap="isDialog = true">删除</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		<modal-dialog showText="确定要删除该地址吗?" :isShowDialog="isDialog" @cancel="isDialog = false"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			@confirm="confirmDelete"></modal-dialog>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	</view>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</template>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		mapState
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} from 'vuex';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		getArea
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} from '@/utils/utils.js';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	import modalDialog from '@/components/modalDialog.vue';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	export default {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		components: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			modalDialog
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		data() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				editId: null, // 编辑的id
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				isDialog: false, // 是否显示删除弹窗
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				regionValue: [], // 省市区值
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				streetList: [],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				streetValue: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				formData: { // 表单数据
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					name: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					phone: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					province: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					city: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					area: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					street: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					address: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					houseNo: '',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					defaultAddr: false,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				canClickSave: true, // 能否点击提交
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		computed: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			...mapState(['userInfo', 'isLogin', 'userId'])
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		onLoad({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			id,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			addressData
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			this.editId = id;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (id) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				uni.setNavigationBarTitle({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					title: '编辑收货地址'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.getAddressData();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			if (addressData) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				addressData = JSON.parse(addressData);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					name: addressData.name,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					phone: addressData.phone,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					province: addressData.province,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					city: addressData.city,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					area: addressData.area,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					address: addressData.address,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					houseNo: addressData.houseNo,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					defaultAddr: addressData.defaultAddr,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.regionValue = [addressData.province, addressData.city, addressData.area];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.getStreetList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		methods: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 获取地址信息
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			getAddressData() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.$axios({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url: '/user/address/detail',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					method: 'get',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						userAddressId: this.editId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}).then(res => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.formData = {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						name: res.data.name,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						phone: res.data.phone,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						province: res.data.province,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						city: res.data.city,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						area: res.data.area,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						address: res.data.address,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						houseNo: res.data.houseNo,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						defaultAddr: res.data.defaultAddr,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.regionValue = [res.data.province, res.data.city, res.data.area];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.getStreetList(res.data.street);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 地图选点
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			getLocation() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let that = this;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				uni.chooseLocation({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					success: function(res) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						let SSQ_value = getArea(res.address);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if (!SSQ_value.Province) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							SSQ_value.Province = SSQ_value.City;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.formData.province = SSQ_value.Province;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.formData.city = SSQ_value.City;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.formData.area = SSQ_value.Country;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						let regionValue = [];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						regionValue.push(SSQ_value.Province);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						regionValue.push(SSQ_value.City);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						regionValue.push(SSQ_value.Country);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.regionValue = regionValue;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.formData.address = res.address.slice(res.address.indexOf(SSQ_value.Country) +
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							SSQ_value.Country.length) + res.name;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.getStreetList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.streetValue = '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						that.formData.street = '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					fail: function(res) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						uni.getSetting({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							success: function(res) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								if (!res.authSetting['scope.userLocation']) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									uni.showModal({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										title: '是否授权当前位置',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										content: '需要获取您的地理位置,请确认授权,否则地图功能将无法使用',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										success(tip) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											if (tip.confirm) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+												uni.openSetting({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+													success: function(data) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+														if (data.authSetting[
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+																"scope.userLocation"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+																] === true) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+															that.$successToast(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+																'授权成功');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+															setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+																that
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+															.getLocation();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+															}, 1000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+														}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+													}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+												})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+											}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+										}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+									})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+								}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				});
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 切换省市区
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			onRegionChange(e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.log(e.detail);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.regionValue = e.detail.value;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData.province = this.regionValue[0];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData.city = this.regionValue[1];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData.area = this.regionValue[2];
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.getStreetList();
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.streetValue = '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 获取街道列表
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			getStreetList(street) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.$axios({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url: '/common/street',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					method: 'get',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						province: this.regionValue[0],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						city: this.regionValue[1],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						area: this.regionValue[2],
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}).then(res => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.streetList = res.data;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (street) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						let index = this.findElem(this.streetList, 'name', street);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						this.streetValue = index;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						this.formData.street = street;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 切换街道
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			onStreetChange(e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.log(e.detail.value);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.streetValue = e.detail.value;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData.street = this.streetList[this.streetValue].name;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			findElem(array, attr, val) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				for (var i = 0; i < array.length; i++) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					if (array[i][attr] == val) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						return i; //返回当前索引值
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return -1;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			switchChange(e) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				console.log(e.detail.value);
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.formData.defaultAddr = e.detail.value;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 验证数据
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			vailateData() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.formData.name) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请填写姓名');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.formData.phone) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请填写手机号码');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!(/^1[3456789]\d{9}$/.test(this.formData.phone))) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请填写正确的手机号码');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.formData.province) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请选择所在地区');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.formData.street) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请选择所在街道');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.formData.address) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$toast('请填写收货地址');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				return true;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 提交表单
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			submitForm() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.canClickSave) return false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.canClickSave = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.canClickSave = true
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}, 3000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (!this.vailateData()) return;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let params = this.formData;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				params.userId = this.userId;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				let url = '';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if (this.editId) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params.userAddressId = this.editId;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url = '/user/address/update';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url = '/user/address/save';
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.$axios({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url: url,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					type: 'application/json',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					isLoading: 1,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}).then(res => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$successToast(this.editId ? '编辑成功' : '添加成功');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						uni.navigateBack({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							delta: 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}, 1000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			// 删除
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			confirmDelete() {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				this.$axios({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					url: '/user/address/del',
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					params: {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						userAddressId: this.editId
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					},
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					isLoading: 1,
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}).then(res => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.isDialog = false;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					this.$successToast('删除成功');
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					setTimeout(() => {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						uni.navigateBack({
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							delta: 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}, 1000)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				})
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</script>
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<style lang="scss">
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	.app-container {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		background: #F4F2F2;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		padding: 0 30rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		padding-top: 20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		box-sizing: border-box;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.row {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			background: #FFFFFF;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			margin-bottom: 20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			min-height: 88rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			border-radius: 20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			padding: 0 20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			display: flex;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			justify-content: space-between;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			align-items: center;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.title {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				font-size: 28rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				color: #333333;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.right {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				width: 480rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				input {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					font-size: 28rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				.picker {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					display: flex;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					align-items: center;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					justify-content: space-between;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					image {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						width: 16rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						height: 28rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.textarea {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				display: flex;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				justify-content: space-between;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				align-items: center;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				textarea {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					padding: 10rpx 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				.r {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					display: flex;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					align-items: center;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					flex-shrink: 0;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					font-size: 24rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					color: #666666;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					margin-left: 15rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					image {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						width: 28rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						height: 36rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						margin-right: 16rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			.default {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				display: flex;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				justify-content: flex-end;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				switch {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					margin-right: -20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		.button {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			width: 100%;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			height: 72rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			border-radius: 72rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			text-align: center;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			line-height: 72rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			&.red {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				background: #FF3F42;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				color: #FFFFFF;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				margin-top: 120rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			&.white {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				background: #FFFFFF;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				color: #333333;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				margin-top: 20rpx;
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	}
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+</style> 
			 |