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>
 |