优化进件查询

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",
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>
</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 label="普通企业" value="1"></el-radio>
<el-radio label="事业单位" value="2"></el-radio>
@@ -67,14 +67,14 @@
<div class="column">
<single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardFrontPic.url"
@on-success="contactIdCardFrontPicUpload" />
<div class="tips">(上传图片自动识别 身份证名称 身份证号)</div>
<div class="tips">国徽面为正面 (上传图片自动识别 有效期)</div>
</div>
</el-form-item>
<el-form-item label="联系人身份证反面照片" prop="merchantBaseInfo.contactIdCardBackPic.url">
<div class="column">
<single-image-upload :maxFileSize="2" v-model="form.merchantBaseInfo.contactIdCardBackPic.url"
@on-success="contactIdCardBackPicUpload" />
<div class="tips">(上传图片自动识别 有效期)</div>
<div class="tips">人像面为反面 (上传图片自动识别 身份证名称 身份证号)</div>
</div>
</el-form-item>
<el-form-item label="联系人手机号" prop="merchantBaseInfo.contactPhone">
@@ -101,14 +101,14 @@
<div class="column">
<single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardFrontPic.url"
@on-success="idCardFrontPicSuccess" />
<div class="tips">(上传图片自动识别 身份证名称 身份证号)</div>
<div class="tips">国徽面为正面 (上传图片自动识别 有效期)</div>
</div>
</el-form-item>
<el-form-item label="身份证反面图片" prop="legalPersonInfo.idCardBackPic.url">
<div class="column">
<single-image-upload :maxFileSize="2" v-model="form.legalPersonInfo.idCardBackPic.url"
@on-success="idCardBackPicSuccess" />
<div class="tips">(上传图片自动识别 有效期)</div>
<div class="tips">人像面为反面 (上传图片自动识别 身份证名称 身份证号)</div>
</div>
</el-form-item>
<el-form-item label="法定代表人姓名" prop="legalPersonInfo.legalPersonName" v-loading="idCardFrontPicSuccessLoading">
@@ -655,15 +655,18 @@ const rules = reactive({
const contactIdCardFrontPicUploadLoading = ref(false)
async function contactIdCardFrontPicUpload(url: string) {
try {
form.value.merchantBaseInfo.contactIdCardFrontPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardFrontPic.wechatId = ''
form.value.merchantBaseInfo.contactIdCardBackPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardBackPic.wechatId = ''
contactIdCardFrontPicUploadLoading.value = true
const res: any = await getInfoByImg({
url: url,
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) {
console.log(error);
}
@@ -674,17 +677,15 @@ async function contactIdCardFrontPicUpload(url: string) {
const contactIdCardBackPicUploadLoading = ref(false)
async function contactIdCardBackPicUpload(url: any) {
try {
form.value.merchantBaseInfo.contactIdCardBackPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardBackPic.wechatId = ''
form.value.merchantBaseInfo.contactIdCardFrontPic.alipayId = ''
form.value.merchantBaseInfo.contactIdCardFrontPic.wechatId = ''
contactIdCardBackPicUploadLoading.value = true
const res: any = await getInfoByImg({
url: url,
type: 'IdCard'
})
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')
form.value.merchantBaseInfo.contactPersonId = res.subImages[0].kvInfo.data.idNumber
} catch (error) {
console.log(error);
}
@@ -695,16 +696,18 @@ async function contactIdCardBackPicUpload(url: any) {
const idCardFrontPicSuccessLoading = ref(false)
async function idCardFrontPicSuccess(url: string) {
try {
form.value.legalPersonInfo.idCardFrontPic.alipayId = ''
form.value.legalPersonInfo.idCardFrontPic.wechatId = ''
form.value.legalPersonInfo.idCardBackPic.alipayId = ''
form.value.legalPersonInfo.idCardBackPic.wechatId = ''
idCardFrontPicSuccessLoading.value = true
const res: any = await getInfoByImg({
url: url,
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) {
console.log(error);
}
@@ -715,17 +718,17 @@ async function idCardFrontPicSuccess(url: string) {
const idCardBackPicSuccessLoading = ref(false)
async function idCardBackPicSuccess(url: string) {
try {
form.value.legalPersonInfo.idCardBackPic.alipayId = ''
form.value.legalPersonInfo.idCardBackPic.wechatId = ''
form.value.legalPersonInfo.idCardFrontPic.alipayId = ''
form.value.legalPersonInfo.idCardFrontPic.wechatId = ''
idCardBackPicSuccessLoading.value = true
const res: any = await getInfoByImg({
url: url,
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.legalPersonIdEndDate = dayjs(date[1]).format('YYYY-MM-DD')
form.value.legalPersonInfo.legalPersonName = res.subImages[0].kvInfo.data.name
form.value.legalPersonInfo.legalPersonId = res.subImages[0].kvInfo.data.idNumber
} catch (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', {
type: String,
default: "",
});
const bankName = defineModel('bankName', {
type: String,
default: "",
@@ -73,7 +71,7 @@ const bankName = defineModel('bankName', {
function bankChange(e: any) {
let obj = bankList.value.find(item => item.bankCode == e)
if (obj && obj.id) {
bankName.value = obj.bankAlias
bankName.value = obj.accountBank
bankInstId.value = obj.bankCode
getBankBranchListAjax(obj.bankAliasCode)
}

View File

@@ -1,7 +1,7 @@
<template>
<el-dialog title="签约码" width="350px" v-model="visible">
<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>
</div>
</el-dialog>
@@ -9,16 +9,41 @@
<script setup>
import { ref } from 'vue'
import QRCode from 'qrcode'
const visible = ref(false)
const url = ref('')
const srcUrl = ref('')
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
url.value = url
type.value = type
type.value = t
if (t == 2) {
srcUrl.value = url
} else {
generateQrcode(url)
}
}
defineExpose({

View File

@@ -51,8 +51,10 @@
<div class="error_text" v-if="scope.row.alipayStatus == 'REJECTED'">
{{ scope.row.alipayErrorMsg }}
</div>
<el-link type="primary" v-if="scope.row.alipayStatus == 'SIGN '"
@click="singCodeDialogRef?.show(scope.row.alipaySignUrl, 1)">查看签约码</el-link>
<div>
<el-link type="primary" v-if="scope.row.alipayStatus == 'SIGN '"
@click="singCodeDialogRef?.show(scope.row.alipaySignUrl, 1)">查看签约码</el-link>
</div>
</div>
</template>
</el-table-column>
@@ -66,15 +68,20 @@
<div class="error_text" v-if="scope.row.wechatStatus == 'REJECTED'">
{{ scope.row.wechatErrorMsg }}
</div>
<el-link type="primary" v-if="scope.row.wechatStatus == 'SIGN '"
@click="singCodeDialogRef?.show(scope.row.wechatSignUrl, 2)">查看签约码</el-link>
<div>
<el-link type="primary" v-if="scope.row.wechatStatus == 'SIGN'"
@click="singCodeDialogRef?.show(scope.row.wechatSignUrl, 2)">查看签约码</el-link>
</div>
</div>
</template>
</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="操作" fixed="right" width="150">
<el-table-column label="操作" fixed="right" width="200">
<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, 'editor')"
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 selectShopsDialog from "./components/selectShopsDialog.vue";
import singCodeDialog from "./components/singCodeDialog.vue";
import { entryManagerList } from '@/api/common'
import { entryManagerList, queryEntry } from '@/api/common'
const singCodeDialogRef = ref(null)
@@ -156,7 +163,7 @@ const statusList = ref([
{
value: 'SIGN',
label: '待签约',
type: 'warning'
type: 'primary'
},
{
value: 'FINISH',
@@ -222,6 +229,22 @@ function handleCurrentChange(e) {
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() {
try {