xnzt/xnzt-h5/pages/mine/auth/index.vue
2024-11-11 10:27:27 +08:00

454 lines
9.9 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="container">
<view class="list">
<view class="item u-flex u-col-center u-row-between">
<view class="l">
姓名
</view>
<view class="r">
<input type="text" v-model="name" placeholder="请输入" :disabled="disabled">
</view>
</view>
<view class="item u-flex u-col-center u-row-between">
<view class="l">
手机号
</view>
<view class="r">
<input type="number" v-model="phone" placeholder="请输入" :disabled="disabled">
</view>
</view>
<view class="item u-flex u-col-center u-row-between">
<view class="l">
身份证号
</view>
<view class="r">
<input type="text" v-model="idCard" placeholder="请输入" :disabled="disabled">
</view>
</view>
</view>
<view class="list">
<view class="item u-flex u-col-center u-row-between">
<view class="l">
主体名称
</view>
<view class="r">
<input type="text" v-model="fullName" placeholder="请输入" :disabled="disabled">
</view>
</view>
<view class="item2">
<view class="l">
主体类型
</view>
<view class="r u-flex u-col-center ">
<view class="i" :class="{on:index1 == index}" v-for="(item,index) in list1" :key="index"
@click="change1(index)">
{{item.dictLabel}}
</view>
</view>
</view>
<view class="item2">
<view class="l">
业务类型
</view>
<view class="r u-flex u-col-center ">
<view class="i" :class="{on:index2 == index}" v-for="(item,index) in list2" :key="index"
@click="change2(index)">
{{item}}
</view>
</view>
</view>
<view class="item2">
<view class="l">
业务等级
</view>
<view class="r u-flex u-col-center ">
<view class="i" :class="{on:index3 == index}" v-for="(item,index) in list3" :key="index"
@click="change3(index)">
{{item}}
</view>
</view>
</view>
</view>
<view class="list">
<view class="item u-flex u-col-center u-row-between">
<view class="l">
所在地区
</view>
<view class="r u-flex u-col-center u-row-right" @click="visible=true">
<text v-if="areaCode">{{areaCode}}</text>
<text v-else>请选择</text>
<uni-icons type="right" size="20" color="#999"></uni-icons>
</view>
</view>
<cityPicker :column="column" :default-value="defaultValue" :mask-close-able="maskCloseAble"
@confirm="confirm" @cancel="cancel" :visible="visible" />
<view class="item u-flex u-col-center u-row-between">
<view class="l">
详细地址
</view>
<view class="r">
<input type="text" v-model="address" placeholder="请输入" :disabled="disabled">
</view>
</view>
</view>
<view class="list">
<view class="item3">
<view class="l">
营业执照
</view>
<view class="r" @click="upload">
<image :src="$config.imageBaseUrl + businessLicenseUrl" mode="aspectFill" v-if="businessLicenseUrl"></image>
<image src="@/static/images/mine/up.png" mode="aspectFill" v-else></image>
</view>
</view>
</view>
<view class="f-btn" :class="disabled?'f-info':''" @click="submit">
提交
</view>
</view>
</template>
<script>
import cityPicker from '@/components/piaoyi-cityPicker/piaoyi-cityPicker.vue'
import {fastAuthentication,authenticationData} from '@/api/mine/index.js'
import { enterpriseTpye } from '@/api/dictionary.js'
import {
uploadCommon
} from '@/api/common.js'
export default {
components: {
cityPicker
},
data() {
return {
visible: false,
maskCloseAble: true,
str: '',
defaultValue: '420111',
column: 3,
address: "",
areaCode: "",
bodyType: "家庭农场",
idCard: "",
businessLicenseUrl: "",
businessLevel: "国家级",
fullName: "",
phone: "",
name: "",
businessType: "种植",
list1: ['1', '2', '3', '4'],
list2: ['种植', '畜禽养殖', '水产养殖', '其他', '农业生产服务'],
list3: ['国家级', '省级', '市级', '区县级', '普通'],
username: '',
gender: 1,
index1: 0,
index2: 0,
index3: 0,
id: '',
userId: "",
disabled:false,
baseId:'',
}
},
onLoad() {
let user = uni.getStorageSync('user')
this.userId = user.userId
if (!this.userId) {
uni.reLaunch({
url: '/pages/index/index'
})
return
}
this.getData()
enterpriseTpye().then(res=>{
this.list1 = res.data
console.log('resssss',res)
})
// authenticationStatus(this.userId).then(res=>{
// console.log('ressss',res)
// res.data.status == 2 ? this.disabled = false : this.disabled = true
// })
},
methods: {
upload() {
uni.chooseImage({
count: 1, // 限制选择文件的数量这里只选择1个文件
sizeType: ['compressed'], // 限制选择文件的类型,这里只选择压缩过的文件
success: (res) => {
uploadCommon({
"filePath": res.tempFilePaths[0]
}).then(res => {
this.businessLicenseUrl = res.fileName
})
}
})
},
getData() {
authenticationData({"userId":this.userId}).then(res => {
// 判断认证状态是否为驳回,只有驳回才能修改
res.data.status == 2 ? this.disabled = false : this.disabled = true
if (res.code == 200) {
if (res.data) {
this.id = res.data.id
this.name = res.data.name
this.phone = res.data.phone
this.idCard = res.data.idCard
this.fullName = res.data.fullName
this.bodyType = res.data.bodyType
this.businessType = res.data.businessType
this.businessLevel = res.data.businessLevel
this.areaCode = res.data.areaCode
this.address = res.data.address
this.businessbusinessLicenseUrlUrl = res.data.businessLicenseUrl
this.index1 = this.list1.findIndex(item => item == this.bodyType)
this.index2 = this.list2.findIndex(item => item == this.businessType)
this.index3 = this.list3.findIndex(item => item == this.businessLevel)
this.baseId = res.data.baseId
}
} else {
uni.showToast({
title: res.msg,
icon: "none",
duration: 1500
});
}
console.log(res)
})
},
submit() {
let url = ''
// if (this.id) {
// url = '/xnzt/prove/updateProve'
// } else {
// url = '/xnzt/prove/saveProve'
// }
let fromData = {
address: this.address,
areaCode: this.areaCode,
bodyType: this.bodyType,
idCard: this.idCard,
businessLicenseUrl: this.businessLicenseUrl,
businessLevel: this.businessLevel,
fullName: this.fullName,
phone: this.phone,
name: this.name,
businessType: this.businessType,
userId: this.userId,
baseId:this.baseId
}
if(!this.baseId) delete fromData.baseId
fastAuthentication(fromData).then(res => {
if (res.code == 200) {
uni.showToast({
title: '操作成功',
icon: "none",
duration: 1500
});
setTimeout(() => {
uni.navigateBack({
delta: 1
})
}, 1500)
} else {
uni.showToast({
title: res.msg,
icon: "none",
duration: 1500
});
}
console.log(res)
})
},
open() {
this.visible = true
},
confirm(val) {
console.log(val)
this.areaCode = val.code
this.visible = false
},
cancel() {
this.visible = false
},
change1(index) {
this.index1 = index
this.bodyType = this.list1[index].dictValue
},
change2(index) {
this.index2 = index
this.businessType = this.list2[index]
},
change3(index) {
this.index3 = index
this.businessLevel = this.list3[index]
},
}
}
</script>
<style lang="scss" scoped>
$color: #4892FD;
.container {
padding: 30rpx 30rpx 200rpx;
.f-btn {
position: fixed;
bottom: 60rpx;
left: 30rpx;
right: 30rpx;
height: 90rpx;
line-height: 90rpx;
text-align: center;
background-color: $color;
color: #fff;
font-size: 28rpx;
border-radius: 20rpx;
}
.f-info{
background: #909399;
}
.list {
background-color: #fff;
border-radius: 20rpx;
padding: 10rpx 30rpx;
margin-bottom: 20rpx;
width:100%;
.item3 {
padding: 20rpx 0;
.l {
line-height: 60rpx;
height: 60rpx;
font-size: 28rpx;
font-weight: bold;
color: #333333;
}
.r {
margin-top: 20rpx;
image {
width: 160rpx;
height: 160rpx;
}
}
}
.item2 {
.l {
padding: 20rpx 0;
font-size: 28rpx;
font-weight: bold;
color: #333333;
}
.r {
flex-wrap: wrap;
.i {
height: 50rpx;
line-height: 50rpx;
text-align: center;
padding: 0 20rpx;
border-radius: 8rpx;
margin: 15rpx 10rpx 0 0;
color: #666;
border: 2rpx solid #eee;
font-size: 24rpx;
}
.on {
border: 2rpx solid $color;
color: $color;
background-color: #EEF7FF;
}
}
}
.item {
padding: 20rpx 0;
border-bottom: 1rpx solid #eee;
&:last-child {
border-bottom: 0;
}
.l {
font-size: 28rpx;
font-weight: bold;
color: #333333;
line-height: 60rpx;
height: 60rpx;
width: 200rpx;
text {
color: #c33;
margin-left: 6rpx;
}
}
.r {
flex: 1;
width: 1rpx;
font-size: 28rpx;
color: #333333;
line-height: 40rpx;
text-align: right;
input {
width: 100%;
height: 100%;
font-size: 28rpx;
color: #333333;
}
image {
width: 120rpx;
height: 120rpx;
border-radius: 50%;
overflow: hidden;
}
.i {
margin-left: 20rpx;
image {
width: 35rpx;
height: 35rpx;
}
text {
font-size: 24rpx;
color: #666;
margin-left: 10rpx;
}
.on {
color: $color;
}
}
text {
font-size: 24rpx;
color: #666;
margin-left: 10rpx;
}
}
}
}
}
</style>