java-mall-app/member/member/certification.vue
2024-11-01 16:35:40 +08:00

300 lines
8.0 KiB
Vue

<template>
<view class="page">
<view class="m-cells m-cells-form">
<view class="m-cell">
<view class="m-cell-hd"><label class="u-label">{{__('真实姓名')}}</label></view>
<view class="m-cell-bd">
<input class="u-input" type="text" v-model="user_data.user_realname" :placeholder="__('请输入真实姓名')" @input="inputReName" maxlength="10" />
</view>
</view>
<view class="m-cell">
<view class="m-cell-hd"><label class="u-label">{{__('身份证')}}</label></view>
<view class="m-cell-bd">
<input class="u-input" type="idcard" v-model="user_data.user_idcard" :placeholder="__('请输入身份证号码')" @input="inputICard" maxlength="18" />
</view>
<div v-if="(!isCardNo)" class="m-cell-ft">
<icon class="m-icon-warn" type="warn"></icon>
</div>
</view>
<view class="m-cell">
<view style="font-size: 20rpx;">{{__('温馨提示:请上传原始比例的身份证正反面,请勿裁剪涂改,保证身份信息清晰显示,否则无法通过审核')}}
</view>
</view>
<view class="m-cell" style="padding: 3rpx 30rpx">
<view class="m-cell-hd"><label class="u-label">{{__('身份证正面')}}</label></view>
<view class="m-cell-bd" style="padding: 0;margin: 0;line-height: 1;">
<view class="uni-uploader-body">
<view class="uni-uploader__files">
<block v-if="user_data.user_idcard_images[0]">
<view class="uni-uploader__file">
<image class="uni-uploader__img" v-if="1!==user_data.user_certification" data-imgindex="0" :src="user_data.user_idcard_images[0]" :data-src="user_data.user_idcard_images[0]" @click.stop="upImgs"></image>
<image class="uni-uploader__img" v-else data-imgindex="0" :src="user_data.user_idcard_images[0]" :data-src="user_data.user_idcard_images[0]"></image>
</view>
</block>
<view class="uni-uploader__input-box" v-else>
<view class="uni-uploader__input" data-imgindex="0" @click.stop="upImgs"></view>
</view>
</view>
</view>
</view>
</view>
<view class="m-cell" style="padding: 3rpx 30rpx">
<view class="m-cell-hd"><label class="u-label">{{__('身份证反面')}}</label></view>
<view class="m-cell-bd" style="padding: 0;margin: 0;line-height: 1;">
<view class="uni-uploader-body">
<view class="uni-uploader__files">
<block v-if="user_data.user_idcard_images[1]">
<view class="uni-uploader__file">
<image class="uni-uploader__img" v-if="1!==user_data.user_certification" data-imgindex="1" :src="user_data.user_idcard_images[1]" :data-src="user_data.user_idcard_images[1]" @click.stop="upImgs"></image>
<image class="uni-uploader__img" v-else data-imgindex="1" :src="user_data.user_idcard_images[1]" :data-src="user_data.user_idcard_images[1]"></image>
</view>
</block>
<view class="uni-uploader__input-box" v-else>
<view class="uni-uploader__input" data-imgindex="1" @click.stop="upImgs"></view>
</view>
</view>
</view>
</view>
</view>
<view class="btn_box" v-if="1!==user_data.user_certification"><button class="u-btn u-btn-default" @tap="submitdata">{{__('保存')}}</button></view>
<view class="btn_box" v-else><button class="u-btn u-btn-default">{{__('实名认证已经审核通过')}}</button></view>
</view>
</view>
</template>
<script>
import {
mapState,
mapMutations
} from 'vuex';
import verifycodeDialog from '../../components/verifycode-dialog/verifycode-dialog.vue';
export default {
name: 'asset',
data: function() {
return {
user_data: {
user_realname: '',
user_idcard: '',
user_certification: 0,
user_idcard_images: []
},
isCardNo: true,
};
},
components: {
verifycodeDialog,
},
computed: mapState([
'Config',
'StateCode',
'notice',
'plantformInfo',
'shopInfo',
'userInfo',
'hasLogin'
]),
onLoad: function(options) {
uni.setNavigationBarTitle({
title: this.__('实名认证')
});
var that = this;
this.Phone = this.userInfo.user_mobile;
this.user_data = Object.assign({}, this.userInfo);
this.initData();
},
methods: {
...mapMutations(['login', 'logout', 'getPlantformInfo', 'forceUserInfo', 'getUserInfo']),
initData: function() {
let that = this;
that.$.request({
url: that.Config.URL.account.certificate.replace(/typ=e/, "typ=json"),
data: {},
success: function(data, status, msg, code) {
if (status == 200) {
that.setData({
user_data: data
})
} else {}
},
})
},
inputReName: function(e) {
this.setData({
//user_realname: e.detail.value
})
},
inputICard: function(e) {
let that = this;
if (that.$.isNull(e.detail.value)) {
this.setData({
isCardNo: true,
user_idcard: e.detail.value
});
return
}
this.IdentityCodeValid(e.detail.value) ? this.setData({
isCardNo: true
}) : this.setData({
isCardNo: false
}), this.setData({
user_idcard: e.detail.value
})
},
upImgs: function(e) {
var that = this;
var i = e.currentTarget.dataset.imgindex;
let ukey = uni.getStorageSync('ukey');
that.$.chooseImage({
count: 1,
sizeType: ["compressed"],
success: function(n) {
that.$.showLoading();
var r = n.tempFilePaths;
that.$.uploadFile({
url: that.Config.URL.upload,
method: "POST",
filePath: r[0],
name: "upfile",
formData: {
'perm_key': ukey
},
success: function(n) {
that.$.hideLoading();
var up_res = that.$.parseJSON(n.data);
if (up_res.status == 200) {
var s = up_res.data.url;
let info = Object.assign({}, that.user_data);
info['user_idcard_images'][i] = s;
//that.login(that.user_data);
that.setData({
user_data: info
})
} else {
that.$.confirm(up_res.msg || that.__('发生错误'));
}
},
fail: function(e) {
that.$.hideLoading()
},
complete: function(e) {
that.$.hideLoading()
}
})
},
fail: function(e) {
that.$.hideLoading()
},
complete: function(e) {
that.$.hideLoading()
}
})
},
submitdata: function() {
let that = this;
if (!that.$.trim(that.user_data.user_realname)) {
that.$.confirm('请输入用户名');
return;
}
if (!that.user_data.user_idcard) {
that.$.confirm('请输入身份证号码');
return;
}
if (!that.$.idcard(that.user_data.user_idcard)) {
that.$.confirm('请输入正确的身份证号码');
return;
}
if (!that.user_data.user_idcard_images[0]) {
that.$.confirm('请上传身份证照片正面');
return;
}
if (!that.user_data.user_idcard_images[1]) {
that.$.confirm('请上传身份证照片反面');
return;
}
var params = {
user_realname: that.user_data.user_realname,
user_idcard: that.user_data.user_idcard,
user_idcard_images: that.user_data.user_idcard_images.toString().replace("\""),
};
that.$.request({
url: that.Config.URL.account.commit_certificate.replace(/typ=e/, "typ=json"),
data: params,
success: function(data, status, msg, code) {
if (status == 200) {
that.$.showToast({
title: that.__("成功,待平台审核"),
success: function() {
that.login(that.user_data);
setTimeout(function() {
that.$.navigateBack(1)
}, 1500);
}
})
} else {
that.$.confirm(msg);
}
}
});
}
}
};
</script>
<style lang="scss">
@import '../../styles/_variables.scss';
.m-cell-vcode {
padding-top: 0;
padding-right: 0;
padding-bottom: 0;
}
.m-vcode-img {
width: 216rpx;
height: 88rpx;
}
.btn_box {
padding: 20rpx;
}
.m-code {
right: 210rpx;
}
.m-vcode-btn {
width: 150rpx;
text-align: center;
}
.uni-uploader__img {
width: 320rpx;
height: 200rpx;
}
</style>