540 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			540 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
| 	<view class="pb100">
 | |
| 		<view class="form-group">
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('CK_KS_14') }}
 | |
| 				</view>
 | |
| 				<view class="disabled-input">{{ form.memberName }}</view>
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MN_F_23') }}
 | |
| 				</view>
 | |
| 				<view class="disabled-input">{{ form.phone }}</view>
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MY_CK_8') }}
 | |
| 				</view>
 | |
| 				<input class="form-input" type="text" v-model="form.changeMemberName" :placeholder="$t('S_C_70')" />
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MY_CK_9') }}
 | |
| 				</view>
 | |
| 				<input class="form-input" type="text" v-model="form.changePhone" :placeholder="$t('S_C_70')" />
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('w_0043') }}
 | |
| 				</view>
 | |
| 				<input class="form-input" type="text" v-model="form.verificationCode" :placeholder="$t('S_C_70')" />
 | |
| 				<button class="get-code-btn" type="default" @click="sendCode"
 | |
| 					:disabled="is_send">{{ send_btn_txt }}</button>
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MY_CK_10') }}
 | |
| 				</view>
 | |
| 				<textarea auto-height class="form-textarea" v-model="form.description" placeholder="" />
 | |
| 			</view>
 | |
| 			<view class="form-item" style="display: block;">
 | |
| 				<view class="form-label">
 | |
| 					<text class="white mr10">*</text>
 | |
| 					{{ $t('MY_CK_11') }}
 | |
| 				</view>
 | |
| 				<view class="d-b-c p-20-0">
 | |
| 					<view>
 | |
| 						<image class="card-pic" :src="form.idFront" mode="aspectFit"></image>
 | |
| 					</view>
 | |
| 					<view>
 | |
| 						<image class="card-pic" :src="form.idBack" mode="aspectFit"></image>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 			</view>
 | |
| 			<view class="form-item" style="display: block;">
 | |
| 				<view class="form-label">
 | |
| 					<text class="white mr10">*</text>
 | |
| 					{{ $t('MY_CK_12') }}
 | |
| 				</view>
 | |
| 				<view class="d-b-c p-20-0">
 | |
| 					<view>
 | |
| 						<image @click="clearImage('changeIdFront')" v-if="form.changeIdFront" class="card-pic"
 | |
| 							:src="form.changeIdFront" mode="aspectFit"></image>
 | |
| 						<image @click="openUpload('changeIdFront')" v-else class="card-pic" src="/static/new-card.png"
 | |
| 							mode="aspectFit"></image>
 | |
| 					</view>
 | |
| 					<view>
 | |
| 						<image @click="clearImage('changeIdBack')" v-if="form.changeIdBack" class="card-pic"
 | |
| 							:src="form.changeIdBack" mode="aspectFit"></image>
 | |
| 						<image @click="openUpload('changeIdBack')" v-else class="card-pic" src="/static/new-card.png"
 | |
| 							mode="aspectFit"></image>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MY_CK_6') }}({{currencyIcon()}})
 | |
| 				</view>
 | |
| 				<view class="disabled-input">{{ formatNum(form.amount) }}</view>
 | |
| 			</view>
 | |
| 			<view class="form-item">
 | |
| 				<view class="form-label">
 | |
| 					<text class="domation mr10">*</text>
 | |
| 					{{ $t('MY_WAL_22') }}
 | |
| 				</view>
 | |
| 				<textarea auto-height class="form-textarea" v-model="form.remark" placeholder="" />
 | |
| 			</view>
 | |
| 		</view>
 | |
| 		<button class="normal-sub-btn" style="margin-top: 37rpx;" @click="isPopup = true">{{ $t('w_0035') }}</button>
 | |
| 		<template v-if="isPopup">
 | |
| 			<view class="pop-bg" @click="isPopup = false"></view>
 | |
| 			<view class="pop-success" v-if="isPopup">
 | |
| 				<view class="d-c d-b-c hh100">
 | |
