236 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
		
		
			
		
	
	
			236 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
|  | <template> | ||
|  | 	<form @submit="formSubmit" @reset="formReset"> | ||
|  | 		<view class="prefecture form-group">  | ||
|  | 		<view class="form-item"> | ||
|  | 			<view class="form-label w150"> | ||
|  | 				<text class="domation mr10">*</text> | ||
|  | 				<text>{{ $t('MY_ORD_10') }}</text> | ||
|  | 			</view> | ||
|  | 			<view class="flex-1"> | ||
|  | 				<input class="form-input bg" type="text" value="" v-model="editaddress.accountName" disabled  :placeholder="$t('S_C_70')" /> | ||
|  | 			</view>  | ||
|  | 		</view> | ||
|  | 		<view class="form-item"> | ||
|  | 			<view class="form-label w150"> | ||
|  | 				<text class="domation mr10">*</text> | ||
|  | 				<text>{{ $t('w_0052') }}</text> | ||
|  | 			</view> | ||
|  | 			<view class="flex-1"> | ||
|  | 				<input class="form-input bg" type="text" value="" v-model="editaddress.phone" disabled  :placeholder="$t('S_C_70')" /> | ||
|  | 			</view>  | ||
|  | 		</view> | ||
|  | 		<view class="form-item"> | ||
|  | 			<view class="form-label w150"> | ||
|  | 				<text class="domation mr10">*</text> | ||
|  | 				<text>{{ $t('w_0068') }}</text> | ||
|  | 			</view> | ||
|  | 			<view class="flex-1"> | ||
|  | 				<view class="d-b-c" @click="showMulLinkageThreePicker" >  | ||
|  | 					<input class="f28 pointer-enents" type="text" placeholder-class="grary9" :placeholder="$t('w_0069')" v-model="selectCity" disabled="true" /> | ||
|  | 					<view class="icon iconfont fb icon-icon1"></view> | ||
|  | 				</view> | ||
|  | 			</view>  | ||
|  | 		</view> | ||
|  | 		<view class="form-item"> | ||
|  | 			<view class="form-label w150"> | ||
|  | 				<text class="domation mr10">*</text> | ||
|  | 				<text>{{ $t('S_C_27') }}</text> | ||
|  | 			</view> | ||
|  | 			<view class="flex-1"> | ||
|  | 				<textarea | ||
|  | 					name="address" | ||
|  | 					class="ww100 f28" | ||
|  | 					placeholder-class="grary9" | ||
|  | 					:auto-height="true" | ||
|  | 					v-model="editaddress.address" | ||
|  | 					:placeholder="$t('w_0070')" | ||
|  | 				></textarea> | ||
|  | 			</view>  | ||
|  | 		</view> | ||
|  | 		<view class="addBtn"> | ||
|  | 			<button form-type="submit" class="f32 mt60 normal-sub-btn">{{ $t('w_0035') }}</button> | ||
|  | 		</view> | ||
|  | 		<mpvue-city-picker | ||
|  | 			v-if="is_load" | ||
|  | 			ref="mpvueCityPicker" | ||
|  | 			:province="province" | ||
|  | 			:city="city" | ||
|  | 			:area="area" | ||
|  | 			:pickerValueDefault="cityPickerValueDefault" | ||
|  | 			@onConfirm="onConfirm" | ||
|  | 		></mpvue-city-picker> | ||
|  | 	 </view> | ||
|  | 	</form> | ||
|  | 	  | ||
|  | </template> | ||
|  | 
 | ||
