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