592 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			592 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | ||
|   <view class="main">
 | ||
|     <view class="contents">
 | ||
|       <u-form :model="dataForm" labelWidth="auto" ref="uForm">
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item
 | ||
|             :label="'会员姓名'"
 | ||
|             label-width="200rpx"
 | ||
|             prop="memberName"
 | ||
|           >
 | ||
|             <u-input
 | ||
|               v-model="dataForm.memberName"
 | ||
|               disabled
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入收货人姓名"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item :label="'联系方式'" label-width="200rpx" prop="phone">
 | ||
|             <u-input
 | ||
|               v-model="dataForm.phone"
 | ||
|               disabled
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入联系方式"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item
 | ||
|             label="新会员姓名"
 | ||
|             label-width="200rpx"
 | ||
|             prop="changeMemberName"
 | ||
|           >
 | ||
|             <u-input
 | ||
|               v-model="dataForm.changeMemberName"
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入新会员姓名"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item
 | ||
|             label="新联系方式"
 | ||
|             label-width="200rpx"
 | ||
|             prop="changePhone"
 | ||
|           >
 | ||
|             <u-input
 | ||
|               v-model="dataForm.changePhone"
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入联系方式"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item
 | ||
|             label-width="200rpx"
 | ||
|             :label="'验证码'"
 | ||
|             prop="verificationCode"
 | ||
|             borderBottom
 | ||
|             ref="item1"
 | ||
|           >
 | ||
|             <u--input
 | ||
|               v-model="dataForm.verificationCode"
 | ||
|               placeholder="请输入"
 | ||
|               border="none"
 | ||
|             ></u--input>
 | ||
|             <u-button
 | ||
|               @tap="getCode"
 | ||
|               class="getcodes"
 | ||
|               type="primary"
 | ||
|               shape="circle"
 | ||
|               :text="tips"
 | ||
|               color="#2FBC42"
 | ||
|             ></u-button>
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item
 | ||
|             label="情况说明"
 | ||
|             class="label-style"
 | ||
|             label-width="200rpx"
 | ||
|             prop="description"
 | ||
|           >
 | ||
|             <u-textarea
 | ||
|               v-model="dataForm.description"
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入情况说明"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <view
 | ||
|           class="view-class"
 | ||
|           style="
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: space-between;
 | ||
|           "
 | ||
|         >
 | ||
|           <u-form-item
 | ||
|             labelPosition="top"
 | ||
|             required
 | ||
|             label-width="200rpx"
 | ||
|             label="原证件(正面)"
 | ||
|           >
 | ||
|             <uploadImg
 | ||
|               :ifsfz="true"
 | ||
|               @imageUploaded="imageUploaded3"
 | ||
|               prop="idFront"
 | ||
|               style="margin-right: 30rpx"
 | ||
|               :bgimg="`../../../static/images/idCard1.png`"
 | ||
|               v-model="dataForm.idFront"
 | ||
|             ></uploadImg>
 | ||
|           </u-form-item>
 | ||
|           <u-form-item
 | ||
|             labelPosition="top"
 | ||
|             required
 | ||
|             label-width="200rpx"
 | ||
|             label="原证件(反面)"
 | ||
|           >
 | ||
|             <uploadImg
 | ||
|               :ifsfz="true"
 | ||
|               @imageUploaded="imageUploaded4"
 | ||
|               prop="idBack"
 | ||
|               style="margin-right: 30rpx"
 | ||
|               :bgimg="`../../../static/images/idCard2.png`"
 | ||
|               v-model="dataForm.idBack"
 | ||
|             ></uploadImg>
 | ||
|           </u-form-item>
 | ||
|           <!-- <u-form-item labelPosition='top' label="原会员证件照片" prop="remark">
 | ||
| 						<image class="idImages" style="margin-right: 20rpx;" :src="dataForm.idFront" mode=""></image>
 | ||
| 						<image class="idImages" :src="dataForm.idBack" mode=""></image>
 | ||
| 					</u-form-item> -->
 | ||
|         </view>
 | ||
|         <view
 | ||
|           class="view-class"
 | ||
|           style="
 | ||