|  | <script> | ||
|  | import mpvueCityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue'; | ||
|  | export default { | ||
|  | 	components: { | ||
|  | 		mpvueCityPicker | ||
|  | 	}, | ||
|  | 	data() { | ||
|  | 		return { | ||
|  | 			cityPickerValueDefault: [0, 0, 0], | ||
|  | 			pkProvince: 0, | ||
|  | 			pkCity: 0, | ||
|  | 			pkCounty: 0, | ||
|  | 			/*地址id*/ | ||
|  | 			pkId: 0, | ||
|  | 			/*地址数据*/ | ||
|  | 			 editaddress: { | ||
|  |       			accountName: '',  | ||
|  |       			phone: '', | ||
|  |       			pkProvince: 0, | ||
|  |       			pkCity: 0, | ||
|  |       			pkCounty: 0, | ||
|  |       			address: '', | ||
|  | 				dizhi: [], | ||
|  |     		}, | ||
|  | 			/*地区*/ | ||
|  | 			is_load: false, | ||
|  | 			province: [], | ||
|  | 			city: [], | ||
|  | 			area: [], | ||
|  | 			isDefault: false, | ||
|  | 			selectCity: this.$t('S_C_30'), | ||
|  | 		}; | ||
|  | 	}, | ||
|  | 	onLoad(e) { | ||
|  | 		  // 获取传递的参数
 | ||
|  | 		 this.editaddress = e; | ||
|  | 		 this.editaddress.dizhi = [e.pkProvince || 0,e.pkCounty || 0,e.pkCity || 0] | ||
|  | 		 this.selectCity = e.showName; | ||
|  | 		  if(!e.showName){ | ||
|  | 			this.selectCity = this.$t('S_C_30'); | ||
|  | 		  } | ||
|  | 	}, | ||
|  | 	mounted() { | ||
|  | 		/*获取地址数据*/ | ||
|  | 		this.getCityData(); | ||
|  | 	}, | ||
|  | 	methods: { | ||
|  | 		// 获取省市区
 | ||
|  | 		getCityData() { | ||
|  | 			let self = this; | ||
|  | 			self._get('system/api/area/tree', {}, function(res) { | ||
|  | 				self.province = res.data; | ||
|  | 				self.is_load = true; | ||
|  | 			}); | ||
|  | 		}, | ||
|  | 
 | ||
|  | 		/*提交地址*/ | ||
|  | 		formSubmit: function(e) { | ||
|  | 			let self = this; | ||
|  | 			const { pkId, pkProvince, pkCity, pkCounty, address, dizhi } = this.editaddress; | ||
|  | 			let params = { | ||
|  | 				pkId, | ||
|  | 				pkProvince, | ||
|  | 				pkCity, | ||
|  | 				pkCounty, | ||
|  | 				address, | ||
|  | 				dizhi, | ||
|  | 			} | ||
|  | 			if (pkProvince == 0 || pkCity == 0 || pkCounty == 0) { | ||
|  | 				if (address == '') { | ||
|  | 					uni.showToast({ | ||
|  | 						title: self.$t('S_C_30'), | ||
|  | 						duration: 1000, | ||
|  | 						icon: 'none' | ||
|  | 					}); | ||
|  | 					return false; | ||
|  | 				} | ||
|  | 			} | ||
|  | 
 | ||
|  | 			self._post('member/api/member-gift/update-gift', params, function(res) { | ||
|  | 				self.showSuccess(res.msg, function() { | ||
|  | 					// #ifndef H5
 | ||
|  | 					uni.navigateBack({ | ||
|  | 						delta: parseInt(1) | ||
|  | 					}); | ||
|  | 					// #endif
 | ||
|  | 					// #ifdef H5
 | ||
|  | 					history.go(-1); | ||
|  | 					// #endif
 | ||
|  | 				}); | ||
|  | 			}); | ||
|  | 		}, | ||
|  | 
 | ||
|  | 		/*清空数据*/ | ||
|  | 		formReset: function(e) { | ||
|  | 			console.log('清空数据'); | ||
|  | 		}, | ||
|  | 
 | ||
|  | 		/*三级联动选择*/ | ||
|  | 		showMulLinkageThreePicker() { | ||
|  | 			this.$refs.mpvueCityPicker.show(); | ||
|  | 		}, | ||
|  | 
 | ||
|  | 		/*选择之后绑定*/ | ||
|  | 		onConfirm(e) { | ||
|  | 			this.selectCity = e.label; | ||
|  | 			this.editaddress.dizhi = e.cityCode; | ||
|  | 			this.editaddress.pkProvince = e.cityCode[0]; | ||
|  | 			this.editaddress.pkCity = e.cityCode[1]; | ||
|  | 			this.editaddress.pkCounty = e.cityCode[2]; | ||
|  | 		} | ||
|  | 	} | ||
|  | }; | ||
|  | </script> | ||
|  | 
 | ||
|  | <style lang="scss" scoped>  | ||
|  | /* .address-form { | ||
|  | 	padding: 0; | ||
|  | 	border-radius: 0; | ||
|  | } | ||
|  | 
 | ||
|  | .address-box { | ||
|  | 	padding: 0 31rpx 0 27rpx; | ||
|  | } | ||
|  | 
 | ||
|  | .address-form .key-name { | ||
|  | 	width: 180rpx; | ||
|  | 	height: 90rpx; | ||
|  | 	line-height: 90rpx; | ||
|  | 	font-size: 28rpx; | ||
|  | } | ||
|  | 
 | ||
|  | .address-form .btn-red { | ||
|  | 	height: 88rpx; | ||
|  | 	line-height: 88rpx; | ||
|  | 	border-radius: 44rpx; | ||
|  | 	box-shadow: 0 8rpx 16rpx 0 rgba(226, 35, 26, 0.6); | ||
|  | } | ||
|  | 
 | ||
|  | 
 | ||
|  | 
 | ||
|  | .address-input { | ||
|  | 	line-height: 90rpx; | ||
|  | 	height: 90rpx; | ||
|  | 	box-sizing: border-box; | ||
|  | 	font-size: 28rpx; | ||
|  | } | ||
|  | 
 | ||
|  | .addtextarea { | ||
|  | 	font-size: 28rpx; | ||
|  | 	line-height: 1.5; | ||
|  | 	padding: 25rpx 0; | ||
|  | } | ||
|  | 
 | ||
|  | .icon.icon-icon1 { | ||
|  | 	font-size: 28rpx; | ||
|  | 	color: #999; | ||
|  | } */ | ||
|  | .addBtn { | ||
|  | 	position: fixed; | ||
|  | 	bottom: 60rpx; | ||
|  | 	left: 0rpx; | ||
|  | 	margin: 0 auto; | ||
|  | 	width: 750rpx; | ||
|  | 	display: flex; | ||
|  | 	justify-content: center; | ||
|  | 	align-items: center; | ||
|  | } | ||
|  | </style> |