Files
cashier_app/entryManager/add/components/legalPerpole-info.vue

289 lines
6.4 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>
<view class="u-font-32 font-bold u-m-32 text-center">法人信息</view>
<view class="container">
<view class="form-item required">
<view class="title"> 身份证正面国徽</view>
<my-upload-img v-model="form.idCardFrontPic.url" :size="200" :maxSize="maxSize"
@uploadSuccess="uploadSuccess($event,'IdCard','idCardFrontPic')"
></my-upload-img>
</view>
<view class="form-item required">
<view class="title"> 身份证反面人像</view>
<my-upload-img v-model="form.idCardBackPic.url" :size="200" :maxSize="maxSize"
@uploadSuccess="uploadSuccess($event,'IdCard','idCardBackPic')"
></my-upload-img>
</view>
<view class="form-item required">
<view class="title"> 身份证手持 图片</view>
<my-upload-img v-model="form.idCardHandPic.url" :size="200" :maxSize="maxSize"></my-upload-img>
</view>
<view class="form-item required">
<view class="title"> 法人姓名</view>
<up-input placeholder="法人姓名" :placeholder-class="placeholderClass"
v-model="form.legalPersonName"></up-input>
</view>
<view class="form-item required">
<view class="title">法人性别</view>
<up-radio-group v-model="form.legalGender">
<up-radio v-for="(value,key) in sexs" :label="value" :name="key">
</up-radio>
</up-radio-group>
</view>
<view class="form-item required">
<view class="title"> 法人身份证号</view>
<up-input placeholder="法人身份证号" :placeholder-class="placeholderClass"
v-model="form.legalPersonId"></up-input>
</view>
<view class="form-item required">
<view class="title"> 法人身份证开始日期</view>
<up-datetime-picker hasInput :minDate="minDate" :maxDate="dayjs().valueOf()" format="YYYY-MM-DD"
placeholder="请选择" v-model="form.legalIdPersonStartDate" mode="date">
</up-datetime-picker>
</view>
<view class="form-item required">
<view class="title"> 法人身份证到期日期</view>
<view class="u-m-b-16">
<up-radio-group v-model="endDateType">
<up-radio :name="1" label="有结束日期"></up-radio>
<up-radio :name="2" label="长期有效"></up-radio>
</up-radio-group>
</view>
<template v-if="endDateType==1">
<up-datetime-picker hasInput :minDate="endDataMinDate"
:maxDate="maxDate" format="YYYY-MM-DD" placeholder="请选择"
v-model="form.legalPersonIdEndDate" mode="date">
</up-datetime-picker>
</template>
</view>
<view class="form-item required">
<view class="title"> 法人电话</view>
<up-input placeholder="法人电话" :placeholder-class="placeholderClass"
v-model="form.legalPersonPhone"></up-input>
</view>
<view class="form-item required">
<view class="title">法人地址 </view>
<up-input placeholder="法人地址" :placeholder-class="placeholderClass"
v-model="form.legalAddress"></up-input>
</view>
<view class="form-item required">
<view class="title">法人邮箱 </view>
<up-input placeholder="法人邮箱" :placeholder-class="placeholderClass"
v-model="form.legalPersonEmail"></up-input>
</view>
</view>
</view>
</template>
<script setup>
import {
reactive,
watch,computed ,
ref
} from 'vue';
import shopSelect from './shop-select.vue'
import {
userTypes,
sexs,
contactPersonTypes,
companyChildTypes,
certTypes
} from '@/entryManager/data.js'
const form = reactive({
"legalPersonName": "",
"legalPersonId": "",
"legalIdPersonStartDate":'',
"legalPersonIdEndDate": '',
"legalPersonPhone": "",
"legalPersonEmail": "",
"legalGender": "",
"legalAddress": "",
"idCardHandPic": {
"url": "",
"wechatId": "",
"alipayId": ""
},
"idCardFrontPic": {
"url": "",
"wechatId": "",
"alipayId": ""
},
"idCardBackPic": {
"url": "",
"wechatId": "",
"alipayId": ""
}
})
import {
getInfoByImg
} from '@/http/api/order/entryManager.js'
import dayjs from 'dayjs';
import { includes } from 'lodash';
const minDate = dayjs('1970-01-01 00:00:00').valueOf()
const maxDate = dayjs('2099-12-31 23:59:59').valueOf()
const endDataMinDate = computed(() => {
if (!form.legalIdPersonStartDate) {
return maxDate
}
if (form.legalIdPersonStartDate) {
return dayjs(form.legalIdPersonStartDate).add(10, 'year').valueOf()
}
})
const endDateType = ref(1)
watch(() => endDateType.value, (newval) => {
if (newval == 2) {
form.legalPersonIdEndDate = maxDate
} else {
form.legalPersonIdEndDate = dayjs().valueOf()
}
})
function uploadSuccess(url, type, key) {
uni.showLoading({
type: '识别中,请稍等……!'
})
getInfoByImg({
url,
type
}).then(res => {
uni.hideLoading()
if (res) {
const data = res.subImages[0].kvInfo.data
if (key == 'idCardFrontPic') {
if (data.validPeriod) {
const [start, end] = data.validPeriod.split('-')
if (start) {
form.legalIdPersonStartDate = dayjs(start).valueOf()
}
if (end) {
if (end.includes('长期')) {
endDateType.value = 2
} else {
form.legalPersonIdEndDate = dayjs(end).valueOf()
}
}
}
}
if (key == 'idCardBackPic') {
form.legalPersonName = data.name
form.legalPersonId = data.idNumber
form.legalAddress = data.address
if(data.sex.includes('男')){
form.legalGender='0'
}
if(data.sex.includes('女')){
form.legalGender='1'
}
}
}
})
}
const placeholderClass = ref('u-font-28')
const props = defineProps({
data: {
type: Object,
default: () => {
}
},
maxSize:{
}
})
watch(() => props.data, (newval) => {
for (let key in form) {
if (props.data.hasOwnProperty(key)) {
form[key] = props.data[key]
}
}
}, {
deep: true,
immediate: true
})
const emits = defineEmits(['update'])
watch(() => form, (newval) => {
emits('update', newval)
}, {
deep: true
})
watch(()=>form.legalPersonIdEndDate,(newval)=>{
if(dayjs(newval).format('YYYY-MM-DD')==='2099-12-31'){
endDateType.value=2
}
})
</script>
<style lang="scss">
.container {
padding: 32rpx 28rpx;
border-radius: 16rpx;
margin-bottom: 32rpx;
background-color: #fff;
}
.form-item {
margin-bottom: 32rpx;
.title {
font-weight: 700;
margin-bottom: 16rpx;
}
&.required {
.title::before {
content: '*';
color: red;
}
}
&:last-child {
margin-bottom: 0;
}
}
</style>