update
This commit is contained in:
commit
c2c3580652
@ -10,6 +10,9 @@
|
||||
* @seehttps://mall.gpxscs.cn/mobile/shop/oss/upload
|
||||
*/
|
||||
|
||||
import http from '../utils/http'
|
||||
import config from '../config/config'
|
||||
|
||||
export function UploadFilePromise(filePath, formData) {
|
||||
let ukey = uni.getStorageSync('ukey');
|
||||
return new Promise((resolve, reject) => {
|
||||
@ -30,3 +33,37 @@ export function UploadFilePromise(filePath, formData) {
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
export function batchNoApi (filePath, file, type){
|
||||
return new Promise((resolve, reject) => {
|
||||
uni.uploadFile({
|
||||
url:'https://mall.gpxscs.cn/mobile/shop/lakala/tk/uploadOcrImg',
|
||||
method: "POST",
|
||||
filePath,
|
||||
name:'upfile',
|
||||
formData: {
|
||||
imgType: type,
|
||||
},
|
||||
success: (res) =>{
|
||||
if(res?.data){
|
||||
resolve(JSON.parse(res?.data)?.data)
|
||||
}
|
||||
},
|
||||
fail: (res) =>{
|
||||
reject(res)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export function imgOcrResultApi (data){
|
||||
return http({
|
||||
url:'/shop/lakala/tk/imgOcrResult',
|
||||
method:'POST',
|
||||
headers: {
|
||||
'content-type': 'application/x-www-form-urlencoded',
|
||||
},
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
@ -16,105 +16,11 @@
|
||||
:current="active"
|
||||
@change="handleSubsection"
|
||||
></u-subsection>
|
||||
<view
|
||||
class="up-block up-block-2"
|
||||
v-show="active == 0"
|
||||
style="margin-top: 0"
|
||||
>
|
||||
<u-form :model="form" class="form" ref="uForm" label-width="100">
|
||||
<u-form-item
|
||||
label="许可证类型"
|
||||
required
|
||||
prop="license_type"
|
||||
@click="showPicker = true"
|
||||
>
|
||||
<u-input
|
||||
style="pointer-events: none"
|
||||
class="form-input"
|
||||
v-model="form.license_type"
|
||||
placeholder="请选择许可证类型"
|
||||
readonly
|
||||
/>
|
||||
<u-icon
|
||||
style="display: inline-block; margin-left: 8rpx"
|
||||
name="arrow-down"
|
||||
size="12"
|
||||
color="#aaaaaa"
|
||||
></u-icon>
|
||||
</u-form-item>
|
||||
<u-form-item label="许可证编号" prop="license_number" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.license_number"
|
||||
placeholder="请输入许可证编号"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="营业执照编号" prop="biz_license_number" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.biz_license_number"
|
||||
placeholder="请输入营业执照编号"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="营业执照公司名或真实的公司名"
|
||||
prop="biz_license_company"
|
||||
required
|
||||
>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.biz_license_company"
|
||||
placeholder="请输入营业执照公司名或真实的公司名"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="法人姓名" prop="legal_person_name" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.legal_person_name"
|
||||
placeholder="请输入法人姓名"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="法人手机号" prop="legal_person_mobile" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.legal_person_mobile"
|
||||
maxlength="11"
|
||||
placeholder="请输入法人手机号"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="法人身份证号码"
|
||||
prop="legal_person_id_number"
|
||||
required
|
||||
>
|
||||
<u-input
|
||||
class="form-input"
|
||||
maxlength="18"
|
||||
v-model="form.legal_person_id_number"
|
||||
placeholder="请输入法人证号码"
|
||||
/>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
</view>
|
||||
<view
|
||||
class="up-block up-block-2"
|
||||
v-show="active == 1"
|
||||
style="margin-top: 0"
|
||||
>
|
||||
<u-form :model="form2" class="form" ref="uForm2" label-width="100">
|
||||
<u-form-item label="身份证号码" prop="individual_id_number" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
maxlength="18"
|
||||
v-model="form2.individual_id_number"
|
||||
placeholder="请输入身份证号码"
|
||||
/>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
</view>
|
||||
|
||||
<view class="up-block" v-if="active == 0">
|
||||
<view class="up-title"> 营业执照 点击上传 </view>
|
||||
<view class="up-block" v-show="active == 0">
|
||||
<view class="up-title">
|
||||
营业执照 <text class="color_red">(必传项)</text>
|
||||
</view>
|
||||
<u-upload
|
||||
:class="fileList.length == 0 ? 'shop2-2-upload' : ''"
|
||||
class="shop2-2-upload"
|
||||
@ -128,34 +34,10 @@
|
||||
height="88"
|
||||
></u-upload>
|
||||
</view>
|
||||
<view class="up-block up-block-2" v-if="active == 0">
|
||||
<view class="up-title">
|
||||
许可证(最大上传{{ fileList2.length }}/5)
|
||||
<u-icon
|
||||
style="display: inline-block; margin: 0 8rpx"
|
||||
@click="handlePopup"
|
||||
name="question-circle"
|
||||
size="12"
|
||||
color="aaaaaa"
|
||||
>
|
||||
</u-icon>
|
||||
点击上传
|
||||
</view>
|
||||
<u-upload
|
||||
:class="fileList2.length == 0 ? 'shop2-3-upload' : ''"
|
||||
@afterRead="afterRead($event, 'licenseNumber')"
|
||||
@delete="deletePic($event, 'licenseNumber')"
|
||||
accept="image"
|
||||
:uploadIcon="fileList2.length == 0 ? '' : 'camera-fill'"
|
||||
:fileList="fileList2"
|
||||
:max-count="5"
|
||||
width="125"
|
||||
height="88"
|
||||
></u-upload>
|
||||
</view>
|
||||
<view class="up-block up-block-3" v-if="active == 0">
|
||||
<view class="up-block up-block-3" v-show="active == 0">
|
||||
<view class="up-title">
|
||||
法人身份证正反面({{ fileList3.length + fileList4.length }} /2)
|
||||
<text class="color_red">(必传项)</text>
|
||||
</view>
|
||||
<view class="up-block-3-content">
|
||||
<u-upload
|
||||
@ -182,10 +64,38 @@
|
||||
></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
<!--个人-->
|
||||
<view class="up-block up-block-3" v-if="active == 1">
|
||||
<view class="up-block up-block-2" v-show="active == 0">
|
||||
<view class="up-title">
|
||||
法人身份证正反面({{ fileList5.length + fileList6.length }} /2)
|
||||
许可证(最大上传{{ fileList2.length }}/5)
|
||||
<u-icon
|
||||
style="display: inline-block; margin: 0 8rpx"
|
||||
@click="handlePopup"
|
||||
name="question-circle"
|
||||
size="12"
|
||||
color="aaaaaa"
|
||||
>
|
||||
</u-icon>
|
||||
(可传项)
|
||||
</view>
|
||||
<u-upload
|
||||
:class="fileList2.length == 0 ? 'shop2-3-upload' : ''"
|
||||
@afterRead="afterRead($event, 'licenseNumber')"
|
||||
@delete="deletePic($event, 'licenseNumber')"
|
||||
accept="image"
|
||||
:uploadIcon="fileList2.length == 0 ? '' : 'camera-fill'"
|
||||
:fileList="fileList2"
|
||||
:max-count="5"
|
||||
width="125"
|
||||
height="88"
|
||||
></u-upload>
|
||||
</view>
|
||||
<!--个人-->
|
||||
<view class="up-block up-block-3" v-show="active == 1">
|
||||
<view class="up-title">
|
||||
法人身份证正反面({{ fileList5.length + fileList6.length }} /2)<text
|
||||
class="color_red"
|
||||
>(必传项)</text
|
||||
>
|
||||
</view>
|
||||
<view class="up-block-3-content">
|
||||
<u-upload
|
||||
@ -214,6 +124,90 @@
|
||||
></u-upload>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="up-block up-block-2" v-show="active == 0">
|
||||
<u-form :model="form" class="form" ref="uForm" label-width="120">
|
||||
<u-form-item
|
||||
label="许可证类型"
|
||||
prop="license_type"
|
||||
@click="showPicker = true"
|
||||
>
|
||||
<u-input
|
||||
style="pointer-events: none"
|
||||
class="form-input"
|
||||
v-model="form.license_type"
|
||||
placeholder="请选择许可证类型"
|
||||
readonly
|
||||
/>
|
||||
<u-icon
|
||||
style="display: inline-block; margin-left: 8rpx"
|
||||
name="arrow-down"
|
||||
size="12"
|
||||
color="#aaaaaa"
|
||||
></u-icon>
|
||||
</u-form-item>
|
||||
<u-form-item label="公司名称" prop="biz_license_company" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.biz_license_company"
|
||||
placeholder="请输入公司名称"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="法人姓名" prop="legal_person_name" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.legal_person_name"
|
||||
placeholder="请输入法人姓名"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="法人手机号" prop="legal_person_mobile" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.legal_person_mobile"
|
||||
maxlength="11"
|
||||
placeholder="请输入法人手机号"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item
|
||||
label="法人身份证号码"
|
||||
prop="legal_person_id_number"
|
||||
required
|
||||
>
|
||||
<u-input
|
||||
class="form-input"
|
||||
maxlength="18"
|
||||
v-model="form.legal_person_id_number"
|
||||
placeholder="请输入法人身份证号码"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="营业执照编号" prop="biz_license_number">
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.biz_license_number"
|
||||
placeholder="请输入营业执照编号"
|
||||
/>
|
||||
</u-form-item>
|
||||
<u-form-item label="许可证编号" prop="license_number">
|
||||
<u-input
|
||||
class="form-input"
|
||||
v-model="form.license_number"
|
||||
placeholder="请输入许可证编号"
|
||||
/>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
</view>
|
||||
<view class="up-block up-block-2" v-show="active == 1">
|
||||
<u-form :model="form2" class="form" ref="uForm2" label-width="100">
|
||||
<u-form-item label="身份证号码" prop="individual_id_number" required>
|
||||
<u-input
|
||||
class="form-input"
|
||||
maxlength="18"
|
||||
v-model="form2.individual_id_number"
|
||||
placeholder="请输入身份证号码"
|
||||
/>
|
||||
</u-form-item>
|
||||
</u-form>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn-content">
|
||||
<u-button class="btn-next" @click="handleNext">下一步</u-button>
|
||||
@ -270,7 +264,22 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { UploadFilePromise } from "../../api/upload";
|
||||
import { mapActions } from "vuex";
|
||||
import {
|
||||
UploadFilePromise,
|
||||
batchNoApi,
|
||||
imgOcrResultApi,
|
||||
} from "../../api/upload";
|
||||
|
||||
const orcImgTypeConf = {
|
||||
FR_ID_CARD_FRONT: "FR_ID_CARD_FRONT",
|
||||
FR_ID_CARD_BEHIND: "FR_ID_CARD_BEHIND",
|
||||
ID_CARD_FRONT: "ID_CARD_FRONT",
|
||||
ID_CARD_BEHIND: "ID_CARD_BEHIND",
|
||||
BUSINESS_LICENCE: "BUSINESS_LICENCE",
|
||||
BANK_CARD: "BANK_CARD",
|
||||
};
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
@ -286,8 +295,6 @@ export default {
|
||||
},
|
||||
],
|
||||
form: {
|
||||
license_type: "", // 许可证类型
|
||||
license_number: "", // 许可证编号
|
||||
license_image: "", // 许可证路径
|
||||
biz_license_number: "", //营业执照编号
|
||||
biz_license_company: "", // 公司真实名字
|
||||
@ -332,19 +339,9 @@ export default {
|
||||
trigger: ["blur"],
|
||||
message: "请选择您的许可证类型",
|
||||
},
|
||||
license_number: {
|
||||
required: true,
|
||||
message: "请输入许可证编号",
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
biz_license_number: {
|
||||
required: true,
|
||||
message: "请输入营业执照编号",
|
||||
trigger: ["change", "blur"],
|
||||
},
|
||||
biz_license_company: {
|
||||
required: true,
|
||||
message: "请输入营业执照公司名或真实的公司名",
|
||||
message: "请输入公司名称",
|
||||
trigger: ["blur"],
|
||||
},
|
||||
legal_person_name: {
|
||||
@ -386,6 +383,7 @@ export default {
|
||||
trigger: ["blur"],
|
||||
},
|
||||
],
|
||||
orcTimeout: null,
|
||||
},
|
||||
rules2: {
|
||||
individual_id_number: [
|
||||
@ -413,6 +411,34 @@ export default {
|
||||
this.$refs["uForm2"].setRules(this.rules2);
|
||||
},
|
||||
methods: {
|
||||
getOcrText(filePath, file, type) {
|
||||
return new Promise(async (resolve, reject) => {
|
||||
const batchNoRes = await batchNoApi(filePath, file, type);
|
||||
const batchNo = batchNoRes.batchNo;
|
||||
const formData = new FormData();
|
||||
let formDataStr = "";
|
||||
|
||||
formData.append("batchNo", batchNo);
|
||||
formData.append("imgType", type);
|
||||
|
||||
clearTimeout(this.orcTimeout);
|
||||
|
||||
this.orcTimeout = setTimeout(async () => {
|
||||
formData.forEach((value, key) => {
|
||||
if (formDataStr !== "") {
|
||||
formDataStr += "&";
|
||||
}
|
||||
formDataStr +=
|
||||
encodeURIComponent(key) + "=" + encodeURIComponent(value);
|
||||
});
|
||||
|
||||
const imgOcrRes = await imgOcrResultApi(formDataStr);
|
||||
|
||||
clearTimeout(this.orcTimeout);
|
||||
resolve(imgOcrRes?.data);
|
||||
}, 1000);
|
||||
});
|
||||
},
|
||||
//营业执照
|
||||
async afterRead(e, type) {
|
||||
const item = e.file;
|
||||
@ -444,6 +470,7 @@ export default {
|
||||
}
|
||||
|
||||
let res = await UploadFilePromise(imgUrl);
|
||||
|
||||
if (res && res.status == 200) {
|
||||
switch (type) {
|
||||
case "businessLicense":
|
||||
@ -470,6 +497,31 @@ export default {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
case "businessLicense":
|
||||
var ocr = await this.getOcrText(
|
||||
imgUrl,
|
||||
item,
|
||||
orcImgTypeConf.BUSINESS_LICENCE
|
||||
);
|
||||
this.form.biz_license_company = ocr.bizLicenseCompanyName;
|
||||
this.form.legal_person_name = ocr.bizLicenseOwnerName;
|
||||
console.log("BUSINESS_LICENCE", ocr);
|
||||
break;
|
||||
case "licenseNumber":
|
||||
break;
|
||||
case "idFront":
|
||||
var ocr = await this.getOcrText(
|
||||
imgUrl,
|
||||
item,
|
||||
orcImgTypeConf.ID_CARD_FRONT
|
||||
);
|
||||
this.form.legal_person_name = ocr.name;
|
||||
this.form.legal_person_id_number = ocr.idNumber;
|
||||
console.log("ID_CARD_FRONT", ocr);
|
||||
break;
|
||||
}
|
||||
},
|
||||
deletePic(e, type) {
|
||||
switch (type) {
|
||||
@ -498,12 +550,12 @@ export default {
|
||||
},
|
||||
handleSubsection(e) {
|
||||
this.active = e;
|
||||
this.fileList = [];
|
||||
this.fileList2 = [];
|
||||
this.fileList3 = [];
|
||||
this.fileList4 = [];
|
||||
this.fileList5 = [];
|
||||
this.fileList6 = [];
|
||||
// this.fileList = [];
|
||||
// this.fileList2 = [];
|
||||
// this.fileList3 = [];
|
||||
// this.fileList4 = [];
|
||||
// this.fileList5 = [];
|
||||
// this.fileList6 = [];
|
||||
},
|
||||
handlePopup() {
|
||||
this.showPopup = true;
|
||||
@ -638,6 +690,7 @@ export default {
|
||||
.up-block {
|
||||
background: #fff;
|
||||
padding: 24rpx;
|
||||
margin-bottom: 20rpx;
|
||||
|
||||
.up-title {
|
||||
font-weight: bold;
|
||||
@ -678,7 +731,8 @@ export default {
|
||||
}
|
||||
|
||||
.up-block-2 {
|
||||
margin: 20rpx 0;
|
||||
// margin: 20rpx 0;
|
||||
padding: 24rpx 24rpx 24rpx 32rpx;
|
||||
}
|
||||
|
||||
.up-block-3-content {
|
||||
@ -748,5 +802,9 @@ export default {
|
||||
font-size: 28rpx;
|
||||
color: #4b71ff;
|
||||
}
|
||||
|
||||
.color_red {
|
||||
color: red;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
File diff suppressed because it is too large
Load Diff
@ -25,7 +25,7 @@
|
||||
<view class="order-list">
|
||||
<view class="order-item">
|
||||
<view class="order-title">今日销售额</view>
|
||||
<view class="order-item-num">{{ orderSalesAmoutInfo.endVal }}</view>
|
||||
<view class="order-item-num">{{ orderSalesAmoutInfo.today }}</view>
|
||||
<view class="order-bottom"
|
||||
>昨日
|
||||
{{
|
||||
@ -42,7 +42,7 @@
|
||||
</view>
|
||||
<view class="order-item order-item-1">
|
||||
<view class="order-title">订单量</view>
|
||||
<view class="order-item-num">{{ orderNumInfo.endVal }}</view>
|
||||
<view class="order-item-num">{{ orderNumInfo.today }}</view>
|
||||
<view class="order-bottom"
|
||||
>昨日{{
|
||||
orderNumInfo.daym2m && orderNumInfo.daym2m > 0 ? "+" : "-"
|
||||
@ -56,7 +56,7 @@
|
||||
</view>
|
||||
<view class="order-item order-item-2">
|
||||
<view class="order-title">退货单数</view>
|
||||
<view class="order-item-num">{{ orderReturnNumInfo.endVal }}</view>
|
||||
<view class="order-item-num">{{ orderReturnNumInfo.today }}</view>
|
||||
<view class="order-bottom"
|
||||
>昨日{{
|
||||
orderReturnNumInfo.daym2m && orderReturnNumInfo.daym2m > 0
|
||||
@ -220,7 +220,7 @@ export default {
|
||||
.order-item {
|
||||
margin-right: 40rpx;
|
||||
padding: 12rpx;
|
||||
min-width: 23%;
|
||||
min-width: 26%;
|
||||
border-radius: 12rpx;
|
||||
background: #41e6f9;
|
||||
color: #fff;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user