|
|
@@ -3,41 +3,156 @@
|
|
|
<view class="page page-shadow">
|
|
|
<uni-forms ref="formRef" :model="formData" :rules="rules" labelWidth="200" label-position="top"
|
|
|
class="payment-form">
|
|
|
- <!-- 第一步:个人信息 -->
|
|
|
+ <!-- 第一步:身份证明 -->
|
|
|
<view v-show="currentStep === 1" class="form-section">
|
|
|
- <h3 class="section-title">{{ t('ImproveImmediately.Title.BasicInformation') }}</h3>
|
|
|
<uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
-<!-- ocr识别-->
|
|
|
- <uni-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb-3">
|
|
|
- ocr
|
|
|
- <cwg-file-picker-wrapper v-model="ocrObj" :limit="1"
|
|
|
- :fileMediatype="'all'" uploadUrl="/custom/file/upload/1" :baseUrl="updateUrl" :imageWidth="150"
|
|
|
- :imageHeight="150" :showPreviewDelete="false" :canDelete="false" :uploadError="false"
|
|
|
- :showProgress="false" :canChoose="true" :showError="false" :show-progress="false" disablePreview
|
|
|
- :image-styles="imageStyle" @update:modelValue="(val) => handleFileUpdate(val, '1')"
|
|
|
- customClass="avatar-uploader">
|
|
|
- <view class="file-item">
|
|
|
- <image v-if="!isPdf(fileListID1.path)" class="avatar" :src="updateUrl + (fileListID1.path)">
|
|
|
- </image>
|
|
|
- <view v-else>
|
|
|
- <image class="icon" :src="icon_doc" />
|
|
|
+ <uni-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
|
|
+ <view class="crm-title-box">
|
|
|
+ <text class="tit">{{ t('ImproveImmediately.Title.ProofIdentityUpdate') }}</text>
|
|
|
+ <uni-tooltip :placement="isMobile?'left':'bottom'">
|
|
|
+ <text class="icon-tip">ⓘ</text>
|
|
|
+ <template v-slot:content>
|
|
|
+ <view class="address-tip">
|
|
|
+ {{ t('ImproveImmediately.Content.popover1') }}
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </uni-tooltip>
|
|
|
+
|
|
|
+ </view>
|
|
|
+ <uni-forms-item name="cardType" :label="t('ImproveImmediately.Label.CardType')">
|
|
|
+ <cwg-combox :clearable="false" v-model:value="formData.cardType" :options="cardTypeOptions"
|
|
|
+ :placeholder="t('placeholder.choose')" />
|
|
|
+ </uni-forms-item>
|
|
|
+ <uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
+ <uni-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10" class="mb-3">
|
|
|
+ <cwg-file-picker-wrapper v-model="fileListID1.path" :editable="fileListID1.status != 2" :limit="1"
|
|
|
+ :fileMediatype="'all'" uploadUrl="/custom/file/upload/1" :baseUrl="updateUrl" :imageWidth="150"
|
|
|
+ :imageHeight="150" :showPreviewDelete="false" :canDelete="false" :uploadError="false"
|
|
|
+ :showProgress="false" :canChoose="true" :showError="false" :show-progress="false" disablePreview
|
|
|
+ :image-styles="imageStyle" @update:modelValue="(val) => handleFileUpdate(val, '1')"
|
|
|
+ customClass="avatar-uploader">
|
|
|
+ <view class="file-item">
|
|
|
+ <image v-if="!isPdf(fileListID1.path)" class="avatar" :src="updateUrl + (fileListID1.path)">
|
|
|
+ </image>
|
|
|
+ <view v-else>
|
|
|
+ <image class="icon" :src="icon_doc" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </cwg-file-picker-wrapper>
|
|
|
+ <!-- <view v-else>-->
|
|
|
+ <!-- <view class="file-item">-->
|
|
|
+ <!-- <image-->
|
|
|
+ <!-- v-if="!isPdf(fileListID1.path)"-->
|
|
|
+ <!-- class="avatar"-->
|
|
|
+ <!-- :src="updateUrl + fileListID1.path"-->
|
|
|
+ <!-- ></image>-->
|
|
|
+ <!-- <view v-else>-->
|
|
|
+ <!-- <image class="icon" :src="icon_doc" />-->
|
|
|
+ <!-- </view>-->
|
|
|
+
|
|
|
+ <!-- </view>-->
|
|
|
+ <!-- </view>-->
|
|
|
+ </uni-col>
|
|
|
+ <uni-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10">
|
|
|
+ <cwg-file-picker-wrapper v-model="fileListID2.path" :editable="fileListID2.status != 2" :limit="1"
|
|
|
+ :fileMediatype="'all'" uploadUrl="/custom/file/upload/2" :baseUrl="updateUrl" :imageWidth="150"
|
|
|
+ :imageHeight="150" :showPreviewDelete="false" :canDelete="false" :uploadError="false"
|
|
|
+ :showProgress="false" :canChoose="true" :showError="false" :show-progress="false" disablePreview
|
|
|
+ :image-styles="imageStyle" @update:modelValue="(val) => handleFileUpdate(val, '2')"
|
|
|
+ customClass="avatar-uploader">
|
|
|
+ <view class="file-item">
|
|
|
+ <image v-if="!isPdf(fileListID2.path)" class="avatar" :src="updateUrl + (fileListID2.path)">
|
|
|
+ </image>
|
|
|
+ <view v-else>
|
|
|
+ <image class="icon" :src="icon_doc" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </cwg-file-picker-wrapper>
|
|
|
+ </uni-col>
|
|
|
+ <uni-col :xs="24" :sm="24" :md="4" :lg="4" :xl="4">
|
|
|
+ <view class="refresh">
|
|
|
+ <image :src="icon_refresh" @click="getCustomFileList" />
|
|
|
</view>
|
|
|
- </view>
|
|
|
- </cwg-file-picker-wrapper>
|
|
|
- <!-- <view v-else>-->
|
|
|
- <!-- <view class="file-item">-->
|
|
|
- <!-- <image-->
|
|
|
- <!-- v-if="!isPdf(fileListID1.path)"-->
|
|
|
- <!-- class="avatar"-->
|
|
|
- <!-- :src="updateUrl + fileListID1.path"-->
|
|
|
- <!-- ></image>-->
|
|
|
- <!-- <view v-else>-->
|
|
|
- <!-- <image class="icon" :src="icon_doc" />-->
|
|
|
- <!-- </view>-->
|
|
|
-
|
|
|
- <!-- </view>-->
|
|
|
- <!-- </view>-->
|
|
|
+ </uni-col>
|
|
|
+ </uni-row>
|
|
|
</uni-col>
|
|
|
+ <cwg-match-media :min-width="991">
|
|
|
+ <uni-col v-if="isPC" :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
|
|
+ <view class="crm-title-box">
|
|
|
+ <text class="tit">{{ t('ImproveImmediately.Title.MobileDeviceUpload') }}</text>
|
|
|
+ <uni-tooltip :placement="isMobile?'left':'bottom'">
|
|
|
+ <text class="icon-tip">ⓘ</text>
|
|
|
+ <template v-slot:content>
|
|
|
+ <view class="address-tip">
|
|
|
+ {{ t('ImproveImmediately.Content.popover2') }}
|
|
|
+ </view>
|
|
|
+ </template>
|
|
|
+ </uni-tooltip>
|
|
|
+ </view>
|
|
|
+ <view class="con-box">
|
|
|
+ <view class="box">
|
|
|
+ <image class="mobile" :src="icon_mobile" />
|
|
|
+ <image class="arrow" :src="icon_arrowR" />
|
|
|
+ <image class="img_mobile" style="
|
|
|
+ display: inline-block;
|
|
|
+ width: 120px;
|
|
|
+ height: 120px;
|
|
|
+ border: 8px solid var(--color-gray);
|
|
|
+ " :src="mobile">
|
|
|
+ <div slot="error" class="image-slot">
|
|
|
+ <i class="el-icon-picture-outline"></i>
|
|
|
+ </div>
|
|
|
+ </image>
|
|
|
+ <image class="icon_refresh" :src="icon_refresh" @click="getMobileInfo" />
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+
|
|
|
+ </uni-col>
|
|
|
+ </cwg-match-media>
|
|
|
+ </uni-row>
|
|
|
+ <view class="descending">
|
|
|
+ <p class="title">
|
|
|
+ <span class="dian1">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Title.IdentificationStatement') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des">
|
|
|
+ <span class="dian">-</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity4') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des">
|
|
|
+ <span class="dian">-</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity5') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
+ <span class="dian">-</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity6') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des">
|
|
|
+ <span class="dian">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity1') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des">
|
|
|
+ <span class="dian">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity2') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des">
|
|
|
+ <span class="dian">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity3') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
+ <span class="dian">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity7') }}</span>
|
|
|
+ </p>
|
|
|
+ <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
+ <span class="dian">·</span>
|
|
|
+ <span>{{ t('ImproveImmediately.Content.ProofIdentity8') }}</span>
|
|
|
+ </p>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <!-- 第二步:个人信息 -->
|
|
|
+ <view v-show="currentStep === 2" class="form-section">
|
|
|
+ <h3 class="section-title">{{ t('ImproveImmediately.Title.BasicInformation') }}</h3>
|
|
|
+ <uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
<!-- 客户类型 -->
|
|
|
<uni-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
|
|
|
<uni-forms-item :label="t('ImproveImmediately.Label.CustomerType')">
|
|
|
@@ -183,8 +298,8 @@
|
|
|
</uni-col>
|
|
|
</uni-row>
|
|
|
</view>
|
|
|
- <!-- 第二步:财务背景 -->
|
|
|
- <view v-show="currentStep === 2" class="form-section">
|
|
|
+ <!-- 第三步:财务背景 -->
|
|
|
+ <view v-show="currentStep === 3" class="form-section">
|
|
|
<h3 class="section-title">{{ t('ImproveImmediately.Title.FinancialBackground') }}</h3>
|
|
|
<uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
<uni-col :xs="24" :sm="24" :md="12" :lg="8" :xl="8">
|
|
|
@@ -251,153 +366,6 @@
|
|
|
</view>
|
|
|
</view>
|
|
|
</view>
|
|
|
- <!-- 第三步:身份证明 -->
|
|
|
- <view v-show="currentStep === 3" class="form-section">
|
|
|
-
|
|
|
- <uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
- <uni-col :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
|
|
- <view class="crm-title-box">
|
|
|
- <text class="tit">{{ t('ImproveImmediately.Title.ProofIdentityUpdate') }}</text>
|
|
|
- <uni-tooltip :placement="isMobile?'left':'bottom'">
|
|
|
- <text class="icon-tip">ⓘ</text>
|
|
|
- <template v-slot:content>
|
|
|
- <view class="address-tip">
|
|
|
- {{ t('ImproveImmediately.Content.popover1') }}
|
|
|
- </view>
|
|
|
- </template>
|
|
|
- </uni-tooltip>
|
|
|
-
|
|
|
- </view>
|
|
|
- <uni-forms-item name="cardType" :label="t('ImproveImmediately.Label.CardType')">
|
|
|
- <cwg-combox :clearable="false" v-model:value="formData.cardType" :options="cardTypeOptions"
|
|
|
- :placeholder="t('placeholder.choose')" />
|
|
|
- </uni-forms-item>
|
|
|
- <uni-row class="demo-uni-row uni-row1" :gutter="20">
|
|
|
- <uni-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10" class="mb-3">
|
|
|
- <cwg-file-picker-wrapper v-model="fileListID1.path" :editable="fileListID1.status != 2" :limit="1"
|
|
|
- :fileMediatype="'all'" uploadUrl="/custom/file/upload/1" :baseUrl="updateUrl" :imageWidth="150"
|
|
|
- :imageHeight="150" :showPreviewDelete="false" :canDelete="false" :uploadError="false"
|
|
|
- :showProgress="false" :canChoose="true" :showError="false" :show-progress="false" disablePreview
|
|
|
- :image-styles="imageStyle" @update:modelValue="(val) => handleFileUpdate(val, '1')"
|
|
|
- customClass="avatar-uploader">
|
|
|
- <view class="file-item">
|
|
|
- <image v-if="!isPdf(fileListID1.path)" class="avatar" :src="updateUrl + (fileListID1.path)">
|
|
|
- </image>
|
|
|
- <view v-else>
|
|
|
- <image class="icon" :src="icon_doc" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </cwg-file-picker-wrapper>
|
|
|
- <!-- <view v-else>-->
|
|
|
- <!-- <view class="file-item">-->
|
|
|
- <!-- <image-->
|
|
|
- <!-- v-if="!isPdf(fileListID1.path)"-->
|
|
|
- <!-- class="avatar"-->
|
|
|
- <!-- :src="updateUrl + fileListID1.path"-->
|
|
|
- <!-- ></image>-->
|
|
|
- <!-- <view v-else>-->
|
|
|
- <!-- <image class="icon" :src="icon_doc" />-->
|
|
|
- <!-- </view>-->
|
|
|
-
|
|
|
- <!-- </view>-->
|
|
|
- <!-- </view>-->
|
|
|
- </uni-col>
|
|
|
- <uni-col :xs="24" :sm="24" :md="10" :lg="10" :xl="10">
|
|
|
- <cwg-file-picker-wrapper v-model="fileListID2.path" :editable="fileListID2.status != 2" :limit="1"
|
|
|
- :fileMediatype="'all'" uploadUrl="/custom/file/upload/2" :baseUrl="updateUrl" :imageWidth="150"
|
|
|
- :imageHeight="150" :showPreviewDelete="false" :canDelete="false" :uploadError="false"
|
|
|
- :showProgress="false" :canChoose="true" :showError="false" :show-progress="false" disablePreview
|
|
|
- :image-styles="imageStyle" @update:modelValue="(val) => handleFileUpdate(val, '2')"
|
|
|
- customClass="avatar-uploader">
|
|
|
- <view class="file-item">
|
|
|
- <image v-if="!isPdf(fileListID2.path)" class="avatar" :src="updateUrl + (fileListID2.path)">
|
|
|
- </image>
|
|
|
- <view v-else>
|
|
|
- <image class="icon" :src="icon_doc" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
- </cwg-file-picker-wrapper>
|
|
|
- </uni-col>
|
|
|
- <uni-col :xs="24" :sm="24" :md="4" :lg="4" :xl="4">
|
|
|
- <view class="refresh">
|
|
|
- <image :src="icon_refresh" @click="getCustomFileList" />
|
|
|
- </view>
|
|
|
- </uni-col>
|
|
|
- </uni-row>
|
|
|
- </uni-col>
|
|
|
- <cwg-match-media :min-width="991">
|
|
|
- <uni-col v-if="isPC" :xs="24" :sm="24" :md="12" :lg="12" :xl="12">
|
|
|
- <view class="crm-title-box">
|
|
|
- <text class="tit">{{ t('ImproveImmediately.Title.MobileDeviceUpload') }}</text>
|
|
|
- <uni-tooltip :placement="isMobile?'left':'bottom'">
|
|
|
- <text class="icon-tip">ⓘ</text>
|
|
|
- <template v-slot:content>
|
|
|
- <view class="address-tip">
|
|
|
- {{ t('ImproveImmediately.Content.popover2') }}
|
|
|
- </view>
|
|
|
- </template>
|
|
|
- </uni-tooltip>
|
|
|
- </view>
|
|
|
- <view class="con-box">
|
|
|
- <view class="box">
|
|
|
- <image class="mobile" :src="icon_mobile" />
|
|
|
- <image class="arrow" :src="icon_arrowR" />
|
|
|
- <image class="img_mobile" style="
|
|
|
- display: inline-block;
|
|
|
- width: 120px;
|
|
|
- height: 120px;
|
|
|
- border: 8px solid var(--color-gray);
|
|
|
- " :src="mobile">
|
|
|
- <div slot="error" class="image-slot">
|
|
|
- <i class="el-icon-picture-outline"></i>
|
|
|
- </div>
|
|
|
- </image>
|
|
|
- <image class="icon_refresh" :src="icon_refresh" @click="getMobileInfo" />
|
|
|
- </view>
|
|
|
- </view>
|
|
|
-
|
|
|
- </uni-col>
|
|
|
- </cwg-match-media>
|
|
|
- </uni-row>
|
|
|
- <view class="descending">
|
|
|
- <p class="title">
|
|
|
- <span class="dian1">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Title.IdentificationStatement') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des">
|
|
|
- <span class="dian">-</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity4') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des">
|
|
|
- <span class="dian">-</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity5') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
- <span class="dian">-</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity6') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des">
|
|
|
- <span class="dian">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity1') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des">
|
|
|
- <span class="dian">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity2') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des">
|
|
|
- <span class="dian">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity3') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
- <span class="dian">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity7') }}</span>
|
|
|
- </p>
|
|
|
- <p class="des" v-if="['cn', 'zhHant'].indexOf(locale) == -1">
|
|
|
- <span class="dian">·</span>
|
|
|
- <span>{{ t('ImproveImmediately.Content.ProofIdentity8') }}</span>
|
|
|
- </p>
|
|
|
- </view>
|
|
|
- </view>
|
|
|
<!-- 第四步:地址证明 -->
|
|
|
<view v-show="currentStep === 4" class="form-section">
|
|
|
<!--去掉地址证明-->
|
|
|
@@ -723,7 +691,6 @@ const divActiveHelf = ref(false)
|
|
|
const divActiveAll = ref(false)
|
|
|
const websock = ref(null)
|
|
|
const isPC = ref(true)
|
|
|
-const ocrObj = ref()
|
|
|
const fileListID1 = ref({ againPath: '', id: null, path: '', status: null, type: null })
|
|
|
const fileListID2 = ref({ againPath: '', id: null, path: '', status: null, type: null })
|
|
|
const fileListAdd1 = ref({ againPath: '', id: null, path: '', status: null, type: null })
|
|
|
@@ -896,13 +863,13 @@ onLoad((options) => {
|
|
|
|
|
|
function goStep(step: number) {
|
|
|
console.log(step, 'step')
|
|
|
- if (step == 2){
|
|
|
+ if (step == 3){
|
|
|
if (!formData.value?.identity){
|
|
|
toast(t('vaildate.IDCard.empty'))
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- if (step == 4) {
|
|
|
+ if (step == 2) {
|
|
|
if (currentUploadCard.value == 1) {
|
|
|
if (!formData.value.cardType) {
|
|
|
toast( t('vaildate.CardType.empty'))
|
|
|
@@ -1097,6 +1064,10 @@ function handleFileUpdate(value, type) {
|
|
|
getCustomFileList();
|
|
|
}
|
|
|
}
|
|
|
+function handleOcr(value, type) {
|
|
|
+ console.log(value, type, 'uplaod')
|
|
|
+
|
|
|
+}
|
|
|
const showFile = (file) => {
|
|
|
// console.log(file)
|
|
|
window.open(updateUrl + (file.againPath || file.path), '_blank')
|