|             display: flex;
 | ||
|             align-items: center;
 | ||
|             justify-content: space-between;
 | ||
|           "
 | ||
|         >
 | ||
|           <!-- <u-form-item labelPosition='top' label="新会员证件照片" prop="changeIdFront">
 | ||
| 						<uploadImg style="margin-right: 30rpx;" :bgimg="`../../../static/images/idCard1.png`"
 | ||
| 							v-model="dataForm.changeIdFront"></uploadImg>
 | ||
| 						<uploadImg :bgimg="`../../../static/images/idCard2.png`" v-model="dataForm.changeIdBack">
 | ||
| 						</uploadImg>
 | ||
| 					</u-form-item> -->
 | ||
|           <u-form-item
 | ||
|             labelPosition="top"
 | ||
|             required
 | ||
|             label-width="180rpx"
 | ||
|             label="证件(正面)"
 | ||
|           >
 | ||
|             <uploadImg
 | ||
|               :ifsfz="true"
 | ||
|               @imageUploaded="imageUploaded1"
 | ||
|               prop="changeIdFront"
 | ||
|               style="margin-right: 30rpx"
 | ||
|               :bgimg="`../../../static/images/idCard1.png`"
 | ||
|               v-model="dataForm.changeIdFront"
 | ||
|             ></uploadImg>
 | ||
|           </u-form-item>
 | ||
|           <u-form-item
 | ||
|             labelPosition="top"
 | ||
|             required
 | ||
|             label-width="180rpx"
 | ||
|             label="证件(反面)"
 | ||
|           >
 | ||
|             <uploadImg
 | ||
|               :ifsfz="true"
 | ||
|               @imageUploaded="imageUploaded2"
 | ||
|               prop="changeIdBack"
 | ||
|               style="margin-right: 30rpx"
 | ||
|               :bgimg="`../../../static/images/idCard2.png`"
 | ||
|               v-model="dataForm.changeIdBack"
 | ||
|             ></uploadImg>
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <!-- <view class="view-class">
 | ||
| 					<u-form-item label="业务扣费(¥)" label-width="200rpx" prop="amount">
 | ||
| 						<u-input v-model="dataForm.amount" disabled placeholder-class="place-class" class="border-color"
 | ||
| 							placeholder="请输入" />
 | ||
| 					</u-form-item>
 | ||
| 				</view> -->
 | ||
|         <view class="view-class">
 | ||
|           <u-form-item :label="'备注'" label-width="200rpx" prop="remark">
 | ||
|             <u-input
 | ||
|               v-model="dataForm.remark"
 | ||
|               placeholder-class="place-class"
 | ||
|               class="border-color"
 | ||
|               placeholder="请输入"
 | ||
|             />
 | ||
|           </u-form-item>
 | ||
|         </view>
 | ||
|         <u-code
 | ||
|           :seconds="seconds"
 | ||
|           @end="end"
 | ||
|           @start="start"
 | ||
|           ref="uCode"
 | ||
|           @change="codeChange"
 | ||
|         ></u-code>
 | ||
|       </u-form>
 | ||
|     </view>
 | ||
| 
 | ||
|     <u-button type="success" shape="circle" class="btn" @click="submit">{{
 | ||
|       '确定'
 | ||
|     }}</u-button>
 | ||
|   </view>
 | ||
| </template>
 | ||
| 
 | ||
| <script>
 | ||
| import * as sel from '@/config/selfService.js'
 | ||
| import * as ban from '@/config/balance.js'
 | ||
| import uploadImg from '@/components/uploadImg.vue'
 | ||
| import { setToken } from '@/config/auth.js'
 | ||
