优化进件查询

This commit is contained in:
gyq
2026-01-12 18:18:36 +08:00
parent 4c06f07ac6
commit 348ecdfc54
5 changed files with 100 additions and 38 deletions

View File

@@ -111,4 +111,17 @@ export const entryManagerList = (params: Object) => {
method: "get", method: "get",
params params
}); });
}
/**
* 主动查询进件信息状态
* @data { params }
* @returns
*/
export const queryEntry = (params: Object) => {
return request<any, any[]>({
url: `/order/admin/data/entryManager/queryEntry`,
method: "get",
params
});
} }

View File

@@ -15,7 +15,7 @@
<el-text size="large" type="primary">商户基础信息</el-text> <el-text size="large" type="primary">商户基础信息</el-text>
</div> </div>
</div> </div>
<el-form-item label="企业类型" v-if="form.merchantBaseInfo.userType == 1"> <el-form-item label="企业类型" v-if="form.merchantBaseInfo.userType == '1'">
<el-radio-group v-model="form.merchantBaseInfo.companyChildType"> <el-radio-group v-model="form.merchantBaseInfo.companyChildType">
<el-radio label="普通企业" value="1"></el-radio> <el-radio label="普通企业" value="1"></el-radio>
<el-radio label="事业单位" value="2"></el-radio> <el-radio label="事业单位" value="2"></el-radio>
@@ -67,14 +67,14 @@
<div class="column"> <div class="column">
<single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardFrontPic.url" <single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardFrontPic.url"
@on-success="contactIdCardFrontPicUpload" /> @on-success="contactIdCardFrontPicUpload" />
<div class="tips">(上传图片自动识别 身份证名称 身份证号)</div> <div class="tips">国徽面为正面 (上传图片自动识别 有效期)</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="联系人身份证反面照片" prop="merchantBaseInfo.contactIdCardBackPic.url"> <el-form-item label="联系人身份证反面照片" prop="merchantBaseInfo.contactIdCardBackPic.url">
<div class="column"> <div class="column">
<single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardBackPic.url" <single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardBackPic.url"
@on-success="contactIdCardBackPicUpload" /> @on-success="contactIdCardBackPicUpload" />
<div class="tips">(上传图片自动识别 有效期)</div> <div class="tips">人像面为反面 (上传图片自动识别 身份证名称 身份证号)</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="联系人手机号" prop="merchantBaseInfo.contactPhone"> <el-form-item label="联系人手机号" prop="merchantBaseInfo.contactPhone">
@@ -101,14 +101,14 @@
<div class="column"> <div class="column">
<single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardFrontPic.url" <single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardFrontPic.url"
@on-success="idCardFrontPicSuccess" /> @on-success="idCardFrontPicSuccess" />
<div class="tips">(上传图片自动识别 身份证名称 身份证号)</div> <div class="tips">国徽面为正面 (上传图片自动识别 有效期)</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="身份证反面图片" prop="legalPersonInfo.idCardBackPic.url"> <el-form-item label="身份证反面图片" prop="legalPersonInfo.idCardBackPic.url">
<div class="column"> <div class="column">
<single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardBackPic.url" <single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardBackPic.url"
@on-success="idCardBackPicSuccess" /> @on-success="idCardBackPicSuccess" />
<div class="tips">(上传图片自动识别 有效期)</div> <div class="tips">人像面为反面 (上传图片自动识别 身份证名称 身份证号)</div>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="法定代表人姓名" prop="legalPersonInfo.legalPersonName" v-loading="idCardFrontPicSuccessLoading"> <el-form-item label="法定代表人姓名" prop="legalPersonInfo.legalPersonName" v-loading="idCardFrontPicSuccessLoading">
@@ -655,15 +655,18 @@ const rules = reactive({
const contactIdCardFrontPicUploadLoading = ref(false) const contactIdCardFrontPicUploadLoading = ref(false)
async function contactIdCardFrontPicUpload(url: string) { async function contactIdCardFrontPicUpload(url: string) {
try { try {
form.value.merchantBaseInfo.contactIdCardFrontPic.alipayId = '' form.value.merchantBaseInfo.contactIdCardBackPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardFrontPic.wechatId = '' form.value.merchantBaseInfo.contactIdCardBackPic.wechatId = ''
contactIdCardFrontPicUploadLoading.value = true contactIdCardFrontPicUploadLoading.value = true
const res: any = await getInfoByImg({ const res: any = await getInfoByImg({
url: url, url: url,
type: 'IdCard' type: 'IdCard'
}) })
form.value.merchantBaseInfo.contactPersonId = res.subImages[0].kvInfo.data.idNumber
let date = res.subImages[0].kvInfo.data.validPeriod.split('-')
form.value.merchantBaseInfo.contactPersonIdStartDate = dayjs(date[0]).format('YYYY-MM-DD')
form.value.merchantBaseInfo.contactPersonIdEndDate = dayjs(date[1]).format('YYYY-MM-DD')
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
@@ -674,17 +677,15 @@ async function contactIdCardFrontPicUpload(url: string) {
const contactIdCardBackPicUploadLoading = ref(false) const contactIdCardBackPicUploadLoading = ref(false)
async function contactIdCardBackPicUpload(url: any) { async function contactIdCardBackPicUpload(url: any) {
try { try {
form.value.merchantBaseInfo.contactIdCardBackPic.alipayId = '' form.value.merchantBaseInfo.contactIdCardFrontPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardBackPic.wechatId = '' form.value.merchantBaseInfo.contactIdCardFrontPic.wechatId = ''
contactIdCardBackPicUploadLoading.value = true contactIdCardBackPicUploadLoading.value = true
const res: any = await getInfoByImg({ const res: any = await getInfoByImg({
url: url, url: url,
type: 'IdCard' type: 'IdCard'
}) })
let date = res.subImages[0].kvInfo.data.validPeriod.split('-') form.value.merchantBaseInfo.contactPersonId = res.subImages[0].kvInfo.data.idNumber
form.value.merchantBaseInfo.contactPersonIdStartDate = dayjs(date[0]).format('YYYY-MM-DD')
form.value.merchantBaseInfo.contactPersonIdEndDate = dayjs(date[1]).format('YYYY-MM-DD')
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
@@ -695,16 +696,18 @@ async function contactIdCardBackPicUpload(url: any) {
const idCardFrontPicSuccessLoading = ref(false) const idCardFrontPicSuccessLoading = ref(false)
async function idCardFrontPicSuccess(url: string) { async function idCardFrontPicSuccess(url: string) {
try { try {
form.value.legalPersonInfo.idCardFrontPic.alipayId = '' form.value.legalPersonInfo.idCardBackPic.alipayId = ''
form.value.legalPersonInfo.idCardFrontPic.wechatId = '' form.value.legalPersonInfo.idCardBackPic.wechatId = ''
idCardFrontPicSuccessLoading.value = true idCardFrontPicSuccessLoading.value = true
const res: any = await getInfoByImg({ const res: any = await getInfoByImg({
url: url, url: url,
type: 'IdCard' type: 'IdCard'
}) })
form.value.legalPersonInfo.legalPersonName = res.subImages[0].kvInfo.data.name
form.value.legalPersonInfo.legalPersonId = res.subImages[0].kvInfo.data.idNumber let date = res.subImages[0].kvInfo.data.validPeriod.split('-')
form.value.legalPersonInfo.legalIdPersonStartDate = dayjs(date[0]).format('YYYY-MM-DD')
form.value.legalPersonInfo.legalPersonIdEndDate = dayjs(date[1]).format('YYYY-MM-DD')
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }
@@ -715,17 +718,17 @@ async function idCardFrontPicSuccess(url: string) {
const idCardBackPicSuccessLoading = ref(false) const idCardBackPicSuccessLoading = ref(false)
async function idCardBackPicSuccess(url: string) { async function idCardBackPicSuccess(url: string) {
try { try {
form.value.legalPersonInfo.idCardBackPic.alipayId = '' form.value.legalPersonInfo.idCardFrontPic.alipayId = ''
form.value.legalPersonInfo.idCardBackPic.wechatId = '' form.value.legalPersonInfo.idCardFrontPic.wechatId = ''
idCardBackPicSuccessLoading.value = true idCardBackPicSuccessLoading.value = true
const res: any = await getInfoByImg({ const res: any = await getInfoByImg({
url: url, url: url,
type: 'IdCard' type: 'IdCard'
}) })
let date = res.subImages[0].kvInfo.data.validPeriod.split('-')
form.value.legalPersonInfo.legalIdPersonStartDate = dayjs(date[0]).format('YYYY-MM-DD') form.value.legalPersonInfo.legalPersonName = res.subImages[0].kvInfo.data.name
form.value.legalPersonInfo.legalPersonIdEndDate = dayjs(date[1]).format('YYYY-MM-DD') form.value.legalPersonInfo.legalPersonId = res.subImages[0].kvInfo.data.idNumber
} catch (error) { } catch (error) {
console.log(error); console.log(error);
} }

View File

@@ -55,15 +55,13 @@ watch(() => props.cityCode, async (newValue, oldValue) => {
} }
}) })
const bankList = ref<Array<{ id: string; bankAlias: string, bankCode: string, bankAliasCode: string }>>([]); const bankList = ref<Array<{ id: string; bankAlias: string, bankCode: string, bankAliasCode: string, accountBank: string }>>([]);
const bankInstId = defineModel('bankInstId', { const bankInstId = defineModel('bankInstId', {
type: String, type: String,
default: "", default: "",
}); });
const bankName = defineModel('bankName', { const bankName = defineModel('bankName', {
type: String, type: String,
default: "", default: "",
@@ -73,7 +71,7 @@ const bankName = defineModel('bankName', {
function bankChange(e: any) { function bankChange(e: any) {
let obj = bankList.value.find(item => item.bankCode == e) let obj = bankList.value.find(item => item.bankCode == e)
if (obj && obj.id) { if (obj && obj.id) {
bankName.value = obj.bankAlias bankName.value = obj.accountBank
bankInstId.value = obj.bankCode bankInstId.value = obj.bankCode
getBankBranchListAjax(obj.bankAliasCode) getBankBranchListAjax(obj.bankAliasCode)
} }

View File

@@ -1,7 +1,7 @@
<template> <template>
<el-dialog title="签约码" width="350px" v-model="visible"> <el-dialog title="签约码" width="350px" v-model="visible">
<div class="wrap"> <div class="wrap">
<el-image :src="url" style="width: 200px;height: 200px;"></el-image> <el-image :src="srcUrl" style="width: 200px;height: 200px;"></el-image>
<el-text>请前往{{ type == 1 ? '支付宝' : '微信' }}进行扫码</el-text> <el-text>请前往{{ type == 1 ? '支付宝' : '微信' }}进行扫码</el-text>
</div> </div>
</el-dialog> </el-dialog>
@@ -9,16 +9,41 @@
<script setup> <script setup>
import { ref } from 'vue' import { ref } from 'vue'
import QRCode from 'qrcode'
const visible = ref(false) const visible = ref(false)
const url = ref('') const srcUrl = ref('')
const type = ref(1) const type = ref(1)
function show(url, type) { // 手动生成二维码
async function generateQrcode(text) {
try {
// 生成 Base64 格式的二维码图片
const base64 = await QRCode.toDataURL(text, {
width: 200,
margin: 1,
color: {
dark: '#000',
light: '#fff'
}
})
url.value = base64
} catch (err) {
console.error('生成二维码失败:', err)
}
}
function show(url, t) {
console.log(url);
visible.value = true visible.value = true
url.value = url type.value = t
type.value = type
if (t == 2) {
srcUrl.value = url
} else {
generateQrcode(url)
}
} }
defineExpose({ defineExpose({

View File

@@ -51,8 +51,10 @@
<div class="error_text" v-if="scope.row.alipayStatus == 'REJECTED'"> <div class="error_text" v-if="scope.row.alipayStatus == 'REJECTED'">
{{ scope.row.alipayErrorMsg }} {{ scope.row.alipayErrorMsg }}
</div> </div>
<el-link type="primary" v-if="scope.row.alipayStatus == 'SIGN '" <div>
@click="singCodeDialogRef?.show(scope.row.alipaySignUrl, 1)">查看签约码</el-link> <el-link type="primary" v-if="scope.row.alipayStatus == 'SIGN '"
@click="singCodeDialogRef?.show(scope.row.alipaySignUrl, 1)">查看签约码</el-link>
</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
@@ -66,15 +68,20 @@
<div class="error_text" v-if="scope.row.wechatStatus == 'REJECTED'"> <div class="error_text" v-if="scope.row.wechatStatus == 'REJECTED'">
{{ scope.row.wechatErrorMsg }} {{ scope.row.wechatErrorMsg }}
</div> </div>
<el-link type="primary" v-if="scope.row.wechatStatus == 'SIGN '" <div>
@click="singCodeDialogRef?.show(scope.row.wechatSignUrl, 2)">查看签约码</el-link> <el-link type="primary" v-if="scope.row.wechatStatus == 'SIGN'"
@click="singCodeDialogRef?.show(scope.row.wechatSignUrl, 2)">查看签约码</el-link>
</div>
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="更新时间" prop="updateTime" width="200"></el-table-column> <el-table-column label="更新时间" prop="updateTime" width="200"></el-table-column>
<el-table-column label="创建时间" prop="createTime" width="200"></el-table-column> <el-table-column label="创建时间" prop="createTime" width="200"></el-table-column>
<el-table-column label="操作" fixed="right" width="150"> <el-table-column label="操作" fixed="right" width="200">
<template v-slot="scope"> <template v-slot="scope">
<el-button link type="primary"
v-if="scope.row.wechatStatus == 'INIT' || scope.row.wechatStatus == 'AUDIT' || scope.row.wechatStatus == 'SIGN' || scope.row.alipayStatus == 'INIT' || scope.row.alipayStatus == 'AUDIT' || scope.row.alipayStatus == 'SIGN'"
@click="checkStatusHandle(scope.row)">查询</el-button>
<el-button link type="primary" @click="toDetail(scope.row, 'check')">详情</el-button> <el-button link type="primary" @click="toDetail(scope.row, 'check')">详情</el-button>
<el-button link type="primary" @click="toDetail(scope.row, 'editor')" <el-button link type="primary" @click="toDetail(scope.row, 'editor')"
v-if="scope.row.alipayStatus == 'REJECTED' || scope.row.wechatStatus == 'REJECTED'">修改</el-button> v-if="scope.row.alipayStatus == 'REJECTED' || scope.row.wechatStatus == 'REJECTED'">修改</el-button>
@@ -100,7 +107,7 @@ import { ref, reactive, onMounted } from "vue";
import { useRouter } from 'vue-router'; import { useRouter } from 'vue-router';
import selectShopsDialog from "./components/selectShopsDialog.vue"; import selectShopsDialog from "./components/selectShopsDialog.vue";
import singCodeDialog from "./components/singCodeDialog.vue"; import singCodeDialog from "./components/singCodeDialog.vue";
import { entryManagerList } from '@/api/common' import { entryManagerList, queryEntry } from '@/api/common'
const singCodeDialogRef = ref(null) const singCodeDialogRef = ref(null)
@@ -156,7 +163,7 @@ const statusList = ref([
{ {
value: 'SIGN', value: 'SIGN',
label: '待签约', label: '待签约',
type: 'warning' type: 'primary'
}, },
{ {
value: 'FINISH', value: 'FINISH',
@@ -222,6 +229,22 @@ function handleCurrentChange(e) {
getTableData(); getTableData();
} }
// 查询状态
async function checkStatusHandle(row) {
try {
tableData.loading = true
const businessLicenceInfo = JSON.parse(row.businessLicenceInfo)
await queryEntry({
shopId: row.shopId,
licenceNo: businessLicenceInfo.licenceNo
})
getTableData()
} catch (error) {
tableData.loading = false
console.log(error);
}
}
// 获取表格数据 // 获取表格数据
async function getTableData() { async function getTableData() {
try { try {