| 					<view class="d-e-c ww100"><u-icon name="close" size="34rpx" color="#999"
 | |
| 							@click="isPopup = false"></u-icon></view>
 | |
| 					<view><u-icon size="77rpx" name="/static/icon/warn.png"></u-icon></view>
 | |
| 					<view class="f24 gray9 tc">{{ $t('w_0422') }}</view>
 | |
| 					<view class="f24 gray9 tc">{{$t('PER_DA_35')}}</view>
 | |
| 					<button class="pop-btn" @click="subfunc()">{{ $t('w_0035') }}</button>
 | |
| 				</view>
 | |
| 			</view>
 | |
| 		</template>
 | |
| 		<Upload :num="1" v-if="isUpload" @getImgs="getImgsFunc"></Upload>
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import Popup from '@/components/uni-popup.vue';
 | |
| 	import Upload from '@/components/upload/upload.vue';
 | |
| 	export default {
 | |
| 		components: {
 | |
| 			Popup,
 | |
| 			Upload
 | |
| 		},
 | |
| 		data() {
 | |
| 			return {
 | |
| 				isPopup: false,
 | |
| 				/*是否已发验证码*/
 | |
| 				is_send: false,
 | |
| 				/*发送按钮文本*/
 | |
| 				send_btn_txt: this.$t('w_0055'),
 | |
| 				/*当前秒数*/
 | |
| 				second: 60,
 | |
| 				upload_type: '',
 | |
| 				isUpload: false,
 | |
| 				form: {
 | |
| 					amount: '', //扣费金额
 | |
| 					changeIdFront: '', //变更证件正面
 | |
| 					changeIdBack: '', //变更证件反面
 | |
| 					changeMemberName: '', //变更会员名称
 | |
| 					changePhone: '', //变更联系方式
 | |
| 					description: '',
 | |
| 					idBack: '', //证件反面
 | |
| 					idFront: '', //证件正面
 | |
| 					memberCode: '', //会员编号
 | |
| 					memberName: '', //会员名称
 | |
| 					phone: '', //联系方式
 | |
| 					pkAccount: 0, //扣费账户ID
 | |
| 					remark: '',
 | |
| 					verificationCode: ''
 | |
| 				}
 | |
| 			};
 | |
| 		},
 | |
| 		onLoad() {
 | |
| 			this.getData();
 | |
| 		},
 | |
| 		methods: {
 | |
| 			getData() {
 | |
| 				let self = this;
 | |
| 				self.loading = false;
 | |
| 				self._get('member/api/change-domicile/show-change-domicile', {}, res => {
 | |
| 					Object.assign(self.form, res.data);
 | |
| 				});
 | |
| 			},
 | |
| 			subfunc() {
 | |
| 				let self = this;
 | |
| 				let params = self.form;
 | |
| 				let flag = false;
 | |
| 				let values = [{
 | |
| 						name: self.$t('S_C_70') + self.$t('w_0274'),
 | |
| 						value: 'changeMemberName',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					}, {
 | |
| 						name: self.$t('S_C_70') + self.$t('MY_CK_10'),
 | |
| 						value: 'description',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					},
 | |
| 					{
 | |
| 						name: self.$t('S_C_70') + self.$t('MY_CK_5'),
 | |
| 						value: 'changePhone',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					},
 | |
| 					{
 | |
| 						name: self.$t('S_C_70') + self.$t('MY_ORD_60'),
 | |
| 						value: 'changeIdFront',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					},
 | |
| 					{
 | |
| 						name: self.$t('S_C_70') + self.$t('MY_ORD_61'),
 | |
| 						value: 'changeIdBack',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					},
 | |
| 					{
 | |
| 						name: self.$t('S_C_70') + self.$t('w_0043'),
 | |
| 						value: 'verificationCode',
 | |
| 						callback: function(e) {
 | |
| 							return e != '';
 | |
| 						}
 | |
| 					}
 | |
| 				];
 | |
| 				values.forEach((item, index) => {
 | |
| 					if (!flag && !item.callback(params[item.value])) {
 | |
| 						flag = item.name;
 | |
| 						return;
 | |
| 					}
 | |
| 				});
 | |
| 				if (flag) {
 | |
| 					uni.showToast({
 | |
| 						title: flag,
 | |
| 						duration: 1000,
 | |
| 						icon: 'none'
 | |
| 					});
 | |
| 					return false;
 | |
| 				}
 | |
| 				self._post('member/api/change-domicile/change-domicile', params, res => {
 | |
| 					uni.showModal({
 | |
| 						title: self.$t('w_0034'),
 | |
| 						content: res.msg,
 | |
| 						success() {
 | |
| 							uni.navigateBack();
 | |
| 						}
 | |
| 					})
 | |
| 				})
 | |
| 			},
 | |
| 			/*获取上传的图片*/
 | |
| 			getImgsFunc(e) {
 | |
| 				let self = this;
 | |
| 				self.isUpload = false;
 | |
| 				if (e && typeof e != 'undefined') {
 | |
| 					self.form[self.upload_type] = e[0].url;
 | |
| 				}
 | |
| 			},
 | |
| 			/*打开上传图片*/
 | |
| 			openUpload(type) {
 | |
| 				this.upload_type = type;
 | |
| 				this.isUpload = true;
 | |
| 			},
 | |
| 			clearImage(name) {
 | |
| 				this.form[name] = '';
 | |
| 			},
 | |
| 			/*发送短信*/
 | |
| 			sendCode() {
 | |
| 				let self = this;
 | |
| 				if (self.form.changePhone == '') {
 | |
| 					uni.showToast({
 | |
| 						title: self.$t('w_0134'),
 | |
| 						duration: 2000,
 | |
| 						icon: 'none'
 | |
| 					});
 | |
| 					return;
 | |
| 				}
 | |
| 				console.log(self.form.changePhone)
 | |
| 				self._get(
 | |
| 					'member/api/sms/verification', {
 | |
| 						phone: self.form.changePhone
 | |
| 					},
 | |
| 					result => {
 | |
| 						uni.showToast({
 | |
| 							title: self.$t('MY_WAL_49')
 | |
| 						});
 | |
| 						self.is_send = true;
 | |
| 						self.changeMsg();
 | |
| 					},
 | |
| 					err => {
 | |
| 						console.log(err);
 | |
| 					}
 | |
| 				);
 | |
| 			},
 | |
| 			/*改变发送验证码按钮文本*/
 | |
| 			changeMsg() {
 | |
| 				if (this.second > 0) {
 | |
| 					this.send_btn_txt = this.second + 'S';
 | |
| 					this.second--;
 | |
| 					setTimeout(this.changeMsg, 1000);
 | |
| 				} else {
 | |
| 					this.send_btn_txt = this.$t('w_0055');
 | |
| 					this.second = 60;
 | |
| 					this.is_send = false;
 | |
| 				}
 | |
| 			},
 | |
| 			hidePopupFunc() {
 | |
| 				this.isPopup = false;
 | |
| 			}
 | |
| 		}
 | |
| 	};
 | |