| export default {
 | ||
|   components: {
 | ||
|     uploadImg,
 | ||
|   },
 | ||
|   data() {
 | ||
|     return {
 | ||
|       userInfo: '',
 | ||
|       check: false,
 | ||
|       address: '',
 | ||
|       defaultCode: [],
 | ||
|       urls: '/member/api/maker-space/update-file',
 | ||
|       dataForm: {
 | ||
|         memberName: '',
 | ||
|         phone: '',
 | ||
|         changeMemberName: '',
 | ||
|         changePhone: '',
 | ||
|         description: '',
 | ||
|         amount: '',
 | ||
|         remark: '',
 | ||
|         idFront: '',
 | ||
|         idBack: '',
 | ||
|         changeIdFront: '',
 | ||
|         changeIdBack: '',
 | ||
|       },
 | ||
|       choiceValue: '',
 | ||
|       successShow: false,
 | ||
|       addressList: [],
 | ||
|       rules: {
 | ||
|         changeMemberName: [
 | ||
|           {
 | ||
|             // 必填项
 | ||
|             required: true,
 | ||
|             // 提示内容(会出现在u-form-item内的底部)
 | ||
|             message: '姓名不能为空',
 | ||
|           },
 | ||
|         ],
 | ||
| 
 | ||
|         changeIdFront: [
 | ||
|           {
 | ||
|             // 必填项
 | ||
|             required: true,
 | ||
|             // 提示内容(会出现在u-form-item内的底部)
 | ||
|             message: '证件照片不能为空',
 | ||
|           },
 | ||
|         ],
 | ||
|         changeIdBack: [
 | ||
|           {
 | ||
|             // 必填项
 | ||
|             required: true,
 | ||
|             // 提示内容(会出现在u-form-item内的底部)
 | ||
|             message: '证件照片不能为空',
 | ||
|           },
 | ||
|         ],
 | ||
|         // description: [{
 | ||
|         // 	// 必填项
 | ||
|         // 	required: true,
 | ||
|         // 	// 提示内容(会出现在u-form-item内的底部)
 | ||
|         // 	message: "情况说明不能为空",
 | ||
| 
 | ||
|         // 	trigger: ["change"],
 | ||
|         // }],
 | ||
|         changePhone: [
 | ||
|           {
 | ||
|             required: true,
 | ||
|             message: '请输入手机号',
 | ||
|             trigger: ['blur'],
 | ||
|           },
 | ||
|           {
 | ||
|             validator: (rule, value, callback) => {
 | ||
|               return this.$u.test.mobile(value)
 | ||
|             },
 | ||
|             message: '手机号格式不正确',
 | ||
|             trigger: ['blur'],
 | ||
|           },
 | ||
|         ],
 | ||
|         idFront: [
 | ||
|           {
 | ||
|             // 必填项
 | ||
|             required: true,
 | ||
|             // 提示内容(会出现在u-form-item内的底部)
 | ||
|             message: '原证件照片不能为空',
 | ||
|           },
 | ||
|         ],
 | ||
|         idBack: [
 | ||
|           {
 | ||
|             // 必填项
 | ||
|             required: true,
 | ||
|             // 提示内容(会出现在u-form-item内的底部)
 | ||
|             message: '原证件照片不能为空',
 | ||
|           },
 | ||
|         ],
 | ||
|       },
 | ||
|       tips: '',
 | ||
|       seconds: 60,
 | ||
|     }
 | ||
|   },
 | ||
|   onLoad() {
 | ||
|     this.applyChange()
 | ||
|   },
 | ||
| 
 | ||
|   onReady() {
 | ||
|     this.$refs.uForm.setRules(this.rules)
 | ||
|   },
 | ||
| 
 | ||
|   methods: {
 | ||
|     imageUploaded1(url) {
 | ||
|       this.dataForm.changeIdFront = url
 | ||
|     },
 | ||
|     imageUploaded2(url) {
 | ||
|       this.dataForm.changeIdBack = url
 | ||
|     },
 | ||
|     imageUploaded3(url) {
 | ||
|       this.dataForm.idFront = url
 | ||
|     },
 | ||
|     imageUploaded4(url) {
 | ||
|       this.dataForm.idBack = url
 | ||
|     },
 | ||
|     applyChange() {
 | ||
|       sel.showChangeDomicile().then(res => {
 | ||
|         this.dataForm = res.data
 | ||
|       })
 | ||
|     },
 | ||
|     codeChange(text) {
 | ||
|       this.tips = text
 | ||
|     },
 | ||
|     getCode() {
 | ||
|       if (this.dataForm.changePhone) {
 | ||
|         if (this.$refs.uCode.canGetCode) {
 | ||
|           // 模拟向后端请求验证码
 | ||
|           uni.showLoading({
 | ||
|             title: '正在获取验证码',
 | ||
|           })
 | ||
|           ban
 | ||
|             .getVerification({
 | ||
|               phone: this.dataForm.changePhone,
 | ||
|             })
 | ||
|             .then(res => {
 | ||
|               uni.hideLoading()
 | ||
|               // 这里此提示会被this.start()方法中的提示覆盖
 | ||
|               uni.$u.toast('验证码已发送')
 | ||
|               // 通知验证码组件内部开始倒计时
 | ||
|               this.$refs.uCode.start()
 | ||
|             })
 | ||
|         } else {
 | ||
|           uni.$u.toast('倒计时结束后再发送')
 | ||
|         }
 | ||
|       } else {
 | ||
|         uni.$u.toast('请先输入手机号')
 | ||
|         return
 | ||
|       }
 | ||
|     },
 | ||
|     end() {
 | ||
|       // uni.$u.toast('倒计时结束');
 | ||
|     },
 | ||
|     start() {
 | ||
|       // uni.$u.toast('倒计时开始');
 | ||
|     },
 | ||
| 
 | ||
|     submit() {
 | ||
|       this.$refs.uForm.validate().then(res => {
 | ||
|         sel.saveChangeDomicile(this.dataForm).then(res => {
 | ||
|           if (res.code == '200') {
 | ||
|             uni.showToast({
 | ||
|               title: '修改成功',
 | ||
|               icon: 'none',
 | ||
|               success() {
 | ||
|                 setTimeout(() => {
 | ||
|                   uni.navigateBack()
 | ||
|                 }, 600)
 | ||
|               },
 | ||
|             })
 | ||
|             // this.successShow = true
 | ||
|           }
 | ||
|         })
 | ||
|       })
 | ||
|     },
 | ||
|     sureBtn() {
 | ||
|       uni.navigateBack()
 | ||
|     },
 | ||
|   },
 | ||
| }
 | ||
