This commit is contained in:
2026-01-12 23:59:19 +08:00
parent bff086457c
commit 1a30a3ece4
4 changed files with 181 additions and 300 deletions

View File

@ -7,165 +7,124 @@
<div class="cntinfo">
<!-- 标签 -->
<ul class="tag-box">
<li class="tag_item">驳回</li>
<li class="tag_item" :class="detail.shzt == 0 ? 'dsh_item' : detail.shzt == 1 ? 'tgg_item' : 'jtb_item'">
<!-- 0-待审核 1-通过 2-驳回 -->
{{ detail.shzt == 0 ? '待审核' : detail.shzt == 1 ? '通过' : '驳回' }}
</li>
<!-- <li class="tag_item">驳回</li>
<li class="tag_item">通过</li>
<li class="tag_item">待审核</li>
<li class="tag_item">待审核</li> -->
</ul>
<!-- 内容描述 -->
<el-descriptions class="desc" :column="3" border label-width="200px">
<el-descriptions-item label="保安公司名称">{{ detail.companyName }}</el-descriptions-item>
<el-descriptions-item label="年审年份">{{ detail.reviewYear }}</el-descriptions-item>
<el-descriptions-item label="保安公司名称">{{ detail.ssbakk }}</el-descriptions-item>
<el-descriptions-item label="年审年份">{{ detail.njnf }}</el-descriptions-item>
<el-descriptions-item label="姓名">{{ detail.xm }}</el-descriptions-item>
<el-descriptions-item label="身份证号码">{{ detail.sfzh }}</el-descriptions-item>
<el-descriptions-item label="电话">{{ detail.phone }}</el-descriptions-item>
<el-descriptions-item label="性别">{{ detail.sexText }}</el-descriptions-item>
<el-descriptions-item label="身份证号码">{{ detail.sfzhm }}</el-descriptions-item>
<el-descriptions-item label="电话">{{ detail.dh }}</el-descriptions-item>
<el-descriptions-item label="性别">{{ detail.xb }}</el-descriptions-item>
<el-descriptions-item label="民族">{{ detail.mz }}</el-descriptions-item>
<el-descriptions-item label="籍贯">{{ detail.jg }}</el-descriptions-item>
<el-descriptions-item label="文化程度">{{ detail.whcd }}</el-descriptions-item>
<el-descriptions-item label="民族">{{ detail.nationText }}</el-descriptions-item>
<el-descriptions-item label="籍贯">{{ detail.nativePlace }}</el-descriptions-item>
<el-descriptions-item label="文化程度">{{ detail.education }}</el-descriptions-item>
<el-descriptions-item label="证书编号">{{ detail.zsbh }}</el-descriptions-item>
<el-descriptions-item label="上岗证号码">{{ detail.sgxkhm }}</el-descriptions-item>
<el-descriptions-item label="服务行业"> {{ detail.fwxy }}</el-descriptions-item>
<el-descriptions-item label="证书编号">{{ detail.certificateNo }}</el-descriptions-item>
<el-descriptions-item label="上岗证号码">{{ detail.workCardNo }}</el-descriptions-item>
<el-descriptions-item label="服务行业">{{ detail.serviceIndustry }}</el-descriptions-item>
<el-descriptions-item label="服务行业名称">{{ detail.serviceIndustryName }}</el-descriptions-item>
<el-descriptions-item label="入职时间">{{ detail.entryDate }}</el-descriptions-item>
<el-descriptions-item label="政治面貌">{{ detail.politicalStatus }}</el-descriptions-item>
<el-descriptions-item label="服务行业名称">{{ detail.fwxymc }}</el-descriptions-item>
<el-descriptions-item label="入职时间">{{ detail.rzsj }}</el-descriptions-item>
<el-descriptions-item label="政治面貌"> {{ detail.zzmm }}</el-descriptions-item>
<el-descriptions-item label="无犯罪记录证明">
<div class="img-grid one">
<el-image
v-for="(src, idx) in noCrimeUrls"
:key="idx"
:src="src"
:src="baseUrl + detail.wfbjlzm"
fit="cover"
:preview-src-list="noCrimeUrls"
:preview-src-list='[baseUrl + detail.wfbjlzm]'
preview-teleported
class="img"
/>
<div v-if="noCrimeUrls.length === 0" class="img-placeholder"></div>
</div>
</el-descriptions-item>
<el-descriptions-item label="体检报告">
<div class="img-grid one">
<el-image
v-for="(src, idx) in medicalUrls"
:key="idx"
:src="src"
:src="baseUrl + detail.tjbg"
fit="cover"
:preview-src-list="medicalUrls"
:preview-src-list='[baseUrl + detail.tjbg]'
preview-teleported
class="img"
/>
<div v-if="medicalUrls.length === 0" class="img-placeholder"></div>
</div>
</el-descriptions-item>
<el-descriptions-item label="身份证正反面">
<div class="img-grid two">
<el-image
v-for="(src, idx) in idCardUrls"
:key="idx"
:src="src"
:src="baseUrl + detail.sfzzm"
fit="cover"
:preview-src-list="idCardUrls"
:preview-src-list='[baseUrl + detail.sfzzm]'
preview-teleported
class="img"
/>
<el-image
:src="baseUrl + detail.sfzfm"
fit="cover"
:preview-src-list='[baseUrl + detail.sfzfm]'
preview-teleported
class="img"
/>
<template v-if="idCardUrls.length === 0">
<div class="img-placeholder"></div>
<div class="img-placeholder"></div>
</template>
</div>
</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ detail.auditTime }}</el-descriptions-item>
<el-descriptions-item label="发证机关">{{ detail.issuingAuthority }}</el-descriptions-item>
<el-descriptions-item label="发证日期">{{ detail.issueDate }}</el-descriptions-item>
<el-descriptions-item label="审核时间">{{ detail.shsj }}</el-descriptions-item>
<el-descriptions-item label="发证机关">{{ detail.fqjg }}</el-descriptions-item>
<el-descriptions-item label="发证日期">{{ detail.fqsj }}</el-descriptions-item>
<el-descriptions-item label="驳回原因" :span="3">{{ detail.rejectReason }}</el-descriptions-item>
<el-descriptions-item label="驳回原因" :span="3">{{ detail.bhyy }}</el-descriptions-item>
</el-descriptions>
</div>
</div>
</template>
<script setup>
import { ref, computed, defineEmits, getCurrentInstance } from 'vue';
import { ref, computed, defineEmits, getCurrentInstance,defineProps } from 'vue';
import { qcckPost } from "@/api/qcckApi.js";
const emit = defineEmits(["refresh"]);
const { proxy } = getCurrentInstance();
const baseUrl = '/bagl/mosty-base/minio/image/download'
const props = defineProps({
dict: {
dic: {
default: [[]], //二维数组
type: Array
}
})
const dialogForm = ref(false);
const listQuery = ref({});
const detail = ref({})
// 初始化数据
const init = (type, row,) => {
dialogForm.value = true;
const raw = row || {};
listQuery.value = {
...raw,
companyName: raw.companyName || raw.dwmc || raw.gsmc || raw.bagsmc,
reviewYear: raw.reviewYear || raw.njnd || raw.njYear || raw.nf || raw.year,
phone: raw.phone || raw.lxdh || raw.dh || raw.sjhm || raw.xssbrdh,
sexText: raw.sexText || raw.xbText || raw.xb || raw.sex,
nationText: raw.nationText || raw.mzText || raw.mz,
nativePlace: raw.nativePlace || raw.jg || raw.jgText,
education: raw.education || raw.whcd || raw.whcdText,
certificateNo: raw.certificateNo || raw.zsbh || raw.zsbhm || raw.zjbh,
workCardNo: raw.workCardNo || raw.sgzh || raw.sgzNumber,
serviceIndustry: raw.serviceIndustry || raw.fwhy || raw.fwhyText || raw.hy,
serviceIndustryName: raw.serviceIndustryName || raw.fwhymc || raw.hyName,
entryDate: raw.entryDate || raw.rzsj || raw.rzrq,
politicalStatus: raw.politicalStatus || raw.zzmm || raw.zzmmText,
auditTime: raw.auditTime || raw.shsj || raw.njsj,
rejectReason: raw.rejectReason || raw.bhyy || raw.bhReason || raw.reason,
issuingAuthority: raw.issuingAuthority || raw.fzjg,
issueDate: raw.issueDate || raw.fzrq,
noCrimeProof: raw.noCrimeProof || raw.wffzjlzm || raw.wffzjlzmId,
medicalReport: raw.medicalReport || raw.tjbg || raw.tjbgId,
idCardImages: raw.idCardImages || raw.sfzzf || raw.sfzImgs || raw.sfzzm,
};
qcckPost({},'/mosty-base/bans/njxx/getInfo/'+row.id).then(res => {
let zj = res.sfzzfmj.split(',');
res.sfzzm = [zj[0]];
res.sfzfm = [zj[1]];
detail.value = res || {};
})
};
const close = () => {
dialogForm.value = false;
listQuery.value = {};
};;
const detail = computed(() => listQuery.value || {});
const toIdList = (val, limit) => {
const v = val ?? [];
const arr = Array.isArray(v) ? v : [v];
const ids = arr
.map((el) => {
if (!el) return null;
if (typeof el === 'string' || typeof el === 'number') return String(el);
if (typeof el === 'object') return el.id ? String(el.id) : null;
return null;
})
.filter(Boolean);
return typeof limit === 'number' ? ids.slice(0, limit) : ids;
detail.value = {};
};
const toUrls = (val, limit) => {
return toIdList(val, limit).map((id) => `/bagl/mosty-base/minio/image/download/${id}`);
};
const noCrimeUrls = computed(() => toUrls(detail.value.noCrimeProof, 1));
const medicalUrls = computed(() => toUrls(detail.value.medicalReport, 1));
const idCardUrls = computed(() => toUrls(detail.value.idCardImages, 2));
defineExpose({ init })
</script>
<style lang="scss" scoped>
@import "@/assets/css/layout.scss";
.mapBox {
width: calc(100% - 24rem);
height: 500px;
@ -183,6 +142,7 @@ defineExpose({ init })
display: flex;
flex-direction: column;
gap: 10px;
z-index: 99999;
.tag_item{
width: 70px;
height: 70px;
@ -192,17 +152,17 @@ defineExpose({ init })
font-size: 16px;
margin-bottom: 20px;
}
.tag_item:nth-child(1){
.jtb_item{
border: 5px solid #FA3758;
color: #FA3758;
background: rgba(250,55,88,0.2);
}
.tag_item:nth-child(2){
.tgg_item{
color: #28EEBF;
background: rgba(40,238,191,0.2);
border: 5px solid #28EEBF;
}
.tag_item:nth-child(3){
.dsh_item{
background: rgba(0,114,255,0.2);
color: #0072FF;
border: 5px solid #0072FF;