| </script>
 | |
| 
 | |
| <style lang="scss">
 | |
| 	.agreement-box {
 | |
| 		width: 750rpx;
 | |
| 		background: #ffffff;
 | |
| 		padding: 28rpx 22rpx;
 | |
| 		box-sizing: border-box;
 | |
| 		margin-top: 2rpx;
 | |
| 		margin-bottom: 20rpx;
 | |
| 
 | |
| 		.agreement-content {
 | |
| 			font-size: 24rpx;
 | |
| 			font-family: SourceHanSansCN;
 | |
| 			font-weight: 400;
 | |
| 			color: #999999;
 | |
| 			line-height: 32rpx;
 | |
| 			word-break: break-all;
 | |
| 			margin-bottom: 32rpx;
 | |
| 		}
 | |
| 
 | |
| 		.agreement-btn {
 | |
| 			min-width: 320rpx;
 | |
| 			height: 76rpx;
 | |
| 			line-height: 1.5;
 | |
| 			display: flex;
 | |
| 			justify-content: center;
 | |
| 			align-items: center;
 | |
| 			padding: 0 20rpx;
 | |
| 			box-sizing: border-box;
 | |
| 			background: #282828;
 | |
| 			border-radius: 38rpx;
 | |
| 			color: #ffffff;
 | |
| 			font-size: 24rpx;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	.form-title {
 | |
| 		width: 750rpx;
 | |
| 		height: 106rpx;
 | |
| 		background: #fb3024;
 | |
| 		padding-left: 44rpx;
 | |
| 		position: relative;
 | |
| 		box-sizing: border-box;
 | |
| 		font-size: 28rpx;
 | |
| 		color: #fff;
 | |
| 		line-height: 106rpx;
 | |
| 		font-weight: bold;
 | |
| 		z-index: 1;
 | |
| 	}
 | |
| 
 | |
| 	.form-title::before {
 | |
| 		content: '';
 | |
| 		position: absolute;
 | |
| 		top: 0;
 | |
| 		bottom: 0;
 | |
| 		margin: auto;
 | |
| 		left: 25rpx;
 | |
| 		width: 6rpx;
 | |
| 		height: 24rpx;
 | |
| 		background-color: #fb3024;
 | |
| 		z-index: 1;
 | |
| 	}
 | |
| 
 | |
| 	.form-group {
 | |
| 		padding: 0 22rpx;
 | |
| 		background: #ffffff;
 | |
| 
 | |
| 		.form-item {
 | |
| 			min-height: 104rpx;
 | |
| 			box-sizing: border-box;
 | |
| 			padding: 15rpx 0;
 | |
| 			line-height: 1.5;
 | |
| 			display: flex;
 | |
| 			justify-content: center;
 | |
| 			align-items: center;
 | |
| 			border-bottom: 1rpx solid #eee;
 | |
| 
 | |
| 			.icon-jiantou {
 | |
| 				font-size: 32rpx;
 | |
| 				color: 090000;
 | |
| 			}
 | |
| 
 | |
| 			.form-tips {
 | |
| 				font-size: 24rpx;
 | |
| 				color: #999;
 | |
| 			}
 | |
| 
 | |
| 			.form-label {
 | |
| 				width: 255rpx;
 | |
| 				flex-shrink: 0;
 | |
| 				word-break: break-all;
 | |
| 				margin-right: 20rpx;
 | |
| 			}
 | |
| 
 | |
| 			.disabled-input {
 | |
| 				width: 450rpx;
 | |
| 				height: 78rpx;
 | |
| 				padding: 0 18rpx;
 | |
| 				line-height: 78rpx;
 | |
| 				background: #eee;
 | |
| 				font-size: 28rpx;
 | |
| 				color: #333;
 | |
| 				flex: 1;
 | |
| 			}
 | |
| 
 | |
| 			.form-textarea {
 | |
| 				width: 450rpx;
 | |
| 				padding: 0 18rpx;
 | |
| 				line-height: 1.5;
 | |
| 				font-size: 28rpx;
 | |
| 				color: #333;
 | |
| 				flex: 1;
 | |
| 				background: #fff;
 | |
| 			}
 | |
| 
 | |
| 			.form-input {
 | |
| 				width: 450rpx;
 | |
| 				height: 78rpx;
 | |
| 				padding: 0 18rpx;
 | |
| 				line-height: 78rpx;
 | |
| 				background: #fff;
 | |
| 				font-size: 28rpx;
 | |
| 				color: #333;
 | |
| 				flex: 1;
 | |
| 			}
 | |
| 
 | |
| 			.form-item:last-child {
 | |
| 				border: none;
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	.form-upload {
 | |
| 		padding: 30rpx 23rpx;
 | |
| 	}
 | |
| 
 | |
| 	.form-upload-name {
 | |
| 		font-size: 28rpx;
 | |
| 		color: #333;
 | |
| 		margin-bottom: 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.form-upload-tips {
 | |
| 		font-size: 24rpx;
 | |
| 		color: #999;
 | |
| 		margin-bottom: 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.form-upload-tips2 {
 | |
| 		font-size: 24rpx;
 | |
| 		color: #fb3024;
 | |
| 		line-height: 1.5;
 | |
| 	}
 | |
| 
 | |
| 	.upload-add {
 | |
| 		width: 142rpx;
 | |
| 		height: 142rpx;
 | |
| 		margin-right: 18rpx;
 | |
| 		margin-bottom: 18rpx;
 | |
| 	}
 | |
| 
 | |
| 	.tips-box {
 | |
| 		padding: 33rpx 27rpx 29rpx 41rpx;
 | |
| 		font-size: 26rpx;
 | |
| 		color: #666;
 | |
| 		line-height: 1.5;
 | |
| 		word-break: break-all;
 | |
| 	}
 | |
| 
 | |
| 	.address-box {
 | |
| 		width: 706rpx;
 | |
| 		padding: 21rpx 26rpx;
 | |
| 		background-color: #f5f5f5;
 | |
| 		border-radius: 15rpx;
 | |
| 	}
 | |
| 
 | |
| 	.address-item {
 | |
| 		display: flex;
 | |
| 		justify-content: center;
 | |
| 		align-items: center;
 | |
| 		margin-bottom: 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.radio-check {
 | |
| 		width: 40rpx;
 | |
| 		height: 40rpx;
 | |
| 		background: #ffffff;
 | |
| 		border: 1rpx solid #dddddd;
 | |
| 		border-radius: 50%;
 | |
| 		box-sizing: border;
 | |
| 		position: relative;
 | |
| 		margin-right: 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.radio-check.checked {
 | |
| 		border: 1rpx solid #fb3024;
 | |
| 		background: #fb3024;
 | |
| 	}
 | |
| 
 | |
| 	.icon.icon-guanbi {
 | |
| 		font-size: 24rpx;
 | |
| 		color: #999;
 | |
| 	}
 | |
| 
 | |
| 	.s-pop-btn {
 | |
| 		width: 462rpx;
 | |
| 		height: 78rpx;
 | |
| 		background: #fb3024;
 | |
| 		border-radius: 39rpx;
 | |
| 		text-align: center;
 | |
| 		line-height: 1.2;
 | |
| 		display: flex;
 | |
| 		justify-content: center;
 | |
| 		align-items: center;
 | |
| 		font-size: 28rpx;
 | |
| 		color: #fff;
 | |
| 		margin: 0 auto;
 | |
| 		margin-bottom: 68rpx;
 | |
| 	}
 | |
| 
 | |
| 	.get-code-btn {
 | |
| 		min-width: 72rpx;
 | |
| 		height: 62rpx;
 | |
| 		background: #333333;
 | |
| 		line-height: 62rpx;
 | |
| 		padding: 0rpx 20rpx;
 | |
| 		border-radius: 40rpx;
 | |
| 		white-space: nowrap;
 | |
| 		// border: 1rpx solid $dominant-color;
 | |
| 		color: #ffffff;
 | |
| 		box-sizing: border-box;
 | |
| 		margin-left: 46rpx;
 | |
| 		font-size: 24rpx;
 | |
| 	}
 | |
| 
 | |
| 	.get-code-btn[disabled='true'] {
 | |
| 		// border: 1rpx solid #cccccc;
 | |
| 		color: #333;
 | |
| 		background-color: #ffffff;
 | |
| 	}
 | |
| 
 | |
| 	.card-pic {
 | |
| 		width: 316rpx;
 | |
| 		height: 192rpx;
 | |
| 	}
 | |
| </style> |