Files
dou_fire/pages/work/perfectBasis.vue
2022-12-27 09:17:32 +08:00

319 lines
9.1 KiB
Vue

<template>
<view class="content">
<block v-if="!loding">
<view class="from">
<view class="from-item from-item-50">
<label><text>*</text>姓名</label>
<input class="from-input" disabled v-model="baseInfo.name" type="text" placeholder="真实姓名">
</view>
<view class="from-item from-item-50">
<label><text>*</text>性别</label>
<input class="from-input" disabled v-model="baseInfo.sex" type="text" placeholder="性别">
</view>
<view class="from-item from-item-50">
<label><text>*</text>年龄</label>
<input class="from-input" disabled v-model="baseInfo.age" type="text" placeholder="年龄">
</view>
<view class="from-item from-item-50">
<label><text>*</text>属相</label>
<input class="from-input" disabled v-model="baseInfo.zodiak" type="text" placeholder="属相">
</view>
<view class="from-item from-item-100">
<label>
<text>*</text>婚姻
<uni-icons v-if="baseInfo.check_params.marriage" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.marriage.description)"></uni-icons>
</label>
<picker
:disabled="isCheck && !baseInfo.check_params.hasOwnProperty('marriage')"
class="from-picker"
:range="baseInfo.marriages"
:value="baseInfo.marriage"
@change="baseInfo.marriage = $event.detail.value"
>
<view class="from-picker-text">
<view class="nowrap">{{baseInfo.marriages[baseInfo.marriage]}}</view>
<u-icon class="icon" name="arrow-down-fill" color="#999" size="10"></u-icon>
</view>
</picker>
</view>
<view class="from-item from-item-100" v-if="baseInfo.marriage == 1">
<label>
<text>*</text>配偶姓名
<uni-icons v-if="baseInfo.check_params.mate" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.mate.description)"></uni-icons>
</label>
<input
class="from-input"
v-model="baseInfo.mate"
type="text"
placeholder="输入配偶姓名"
>
</view>
<view class="from-item from-item-50">
<label>
<text>*</text>学历
<uni-icons v-if="baseInfo.check_params.marriage" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.education.description)"></uni-icons>
</label>
<picker class="from-picker" :range="baseInfo.educations" :value="baseInfo.education" @change="baseInfo.education = $event.detail.value">
<view class="from-picker-text">
<view class="nowrap">{{baseInfo.educations[baseInfo.education]}}</view>
<u-icon class="icon" name="arrow-down-fill" color="#999" size="10"></u-icon>
</view>
</picker>
</view>
<view class="from-item from-item-50">
<label>
<text>*</text>毕业院校
<uni-icons v-if="baseInfo.check_params.school" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.school.description)"></uni-icons>
</label>
<input class="from-input" type="text" v-model="baseInfo.school" placeholder="输入毕业院校">
</view>
<view class="from-item from-item-100">
<label><text>*</text>身份证号</label>
<input class="from-input" disabled type="text" v-model="baseInfo.id_card" placeholder="身份证号">
</view>
<view class="from-item from-item-100">
<label><text>*</text>身份证地址</label>
<input class="from-input" type="text" disabled v-model="baseInfo.address" placeholder="身份证地址">
</view>
<view class="from-item from-item-100">
<label>
<text>*</text>联系电话
<uni-icons v-if="baseInfo.check_params.mobile" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.mobile.description)"></uni-icons>
</label>
<input class="from-input" type="number" v-model="baseInfo.mobile" placeholder="输入的联系电话">
</view>
<view class="from-item from-item-100">
<label>
<text>*</text>联系地址
<uni-icons v-if="baseInfo.check_params.contact_address" class="from-icon" type="info" size="18" color="red" @click="modifyToast(baseInfo.check_params.contact_address.description)"></uni-icons>
</label>
<view class="from-city-picker">
<uni-data-picker
:localdata="cityPicker"
:border="false"
split="-"
placeholder="选择城市"
v-model="baseInfo.district_id"
@change="onCityPicker"
></uni-data-picker>
</view>
</view>
<view class="from-item from-item-100">
<textarea class="from-textarea" auto-height type="text" v-model="baseInfo.tmp_address" placeholder="输入详细地址"></textarea>
</view>
</view>
<view class="btn">
<button size="default" @click="onSubmit">提交基础资料</button>
</view>
</block>
</view>
</template>
<script>
import { perfectBase, updPerfectBase } from '@/apis/interfaces/order.js'
import { region } from '@/apis/interfaces/address.js'
export default {
data() {
return {
loding : true,
baseInfo : {},
cityPicker : [],
isCheck : false
};
},
created() {
uni.showLoading({
title: '加载中...',
mask : true
})
region().then(res => {
this.cityPicker = res;
this.getPerfectBase()
}).then(err => {
uni.showToast({
title: '获取城市信息失败:' + err.message,
icon : 'none'
})
})
},
methods: {
// 获取用户基础信息
getPerfectBase(){
perfectBase(this.$Route.query.orderId).then(res => {
let { base, province } = res;
this.baseInfo = base;
this.isCheck = base.check_params.toString() != ''
this.loding = false;
uni.hideLoading()
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
},
// 选择城市
onCityPicker(e){
let { value } = e.detail
this.baseInfo.district_id = value[0].value
this.baseInfo.city_id = value[1].value
this.baseInfo.province_id = value[2].value
},
// 提交基础资料
onSubmit(){
let data = {
mobile : this.baseInfo.mobile,
marriage : this.baseInfo.marriage,
mate : this.baseInfo.mate,
education : this.baseInfo.education,
school : this.baseInfo.school,
tmp_address : this.baseInfo.tmp_address,
province_id : this.baseInfo.district_id,
city_id : this.baseInfo.city_id,
district_id : this.baseInfo.province_id
}
uni.showModal({
title : '提示',
content : '请确认资料无误,提交后在审核期间不可更改',
cancelText : '稍后',
confirmText : '确认无误',
success : ModalRes => {
if(ModalRes.confirm){
uni.showLoading({
title: '提交中...',
mask : true
})
updPerfectBase(this.baseInfo.business_order_user_id, data).then(res => {
uni.hideLoading()
uni.showModal({
title : '提示',
content : '资料已保存',
showCancel : false,
success : ModalRes => {
this.$Router.back()
}
})
}).catch(err => {
uni.showToast({
title: err.message,
icon : 'none'
})
})
}
}
})
},
// 修改提示信息
modifyToast(text){
uni.showModal({
title : '驳回原因',
content : text || '-',
showCancel : false,
})
}
}
}
</script>
<style lang="scss">
.content{
padding-top: 30rpx;
box-sizing: border-box;
}
// btn
.btn{
padding: 0 30rpx 60rpx 30rpx;
button[size="default"]{
color: white;
height: 100rpx;
line-height: 100rpx;
border-radius: 45rpx;
background-color: $main-color;
padding: 0;
border-radius: 20rpx;
font-size: 34rpx;
&::after{
display: none;
}
}
}
// form
.from{
margin:0 30rpx 30rpx 30rpx;
background: white;
display: flex;
flex-wrap: wrap;
border-radius: 20rpx;
padding: 15rpx;
.from-item{
margin: 15rpx;
&.from-item-50{
width: calc(50% - 30rpx);
}
&.from-item-100{
width: calc(100% - 30rpx);
}
label{
color: #111111;
font-size: 30rpx;
padding-bottom: 20rpx;
display: block;
& > text{
color: #FF0101;
margin-right: 5rpx;
display: inline-block;
}
.from-icon{
vertical-align: top;
margin-left: 10rpx;
}
}
.from-input{
background: #F6F6F6;
width: 100%;
height: 90rpx;
border-radius: 10rpx;
padding: 0 30rpx;
box-sizing: border-box;
font-size: 30rpx;
}
.from-textarea{
padding: 20rpx 30rpx;
background: #F6F6F6;
width: 100%;
box-sizing: border-box;
font-size: 30rpx;
line-height: 50rpx;
border-radius: 10rpx;
}
.from-picker{
.from-picker-text{
position: relative;
background: #F6F6F6;
width: 100%;
height: 90rpx;
line-height: 90rpx;
border-radius: 10rpx;
font-size: 30rpx;
padding: 0 90rpx 0 30rpx;
box-sizing: border-box;
& > .icon{
position: absolute;
right: 30rpx;
top: 50%;
margin-top: -10rpx;
}
}
}
.from-city-picker{
@extend .from-picker;
.from-picker-text{
text{
margin-left: 10rpx;
}
}
}
}
}
</style>