You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

618 lines
15 KiB

<template>
<view class="personAttestation">
<far-bottom></far-bottom>
<scroll-view :style="{ height: phoneHight }" :scroll-y="true">
<view class="mainView absolute0">
<!-- 基本信息 -->
<view class="informationView marginAuto">
<view class="p30">
<view>
<view class="line inlineBlock verticalM"></view>
<text class="colorBlack font28 verticalM marginL10">学生信息</text>
</view>
<view class="marginT29">
<view class="inputView">
<text class="colorBlack font24 verticalM">姓名</text>
<input placeholder="请输入真实姓名" class="colorBlack font24 inlineBlock verticalM p0p50" v-model="studInfo.name" />
</view>
<view class="inputView marginT18">
<text class="colorBlack font24 verticalM">学校名称</text>
<input placeholder="请输入学校名称" class="colorBlack font24 inlineBlock verticalM p0p50" v-model="studInfo.school_name" />
</view>
<view class="inputView marginT18">
<text class="colorBlack font24 verticalM">院系</text>
<input placeholder="请输入院系" class="colorBlack font24 inlineBlock verticalM p0p50" v-model="studInfo.department_name" />
</view>
<view class="inputView marginT18">
<text class="colorBlack font24 verticalM">学号</text>
<input placeholder="请输入学号" class="colorBlack font24 inlineBlock verticalM p0p50" v-model="studInfo.code" />
</view>
<view class="inputView marginT18">
<text class="colorBlack font24 verticalM">入学时间</text>
<!-- <input placeholder="请选择入学时间" class="colorBlack font24 inlineBlock verticalM p0p50" type="number" v-model="studInfo.start_date" /> -->
<view class="colorBlack font24 inlineBlock verticalM p0p50" style="height: 100%;width: 360upx;">
<uni-datetime-picker type="date" :clear-icon="false" v-model="studInfo.start_date" @maskClick="maskClick"
@change="changeDate" placeholder="请选择" />
</view>
</view>
<view class="inputView marginT18">
<text class="colorBlack font24 verticalM">联系电话</text>
<input placeholder="请输入您的联系电话" class="colorBlack font24 inlineBlock verticalM p0p50" v-model="studInfo.mobile" />
</view>
<view class="inputView marginT18" style="display: flex;align-items: center;background: #fff;">
<view class="inputView">
<text class="colorBlack font24 verticalM">手机验证码</text>
<input placeholder="请输入验证码" class="colorBlack font24 inlineBlock verticalM p0p50"
v-model="studInfo.sms_code" style="width:190upx;" />
</view>
<view class="colorBlack font24 verticalM marginL10"
style="background: #fafafa;border-radius: 10rpx;line-height: 83rpx;padding: 0px 10px;flex-shrink: 0;"
@click="getCode" >{{codeBtnText}}</view>
</view>
</view>
</view>
</view>
<!-- 基本信息 -->
<!-- 上传证件 -->
<view class="uploadView marginAuto marginT35">
<view class="p30">
<view>
<view class="line inlineBlock verticalM"></view>
<text style="color: #f00;font-size: 12px;vertical-align: bottom;margin-left: 15rpx;">*</text>
<text class="colorBlack font28 verticalM marginL15">学生证件</text>
</view>
<view class="marginT29 flex">
<view class="uploadButton inlineBlock textC" @click="uploadFiles()" v-if="studInfo.certificate_img == '' || studInfo.certificate_img == undefined">
<image :src="imageRootNew+'mb-plus.png'" class="upLoadImg"></image>
</view>
<view class="inlineBlock textC" v-else @click="uploadFiles(1)" style="position: relative;">
<image :src="studInfo.certificate_img" class="imageHave" mode="aspectFit"></image>
<image :src="imgfixUrls + 'merchant/close.png'" class="close" @click.stop="closePreview()" />
</view>
</view>
</view>
</view>
<!-- 上传证件 -->
<!-- 协议 -->
<view class="marginT40" v-if="0">
<view class="pL30">
<view class="bor1gray" v-if="agree == false" @click="agree = true"></view>
<image :src="imgfixUrls + 'merchant/tyXy.png'" class="image22" v-if="agree == true" @click="agree = false"></image>
<text class="font24 color999999 marginL10" @click="agree = !agree">阅读并同意</text>
<text class="font24 color4F6D8C" @click="showPop">《用户协议条款》</text>
</view>
</view>
<!-- 协议 -->
<!-- 提交按钮 -->
<!-- <view class="marginT70auto textC" :class="agree == true ? 'submitButton' : 'submitButton1'" @click="setInfo"> -->
<view class="marginT70auto textC submitButton" @click="setInfo">
<text class="lineHeight80 colorW font28">提交认证申请</text>
</view>
<!-- 提交按钮 -->
<!-- <popAgreement :show="show" @clickmask="closePop" :buttonColor="buttonColor" :textInfo="userInfo.agreement"></popAgreement> -->
</view>
</scroll-view>
</view>
</template>
<script>
import App from '@/common/js/app.js';
// #ifdef H5
import wxApi from '@/common/js/wxApi.js';
// #endif
// import popAgreement from '@/components/template/popAgreement';
export default {
components: {
// popAgreement
},
data() {
return {
agree: false,
phoneHight: null,
show: false,
buttonColor: 'rgba(255,68,68,1)',
userInfo: {},
studInfo: {
name: '',
school_name: '',
department_name: '',
code: '',
start_date: '',
mobile: '',
sms_code: '',
certificate_img: '',
id: '',
},
certificate_img: '',
id: null,
codeBtnText: '获取验证码',
};
},
computed: {
grrzBack() {
let _this = this;
return _this.imageRoot + 'grrzBack.png';
},
sfzZ() {
let _this = this;
return _this.imageRoot + 'sfzZ.png';
},
sfzB() {
let _this = this;
return _this.imageRoot + 'sfzB.png';
}
},
onLoad(e) {
let _this = this;
uni.getSystemInfo({
success(res) {
_this.phoneHight = res.windowHeight + 'px';
}
});
uni.getStorage({
key: 'userinfo',
success: async function(res) {
_this.init(res.data.mid);
_this.id = res.data.mid;
}
});
},
methods: {
init(mid) {
let _this = this;
// #ifdef H5
wxApi.wxRegister();
// #endif
_this.getInfo(mid);
},
// 信息设置接口
getInfo(mid) {
let _this = this;
let data = {
// type: 1,
mid: mid
// operation: 'get'
};
App._post_form('&p=student&do=studentIdentityIndex', data, res => {
_this.setData({
studInfo: res.data
})
_this.certificate_img = res.data.certificate_img;
console.log(_this.studInfo)
}, (err)=>{
// console.log(err.data.message);
uni.navigateBack({
delta: 1
})
});
},
setInfo() {
let _this = this;
let data = {
name: _this.studInfo.name,
school_name: _this.studInfo.school_name,
department_name: _this.studInfo.department_name,
code: _this.studInfo.code,
start_date: _this.studInfo.start_date,
mobile: _this.studInfo.mobile,
sms_code: _this.studInfo.sms_code,
certificate_img: _this.certificate_img,
id: _this.studInfo.id,
};
if(_this.studInfo.name==''){
uni.showToast({
icon:'none',
title: '姓名不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.school_name==''){
uni.showToast({
icon:'none',
title: '学校名称不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.department_name==''){
uni.showToast({
icon:'none',
title: '院系不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.code==''){
uni.showToast({
icon:'none',
title: '学号不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.start_date==''){
uni.showToast({
icon:'none',
title: '入学时间不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.mobile==''){
uni.showToast({
icon:'none',
title: '联系电话不能为空',
duration: 2000
});
return ;
}
if(_this.studInfo.sms_code==''){
uni.showToast({
icon:'none',
title: '验证码不能为空',
duration: 2000
});
return ;
}
// console.log('img完整路径:'+_this.studInfo.certificate_img, '----------')
// console.log('image不完整路径:'+_this.certificate_img, '----------')
if(data.certificate_img==''){
uni.showToast({
icon:'none',
title: '请上传证件',
duration: 2000
});
return ;
}
setTimeout(()=>{
App._post_form('&p=student&do=studentIdentityAttestation',data, res => {
if(res.errno==0){
uni.showToast({
title: res.message
})
setTimeout(()=>{
uni.navigateBack({
delta:1
})
}, 2000)
}
}, (err)=>{
// console.log(err.data.message);
if(err.data.message=='认证已成功,请勿重复申请认证'
|| err.data.message.indexOf('认证申请失败')!==-1){
uni.navigateBack({
delta: 1
})
}
}, ()=>{
console.log('complete');
});
})
},
// 文件上传接口
async uploadFiles(type=1) {
let _this = this;
// #ifdef H5
if(App.getClientType() == 2){
let res = await App.browser_upload(6);
for (let i = 0; i < res.tempFilePaths.length; i++) {
let aa = await App._upLoad(res.tempFilePaths[i]);
if (type == 1) {
_this.studInfo.pic.splice(0, 1, aa.data.image);
_this.picArray.splice(0, 1, aa.data.img);
} else {
_this.studInfo.pic.splice(1, 1, aa.data.image);
_this.picArray.splice(1, 1, aa.data.img);
}
}
return
}
wxApi.choseImage(res => {
wxApi.uoloadIg(res.localIds[0], data => {
if (data.errMsg === 'uploadImage:ok') {
uni.showLoading({});
let requestData = {
upload_type: 2,
id: data.serverId
};
App._post_form(
'&do=uploadFiles',
requestData,
res => {
if (res.errno === 0) {
if (type == 1) {
_this.studInfo.pic.splice(0, 1, res.data.image);
_this.picArray.splice(0, 1, res.data.img);
} else {
_this.studInfo.pic.splice(1, 1, res.data.image);
_this.picArray.splice(1, 1, res.data.img);
}
}
},
false,
() => {
uni.hideLoading();
}
);
} else {
uni.hideLoading();
App.showError('上传失败');
}
});
});
// #endif
// #ifndef H5
wx.chooseImage({
count: 6,
sourceType: ['album', 'camera'],
success: async function(res) {
for (let i = 0; i < res.tempFilePaths.length; i++) {
let result = await App._MYupLoad(res.tempFilePaths[i]);
console.log(result)
_this.studInfo.certificate_img = result.data.img;
_this.certificate_img = result.data.image;
console.log('img完整路径:'+result.data.img, 'image不完整路径:'+result.data.image, '12233');
uni.showToast({
title: result.message
})
}
}
});
// #endif
},
closePop() {
let _this = this;
_this.show = false;
},
showPop() {
let _this = this;
_this.show = true;
},
changeDate(e){
console.log(e);
this.studInfo.start_date = e;
},
maskClick(){
},
// 获取验证码
getCode(){
if(this.codeBtnText!='获取验证码'){
return;
}
let _this = this;
if (_this.studInfo.mobile == '' || _this.studInfo.mobile.length !== 11) {
uni.showToast({
icon: 'none',
title: '请输入正确的手机号',
duration: 2000
});
return;
}
let data = {
phone: _this.studInfo.mobile,
type: 4,
is_verifycode: 1
};
App._post_form('&do=PIN', data, res => {
let timer_num = 60;
let timeClock = setInterval(function() {
timer_num--;
_this.codeBtnText = timer_num + 's后重试';
// _this.timeCount = timer_num;
if (timer_num == 0) {
clearInterval(timeClock);
_this.codeBtnText='获取验证码';
}
}, 1000);
// _this.getSmsCode = res.data.code;
});
},
closePreview(){
this.studInfo.certificate_img = '';
this.certificate_img = '';
}
}
};
</script>
<style lang="less" scoped>
.submitButton1 {
width: 690upx;
height: 80upx;
background: #999999;
border-radius: 40upx;
pointer-events: none;
}
.bor1gray {
width: 21upx;
height: 21upx;
display: inline-block;
background: white;
border: 1upx solid #999999;
border-radius: 50%;
}
.personAttestation {
padding-bottom: 100upx;
font-size: 0;
background-color: #f8f8f8;
}
.wid750 {
width: 750upx;
height: 340upx;
}
.informationView {
width: 690upx;
height: 790upx;
background: rgba(255, 255, 255, 1);
border-radius: 10upx;
margin-top: 10px!important;
}
.marginAuto {
margin: auto;
}
.absolute0 {
// position: absolute;
// top: 179upx;
width: 750upx;
}
.line {
width: 8upx;
height: 27upx;
background: rgba(255, 68, 68, 1);
border-radius: 4upx;
}
.colorBlack {
color: rgba(51, 51, 51, 1);
}
.font28 {
font-size: 28upx;
}
.font24 {
font-size: 24upx;
}
.inlineBlock {
display: inline-block;
}
.verticalM {
vertical-align: middle;
}
.marginL10 {
margin-left: 10upx;
}
.marginL15 {
margin-left: 15upx;
}
.p30 {
padding: 30upx;
}
.pL30 {
padding: 0 30upx;
}
.marginT29 {
margin-top: 29upx;
}
.marginT40 {
margin-top: 40upx;
}
.inputView {
width: 630upx;
height: 83upx;
background: rgba(250, 250, 250, 1);
border-radius: 10upx;
> text {
display: inline-block;
line-height: 83upx;
width: 160upx;
text-align: right;
position: relative;
}
> text::before {
content: '*';
position: absolute;
top: 2px;
left: 6px;
color: #f00;
}
> input {
height: 100%;
width: 365upx;
}
}
.marginT18 {
margin-top: 18upx;
}
.marginT35 {
margin-top: 35upx;
}
.marginT30auto {
margin: 30upx auto 0 auto;
}
.p0p50 {
padding: 0 50upx;
}
.uploadView {
width: 690upx;
// height: 379upx;
background: rgba(255, 255, 255, 1);
border-radius: 10upx;
}
.uploadButton {
width: 160upx;
height: 160upx;
background: rgba(248, 248, 248, 1);
border-radius: 10upx;
border: 1px solid #e0e0e0;
}
.imageHave {
width:630upx;
}
.flex {
display: flex;
justify-content: space-between;
}
.upLoadImg {
width: 48upx;
height: 48upx;
margin: 56upx auto;
}
.color999999 {
color: rgba(153, 153, 153, 1);
}
.color4F6D8C {
color: #4f6d8c;
}
.textC {
text-align: center;
}
.image22 {
width: 22upx;
height: 22upx;
}
.submitButton {
width: 690upx;
height: 80upx;
background: rgba(255, 68, 68, 1);
border-radius: 40upx;
}
.marginT70auto {
margin: 70upx auto 20upx auto;
}
.lineHeight80 {
line-height: 80upx;
}
.colorW {
color: rgba(255, 255, 255, 1);
}
/deep/ .uni-date-x--border{
border: none;
}
/deep/ .uni-date-x{
background-color: transparent;
}
/deep/ .uni-date__x-input{
line-height: 40px;
}
.inputView /deep/ text.uni-icons{
// vertical-align: bottom;
// vertical-align: -webkit-baseline-middle;
}
/deep/ .uni-date-x .icon-calendar {
padding-top: 5px;
}
.inputView /deep/ .icon-calendar:before{
content: none;
}
.close {
width: 32upx !important;
height: 32upx !important;
position: absolute;
right: 10px;
top: 10px;
z-index: 30;
}
</style>