| </script>
 | ||
| 
 | ||
| <style lang="scss" scoped>
 | ||
| .custom-radio-label {
 | ||
|   display: flex;
 | ||
|   margin-top: 30rpx;
 | ||
| }
 | ||
| 
 | ||
| .custom-label-content {
 | ||
|   margin-left: 20rpx;
 | ||
| 
 | ||
|   .label_name {
 | ||
|     font-size: 28rpx;
 | ||
|     font-family: Source Han Sans CN;
 | ||
|     font-weight: bold;
 | ||
|     color: #333333;
 | ||
|   }
 | ||
| 
 | ||
|   .label_phone {
 | ||
|     font-size: 28rpx;
 | ||
|     font-family: Source Han Sans CN;
 | ||
|     font-weight: 500;
 | ||
|     color: #333333;
 | ||
|   }
 | ||
| 
 | ||
|   .label_address {
 | ||
|     font-size: 24rpx;
 | ||
|     font-family: Source Han Sans CN;
 | ||
|     font-weight: 400;
 | ||
|     color: #999999;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| :v-deep .u-form-item__body__right__message {
 | ||
|   margin-left: 215rpx !important;
 | ||
|   padding-bottom: 20rpx;
 | ||
| }
 | ||
| 
 | ||
| .drop {
 | ||
|   image {
 | ||
|     width: 40rpx;
 | ||
|     height: 40rpx;
 | ||
|     position: absolute;
 | ||
|     right: 0;
 | ||
|     top: 30rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .check {
 | ||
|   position: relative;
 | ||
| 
 | ||
|   view {
 | ||
|     width: 36rpx;
 | ||
|     height: 36rpx;
 | ||
|     border: 1rpx solid #dddddd;
 | ||
|     border-radius: 50%;
 | ||
|     margin-top: 25rpx;
 | ||
|   }
 | ||
| 
 | ||
|   image {
 | ||
|     width: 40rpx;
 | ||
|     height: 40rpx;
 | ||
|     position: absolute;
 | ||
|     right: 0rpx;
 | ||
|     top: 25rpx;
 | ||
|     // margin-top: 20rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .lis_address {
 | ||
|   background: rgba(231, 20, 26, 0.08);
 | ||
|   border-radius: 15rpx;
 | ||
|   padding: 20rpx 26rpx;
 | ||
| 
 | ||
|   .lis_title {
 | ||
|     font-size: 28rpx;
 | ||
|     font-family: Source Han Sans CN;
 | ||
|     font-weight: 400;
 | ||
|     color: #005bac;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .label-style {
 | ||
|   display: block !important;
 | ||
| }
 | ||
| 
 | ||
| :v-deep .label-style .u-form-item__body__left {
 | ||
|   display: block !important;
 | ||
|   margin-top: 20rpx;
 | ||
| }
 | ||
| 
 | ||
| .uni-textarea {
 | ||
|   height: 100rpx;
 | ||
| }
 | ||
| 
 | ||
| .view-class {
 | ||
|   border-bottom: 1rpx solid #eee;
 | ||
|   margin: 0 30rpx;
 | ||
|   position: relative;
 | ||
| }
 | ||
| 
 | ||
| .border-color {
 | ||
|   border: none;
 | ||
| }
 | ||
| 
 | ||
| page {
 | ||
|   background-color: #f2f2f2;
 | ||
| }
 | ||
| 
 | ||
| .contents {
 | ||
|   background-color: #fff;
 | ||
| 
 | ||
|   .idImages {
 | ||
|     width: 316rpx;
 | ||
|     height: 192rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| .btn {
 | ||
|   background-color: #005bac;
 | ||
|   border: none;
 | ||
|   height: 92rpx;
 | ||
|   line-height: 92rpx;
 | ||
|   font-size: 30rpx;
 | ||
|   margin: 40rpx auto;
 | ||
|   width: 690rpx;
 | ||
| }
 | ||
| 
 | ||
| .successPopup {
 | ||
|   width: 560rpx;
 | ||
|   background: #ffffff;
 | ||
|   border-radius: 20rpx;
 | ||
|   padding: 26rpx 60rpx;
 | ||
| 
 | ||
|   .poupTop {
 | ||
|     display: flex;
 | ||
|     align-items: center;
 | ||
| 
 | ||
|     .theiconbox {
 | ||
|       background-color: #029b00;
 | ||
|       border-radius: 50%;
 | ||
|       display: flex;
 | ||
|       align-content: center;
 | ||
|       justify-content: center;
 | ||
|     }
 | ||
| 
 | ||
|     .theicontitle {
 | ||
|       font-size: 30rpx;
 | ||
|       font-family: Source Han Sans CN;
 | ||
|       font-weight: bold;
 | ||
|       margin-left: 13rpx;
 | ||
|       color: #333333;
 | ||
|     }
 | ||
|   }
 | ||
| 
 | ||
|   .poupContent {
 | ||
|     margin-top: 50rpx;
 | ||
|     font-size: 24rpx;
 | ||
|     font-family: Source Han Sans CN;
 | ||
|     font-weight: 400;
 | ||
|     line-height: 42rpx;
 | ||
|     color: #666666;
 | ||
|   }
 | ||
| 
 | ||
|   .poupBtn {
 | ||
|     background: #005bac;
 | ||
|     border-radius: 39rpx;
 | ||
|     padding: 26rpx 0;
 | ||
|     display: flex;
 | ||
|     align-items: center;
 | ||
|     justify-content: center;
 | ||
|     color: #ffffff;
 | ||
|     margin-top: 70rpx;
 | ||
|     margin-bottom: 40rpx;
 | ||
|   }
 | ||
| }
 | ||
| 
 | ||
| ::v-deep .u-popup__content {
 | ||
|   background-color: rgba(0, 0, 0, 0);
 | ||
| }
 | ||
| 
 | ||
| .getcodes {
 | ||
|   width: 197rpx;
 | ||
|   // height: 76rpx;
 | ||
|   background: #2fbc42;
 | ||
|   border-radius: 38rpx;
 | ||
|   color: #fff;
 | ||
| }
 | ||
| </style>
 |