|
|
@ -49,27 +49,6 @@ |
|
|
</el-form> |
|
|
</el-form> |
|
|
|
|
|
|
|
|
<el-row :gutter="10" class="mb8"> |
|
|
<el-row :gutter="10" class="mb8"> |
|
|
<el-col :span="1.5"> |
|
|
|
|
|
<el-button |
|
|
|
|
|
type="primary" |
|
|
|
|
|
plain |
|
|
|
|
|
icon="el-icon-plus" |
|
|
|
|
|
size="mini" |
|
|
|
|
|
@click="handleAdd" |
|
|
|
|
|
v-hasPermi="['vet:info:add']" |
|
|
|
|
|
>新增</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="1.5"> |
|
|
|
|
|
<el-button |
|
|
|
|
|
type="success" |
|
|
|
|
|
plain |
|
|
|
|
|
icon="el-icon-edit" |
|
|
|
|
|
size="mini" |
|
|
|
|
|
:disabled="single" |
|
|
|
|
|
@click="handleUpdate" |
|
|
|
|
|
v-hasPermi="['vet:info:edit']" |
|
|
|
|
|
>修改</el-button> |
|
|
|
|
|
</el-col> |
|
|
|
|
|
<el-col :span="1.5"> |
|
|
<el-col :span="1.5"> |
|
|
<el-button |
|
|
<el-button |
|
|
type="danger" |
|
|
type="danger" |
|
|
@ -98,32 +77,19 @@ |
|
|
<!-- 表格部分 --> |
|
|
<!-- 表格部分 --> |
|
|
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> |
|
|
<el-table v-loading="loading" :data="infoList" @selection-change="handleSelectionChange"> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column type="selection" width="55" align="center" /> |
|
|
<el-table-column label="用户昵称" align="center" prop="nickName" width="200px"/> |
|
|
|
|
|
<el-table-column label="真实姓名" align="center" prop="realName" width="200px"/> |
|
|
|
|
|
<el-table-column label="性别" align="center" prop="gender" width="100px"/> |
|
|
|
|
|
<el-table-column label="出生日期" align="center" prop="birthday" width="200px"> |
|
|
|
|
|
<template slot-scope="scope"> |
|
|
|
|
|
<span>{{ parseTime(scope.row.birthday, '{y}-{m}-{d}') }}</span> |
|
|
|
|
|
</template> |
|
|
|
|
|
</el-table-column> |
|
|
|
|
|
<el-table-column label="身份证号" align="center" prop="idCard" width="200px"/> |
|
|
|
|
|
<el-table-column label="擅长领域" align="center" prop="specialty" width="300px" :show-overflow-tooltip="true"/> |
|
|
|
|
|
<!-- <el-table-column label="工作经验" align="center" prop="workExperience" width="100px"/>--> |
|
|
|
|
|
<el-table-column label="职称" align="center" prop="title" width="200px"/> |
|
|
|
|
|
<el-table-column label="联系电话" align="center" prop="phone" width="200px"/> |
|
|
|
|
|
<!-- <el-table-column label="电子邮箱" align="center" prop="email"/>--> |
|
|
|
|
|
<el-table-column label="专家类型" align="center" prop="expertType" width="200px"/> |
|
|
|
|
|
<el-table-column label="所属医院" align="center" prop="hospital" width="300px" :show-overflow-tooltip="true"/> |
|
|
|
|
|
<!-- <el-table-column label="联系地址" align="center" prop="address" />--> |
|
|
|
|
|
<!-- <el-table-column label="个人简介" align="center" prop="introduction" />--> |
|
|
|
|
|
|
|
|
<el-table-column label="用户昵称" align="center" prop="nickName" /> |
|
|
|
|
|
<el-table-column label="真实姓名" align="center" prop="realName" /> |
|
|
|
|
|
<el-table-column label="擅长领域" align="center" prop="specialty" :show-overflow-tooltip="true"/> |
|
|
|
|
|
<el-table-column label="职称" align="center" prop="title"/> |
|
|
|
|
|
<el-table-column label="专家类型" align="center" prop="expertType" /> |
|
|
|
|
|
<el-table-column label="所属医院" align="center" prop="hospital" :show-overflow-tooltip="true"/> |
|
|
|
|
|
<el-table-column label="个人简介" align="center" prop="introduction" :show-overflow-tooltip="true" /> |
|
|
<el-table-column label="审核状态" align="center" prop="auditStatus" width="100" class-name="audit-status-column"> |
|
|
<el-table-column label="审核状态" align="center" prop="auditStatus" width="100" class-name="audit-status-column"> |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-tag :type="getAuditStatusTagType(scope.row.auditStatus)" size="small"> |
|
|
|
|
|
{{ getAuditStatusText(scope.row.auditStatus) }} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
<dict-tag :options="dict.type.audit_status" :value="scope.row.auditStatus" /> |
|
|
</template> |
|
|
</template> |
|
|
</el-table-column> |
|
|
</el-table-column> |
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="220"> |
|
|
|
|
|
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" > |
|
|
<template slot-scope="scope"> |
|
|
<template slot-scope="scope"> |
|
|
<el-button |
|
|
<el-button |
|
|
size="mini" |
|
|
size="mini" |
|
|
@ -164,8 +130,9 @@ |
|
|
append-to-body |
|
|
append-to-body |
|
|
:close-on-click-modal="false" |
|
|
:close-on-click-modal="false" |
|
|
class="audit-dialog" |
|
|
class="audit-dialog" |
|
|
|
|
|
@close="closeAuditDialog" |
|
|
> |
|
|
> |
|
|
<el-tabs v-model="activeAuditTab" type="border-card" @tab-click="handleTabClick"> |
|
|
|
|
|
|
|
|
<el-tabs v-model="activeAuditTab" type="border-card"> |
|
|
<!-- 基本信息审核标签页 --> |
|
|
<!-- 基本信息审核标签页 --> |
|
|
<el-tab-pane label="基本信息审核" name="basic"> |
|
|
<el-tab-pane label="基本信息审核" name="basic"> |
|
|
<div v-if="loadingBasicData" class="tab-loading"> |
|
|
<div v-if="loadingBasicData" class="tab-loading"> |
|
|
@ -191,9 +158,7 @@ |
|
|
<el-descriptions-item label="联系地址" :span="2">{{ basicInfo.address || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="联系地址" :span="2">{{ basicInfo.address || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="个人简介" :span="2">{{ basicInfo.introduction || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="个人简介" :span="2">{{ basicInfo.introduction || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="当前审核状态"> |
|
|
<el-descriptions-item label="当前审核状态"> |
|
|
<el-tag :type="getAuditStatusTagType(basicInfo.auditStatus)" size="small"> |
|
|
|
|
|
{{ getAuditStatusText(basicInfo.auditStatus) }} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
<dict-tag :options="dict.type.audit_status" :value="basicInfo.auditStatus" /> |
|
|
</el-descriptions-item> |
|
|
</el-descriptions-item> |
|
|
<el-descriptions-item label="审核人">{{ basicInfo.auditor || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核人">{{ basicInfo.auditor || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核时间">{{ parseTime(basicInfo.auditTime) || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核时间">{{ parseTime(basicInfo.auditTime) || '-' }}</el-descriptions-item> |
|
|
@ -205,17 +170,15 @@ |
|
|
<h3>基本信息审核</h3> |
|
|
<h3>基本信息审核</h3> |
|
|
<el-form ref="basicAuditForm" :model="basicAuditForm" :rules="basicAuditRules" label-width="100px"> |
|
|
<el-form ref="basicAuditForm" :model="basicAuditForm" :rules="basicAuditRules" label-width="100px"> |
|
|
<el-form-item label="审核结果" prop="auditStatus"> |
|
|
<el-form-item label="审核结果" prop="auditStatus"> |
|
|
<el-radio-group v-model="basicAuditForm.auditStatus"> |
|
|
|
|
|
|
|
|
<el-radio-group v-model="basicAuditForm.auditStatus" @change="handleBasicAuditChange"> |
|
|
<el-radio label="1">审核通过</el-radio> |
|
|
<el-radio label="1">审核通过</el-radio> |
|
|
<el-radio label="2">审核不通过</el-radio> |
|
|
<el-radio label="2">审核不通过</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
<span v-if="basicInfo.auditStatus && basicInfo.auditStatus !== '0'" class="audit-status-tag"> |
|
|
<span v-if="basicInfo.auditStatus && basicInfo.auditStatus !== '0'" class="audit-status-tag"> |
|
|
<el-tag :type="getAuditStatusTagType(basicInfo.auditStatus)" size="small"> |
|
|
|
|
|
{{ getAuditStatusText(basicInfo.auditStatus) }} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
<dict-tag :options="dict.type.audit_status" :value="basicInfo.auditStatus" /> |
|
|
</span> |
|
|
</span> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="审核意见" prop="auditDesc"> |
|
|
|
|
|
|
|
|
<el-form-item label="审核意见" prop="auditDesc" v-if="basicAuditForm.auditStatus === '2'"> |
|
|
<el-input |
|
|
<el-input |
|
|
v-model="basicAuditForm.auditDesc" |
|
|
v-model="basicAuditForm.auditDesc" |
|
|
type="textarea" |
|
|
type="textarea" |
|
|
@ -231,7 +194,7 @@ |
|
|
</el-tab-pane> |
|
|
</el-tab-pane> |
|
|
|
|
|
|
|
|
<!-- 资质证书审核标签页 --> |
|
|
<!-- 资质证书审核标签页 --> |
|
|
<el-tab-pane label="资质证书审核" name="certificate" v-if="showCertificateTab"> |
|
|
|
|
|
|
|
|
<el-tab-pane label="资质证书审核" name="certificate"> |
|
|
<div v-if="loadingCertData" class="tab-loading"> |
|
|
<div v-if="loadingCertData" class="tab-loading"> |
|
|
<i class="el-icon-loading"></i> |
|
|
<i class="el-icon-loading"></i> |
|
|
<div>加载证书信息...</div> |
|
|
<div>加载证书信息...</div> |
|
|
@ -268,26 +231,14 @@ |
|
|
<div class="cert-header"> |
|
|
<div class="cert-header"> |
|
|
<div class="cert-title"> |
|
|
<div class="cert-title"> |
|
|
<span>{{ cert.certName || cert.qualificationType || '未命名证书' }}</span> |
|
|
<span>{{ cert.certName || cert.qualificationType || '未命名证书' }}</span> |
|
|
<el-tag |
|
|
|
|
|
v-if="cert.auditStatus === '1'" |
|
|
|
|
|
type="success" |
|
|
|
|
|
size="small" |
|
|
|
|
|
|
|
|
<dict-tag |
|
|
|
|
|
v-if="cert.auditStatus && cert.auditStatus !== '0'" |
|
|
|
|
|
:options="dict.type.audit_status" |
|
|
|
|
|
:value="cert.auditStatus" |
|
|
class="cert-status-tag" |
|
|
class="cert-status-tag" |
|
|
effect="dark" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-success"></i> 已通过 |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
<el-tag |
|
|
|
|
|
v-if="cert.auditStatus === '2'" |
|
|
|
|
|
type="danger" |
|
|
|
|
|
size="small" |
|
|
|
|
|
class="cert-status-tag" |
|
|
|
|
|
effect="dark" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-error"></i> 未通过 |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
/> |
|
|
<el-tag |
|
|
<el-tag |
|
|
v-if="!cert.auditStatus || cert.auditStatus === '0'" |
|
|
|
|
|
|
|
|
v-else |
|
|
type="warning" |
|
|
type="warning" |
|
|
size="small" |
|
|
size="small" |
|
|
class="cert-status-tag" |
|
|
class="cert-status-tag" |
|
|
@ -353,11 +304,11 @@ |
|
|
<el-radio label="1">审核通过</el-radio> |
|
|
<el-radio label="1">审核通过</el-radio> |
|
|
<el-radio label="2">审核不通过</el-radio> |
|
|
<el-radio label="2">审核不通过</el-radio> |
|
|
</el-radio-group> |
|
|
</el-radio-group> |
|
|
<span v-if="certAuditForms[cert.qualificationId].submitted" class="audit-saved-tag"> |
|
|
|
|
|
<el-tag type="success" size="small">已保存</el-tag> |
|
|
|
|
|
|
|
|
<span v-if="cert.auditStatus && cert.auditStatus !== '0'" class="audit-status-tag"> |
|
|
|
|
|
<dict-tag :options="dict.type.audit_status" :value="cert.auditStatus" /> |
|
|
</span> |
|
|
</span> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item label="审核意见" prop="auditOpinion"> |
|
|
|
|
|
|
|
|
<el-form-item label="审核意见" prop="auditOpinion" v-if="certAuditForms[cert.qualificationId].auditStatus === '2'"> |
|
|
<el-input |
|
|
<el-input |
|
|
v-model="certAuditForms[cert.qualificationId].auditOpinion" |
|
|
v-model="certAuditForms[cert.qualificationId].auditOpinion" |
|
|
type="textarea" |
|
|
type="textarea" |
|
|
@ -365,19 +316,8 @@ |
|
|
placeholder="请输入审核意见" |
|
|
placeholder="请输入审核意见" |
|
|
:maxlength="200" |
|
|
:maxlength="200" |
|
|
show-word-limit |
|
|
show-word-limit |
|
|
@blur="saveCertificateAudit(cert.qualificationId)" |
|
|
|
|
|
/> |
|
|
/> |
|
|
</el-form-item> |
|
|
</el-form-item> |
|
|
<el-form-item> |
|
|
|
|
|
<el-button |
|
|
|
|
|
type="primary" |
|
|
|
|
|
@click="saveCertificateAudit(cert.qualificationId)" |
|
|
|
|
|
:loading="certAuditForms[cert.qualificationId] && certAuditForms[cert.qualificationId].saving" |
|
|
|
|
|
> |
|
|
|
|
|
保存审核 |
|
|
|
|
|
</el-button> |
|
|
|
|
|
<el-button @click="resetCertAudit(cert.qualificationId)">重置</el-button> |
|
|
|
|
|
</el-form-item> |
|
|
|
|
|
</el-form> |
|
|
</el-form> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
@ -389,7 +329,7 @@ |
|
|
</el-tabs> |
|
|
</el-tabs> |
|
|
|
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
<div slot="footer" class="dialog-footer"> |
|
|
<el-button type="primary" @click="submitAllAudit" :loading="submittingAll"> |
|
|
|
|
|
|
|
|
<el-button type="primary" @click="submitAllAudit" :loading="submittingAll" :disabled="!isAllAuditSelected"> |
|
|
{{ submittingAll ? '提交中...' : '提交审核' }} |
|
|
{{ submittingAll ? '提交中...' : '提交审核' }} |
|
|
</el-button> |
|
|
</el-button> |
|
|
<el-button @click="auditVisible = false">关 闭</el-button> |
|
|
<el-button @click="auditVisible = false">关 闭</el-button> |
|
|
@ -431,9 +371,7 @@ |
|
|
<el-descriptions-item label="工作经验">{{ detailData.workExperience || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="工作经验">{{ detailData.workExperience || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="个人简介" :span="2">{{ detailData.introduction || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="个人简介" :span="2">{{ detailData.introduction || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="当前审核状态"> |
|
|
<el-descriptions-item label="当前审核状态"> |
|
|
<el-tag :type="getAuditStatusTagType(detailData.auditStatus)" size="small"> |
|
|
|
|
|
{{ getAuditStatusText(detailData.auditStatus) }} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
<dict-tag :options="dict.type.audit_status" :value="detailData.auditStatus" /> |
|
|
</el-descriptions-item> |
|
|
</el-descriptions-item> |
|
|
<el-descriptions-item label="审核人">{{ detailData.auditor || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核人">{{ detailData.auditor || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核时间">{{ parseTime(detailData.auditTime) || '-' }}</el-descriptions-item> |
|
|
<el-descriptions-item label="审核时间">{{ parseTime(detailData.auditTime) || '-' }}</el-descriptions-item> |
|
|
@ -457,33 +395,11 @@ |
|
|
<div class="cert-header"> |
|
|
<div class="cert-header"> |
|
|
<div class="cert-title"> |
|
|
<div class="cert-title"> |
|
|
<span>{{ cert.certName || cert.qualificationType || '未命名证书' }}</span> |
|
|
<span>{{ cert.certName || cert.qualificationType || '未命名证书' }}</span> |
|
|
<el-tag |
|
|
|
|
|
v-if="cert.auditStatus === '1'" |
|
|
|
|
|
type="success" |
|
|
|
|
|
size="small" |
|
|
|
|
|
class="cert-status-tag" |
|
|
|
|
|
effect="dark" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-success"></i> 已通过 |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
<el-tag |
|
|
|
|
|
v-if="cert.auditStatus === '2'" |
|
|
|
|
|
type="danger" |
|
|
|
|
|
size="small" |
|
|
|
|
|
class="cert-status-tag" |
|
|
|
|
|
effect="dark" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-error"></i> 未通过 |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
<el-tag |
|
|
|
|
|
v-if="!cert.auditStatus || cert.auditStatus === '0'" |
|
|
|
|
|
type="warning" |
|
|
|
|
|
size="small" |
|
|
|
|
|
|
|
|
<dict-tag |
|
|
|
|
|
:options="dict.type.audit_status" |
|
|
|
|
|
:value="cert.auditStatus" |
|
|
class="cert-status-tag" |
|
|
class="cert-status-tag" |
|
|
effect="dark" |
|
|
|
|
|
> |
|
|
|
|
|
<i class="el-icon-time"></i> 待审核 |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
|
|
|
/> |
|
|
</div> |
|
|
</div> |
|
|
<div class="cert-info"> |
|
|
<div class="cert-info"> |
|
|
<span><strong>证书编号:</strong>{{ cert.certificateNo || '-' }}</span> |
|
|
<span><strong>证书编号:</strong>{{ cert.certificateNo || '-' }}</span> |
|
|
@ -493,11 +409,6 @@ |
|
|
<span><strong>颁发日期:</strong>{{ parseTime(cert.issueDate, '{y}-{m}-{d}') || '-' }}</span> |
|
|
<span><strong>颁发日期:</strong>{{ parseTime(cert.issueDate, '{y}-{m}-{d}') || '-' }}</span> |
|
|
<span><strong>到期日期:</strong>{{ parseTime(cert.expireDate, '{y}-{m}-{d}') || '-' }}</span> |
|
|
<span><strong>到期日期:</strong>{{ parseTime(cert.expireDate, '{y}-{m}-{d}') || '-' }}</span> |
|
|
<span><strong>证书状态:</strong>{{ cert.certStatus || '-' }}</span> |
|
|
<span><strong>证书状态:</strong>{{ cert.certStatus || '-' }}</span> |
|
|
<span><strong>审核状态:</strong> |
|
|
|
|
|
<el-tag :type="getAuditStatusTagType(cert.auditStatus)" size="small"> |
|
|
|
|
|
{{ getAuditStatusText(cert.auditStatus) }} |
|
|
|
|
|
</el-tag> |
|
|
|
|
|
</span> |
|
|
|
|
|
<span><strong>审核意见:</strong>{{ cert.auditOpinion || '-' }}</span> |
|
|
<span><strong>审核意见:</strong>{{ cert.auditOpinion || '-' }}</span> |
|
|
<span><strong>审核时间:</strong>{{ parseTime(cert.auditTime) || '-' }}</span> |
|
|
<span><strong>审核时间:</strong>{{ parseTime(cert.auditTime) || '-' }}</span> |
|
|
</div> |
|
|
</div> |
|
|
@ -553,12 +464,12 @@ |
|
|
</template> |
|
|
</template> |
|
|
|
|
|
|
|
|
<script> |
|
|
<script> |
|
|
import { listInfo, getInfo, auditBasicInfo, auditCertificate, listQualification } from "@/api/system/vetAduit" |
|
|
|
|
|
|
|
|
import { listInfo, getInfo, auditBasicInfo, auditCertificate, listQualification, delvetInfo } from "@/api/system/vetAduit" |
|
|
import axios from 'axios' |
|
|
import axios from 'axios' |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: "Info", |
|
|
name: "Info", |
|
|
dicts: ['expert_type'], |
|
|
|
|
|
|
|
|
dicts: ['expert_type', 'audit_status'], |
|
|
data() { |
|
|
data() { |
|
|
return { |
|
|
return { |
|
|
loading: true, |
|
|
loading: true, |
|
|
@ -585,9 +496,9 @@ export default { |
|
|
activeCertTab: null, |
|
|
activeCertTab: null, |
|
|
currentVetId: null, |
|
|
currentVetId: null, |
|
|
currentUserId: null, |
|
|
currentUserId: null, |
|
|
showCertificateTab: true, |
|
|
|
|
|
|
|
|
|
|
|
loadingBasicData: false, |
|
|
loadingBasicData: false, |
|
|
|
|
|
loadingCertData: false, |
|
|
submittingAll: false, |
|
|
submittingAll: false, |
|
|
basicInfo: {}, |
|
|
basicInfo: {}, |
|
|
basicAuditForm: { |
|
|
basicAuditForm: { |
|
|
@ -600,7 +511,6 @@ export default { |
|
|
] |
|
|
] |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
loadingCertData: false, |
|
|
|
|
|
certificateList: [], |
|
|
certificateList: [], |
|
|
certAuditForms: {}, |
|
|
certAuditForms: {}, |
|
|
certAuditRules: { |
|
|
certAuditRules: { |
|
|
@ -612,8 +522,6 @@ export default { |
|
|
imagePreviewVisible: false, |
|
|
imagePreviewVisible: false, |
|
|
previewImageUrl: "", |
|
|
previewImageUrl: "", |
|
|
|
|
|
|
|
|
certAuditTimer: null, |
|
|
|
|
|
|
|
|
|
|
|
queryParams: { |
|
|
queryParams: { |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 10, |
|
|
pageSize: 10, |
|
|
@ -641,14 +549,47 @@ export default { |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
computed: { |
|
|
computed: { |
|
|
canCompleteAudit() { |
|
|
|
|
|
if (this.basicInfo.auditStatus && this.basicInfo.auditStatus !== '0') { |
|
|
|
|
|
return true |
|
|
|
|
|
|
|
|
// 判断是否所有审核项都已选择审核结果 |
|
|
|
|
|
isAllAuditSelected() { |
|
|
|
|
|
// 基本信息未选择审核结果(审核状态必须是1或2) |
|
|
|
|
|
if (!this.basicAuditForm.auditStatus || |
|
|
|
|
|
(this.basicAuditForm.auditStatus !== '1' && this.basicAuditForm.auditStatus !== '2')) { |
|
|
|
|
|
return false |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 如果有证书,需要所有证书都选择了审核结果(审核状态必须是1或2) |
|
|
|
|
|
if (this.certificateList && this.certificateList.length > 0) { |
|
|
|
|
|
for (let i = 0; i < this.certificateList.length; i++) { |
|
|
|
|
|
const cert = this.certificateList[i] |
|
|
|
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
|
|
|
if (!form || !form.auditStatus || |
|
|
|
|
|
(form.auditStatus !== '1' && form.auditStatus !== '2')) { |
|
|
|
|
|
return false |
|
|
} |
|
|
} |
|
|
if (this.basicAuditForm.auditStatus) { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return true |
|
|
return true |
|
|
} |
|
|
} |
|
|
return false |
|
|
|
|
|
|
|
|
}, |
|
|
|
|
|
watch: { |
|
|
|
|
|
// 监听基本信息审核结果变化 |
|
|
|
|
|
'basicAuditForm.auditStatus': { |
|
|
|
|
|
handler() { |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
// 触发计算属性更新 |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
deep: true |
|
|
|
|
|
}, |
|
|
|
|
|
// 监听证书审核结果变化 |
|
|
|
|
|
certAuditForms: { |
|
|
|
|
|
handler() { |
|
|
|
|
|
this.$nextTick(() => { |
|
|
|
|
|
// 触发计算属性更新 |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
deep: true |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
created() { |
|
|
created() { |
|
|
@ -677,59 +618,51 @@ export default { |
|
|
this.auditVisible = true |
|
|
this.auditVisible = true |
|
|
this.activeAuditTab = "basic" |
|
|
this.activeAuditTab = "basic" |
|
|
|
|
|
|
|
|
this.loadBasicData(id) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
handleTabClick(tab) { |
|
|
|
|
|
if (tab.name === 'certificate' && (!this.certificateList || this.certificateList.length === 0)) { |
|
|
|
|
|
if (this.basicInfo && this.basicInfo.userId) { |
|
|
|
|
|
this.loadCertificateData(this.basicInfo.userId) |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.warning('无法获取用户信息') |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
// 同时加载基本信息和证书数据 |
|
|
|
|
|
this.loadAllData(id) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
loadBasicData(id) { |
|
|
|
|
|
|
|
|
// 同时加载基本信息和证书数据 |
|
|
|
|
|
async loadAllData(vetId) { |
|
|
this.loadingBasicData = true |
|
|
this.loadingBasicData = true |
|
|
|
|
|
this.loadingCertData = true |
|
|
|
|
|
|
|
|
getInfo(id).then(response => { |
|
|
|
|
|
if (response.code === 200) { |
|
|
|
|
|
this.basicInfo = response.data || {} |
|
|
|
|
|
|
|
|
try { |
|
|
|
|
|
// 加载基本信息 |
|
|
|
|
|
const basicResponse = await getInfo(vetId) |
|
|
|
|
|
if (basicResponse.code === 200) { |
|
|
|
|
|
this.basicInfo = basicResponse.data || {} |
|
|
this.currentUserId = this.basicInfo.userId |
|
|
this.currentUserId = this.basicInfo.userId |
|
|
|
|
|
|
|
|
|
|
|
// 如果基本信息已经有审核状态(1或2),则回显 |
|
|
|
|
|
if (this.basicInfo.auditStatus && this.basicInfo.auditStatus !== '0') { |
|
|
this.basicAuditForm = { |
|
|
this.basicAuditForm = { |
|
|
auditStatus: this.basicInfo.auditStatus || "", |
|
|
|
|
|
|
|
|
auditStatus: this.basicInfo.auditStatus, |
|
|
auditDesc: this.basicInfo.auditDesc || "" |
|
|
auditDesc: this.basicInfo.auditDesc || "" |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(response.msg || '加载失败') |
|
|
|
|
|
|
|
|
this.basicAuditForm = { |
|
|
|
|
|
auditStatus: "", |
|
|
|
|
|
auditDesc: "" |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(basicResponse.msg || '加载基本信息失败') |
|
|
} |
|
|
} |
|
|
}).catch(error => { |
|
|
|
|
|
console.error('加载失败:', error) |
|
|
|
|
|
this.$message.error('加载失败') |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
this.loadingBasicData = false |
|
|
|
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
loadCertificateData(userId) { |
|
|
|
|
|
this.loadingCertData = true |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 加载证书数据 |
|
|
|
|
|
if (this.currentUserId) { |
|
|
const queryParams = { |
|
|
const queryParams = { |
|
|
userId: userId, |
|
|
|
|
|
|
|
|
userId: this.currentUserId, |
|
|
pageNum: 1, |
|
|
pageNum: 1, |
|
|
pageSize: 1000 |
|
|
pageSize: 1000 |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
listQualification(queryParams).then(response => { |
|
|
|
|
|
if (response.code === 200) { |
|
|
|
|
|
this.certificateList = response.rows || [] |
|
|
|
|
|
|
|
|
const certResponse = await listQualification(queryParams) |
|
|
|
|
|
if (certResponse.code === 200) { |
|
|
|
|
|
this.certificateList = certResponse.rows || [] |
|
|
|
|
|
|
|
|
if (this.certificateList.length === 0) { |
|
|
|
|
|
this.$message.info('该兽医暂无资质证书') |
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
if (this.certificateList.length > 0) { |
|
|
if (this.certificateList.length > 0) { |
|
|
if (this.certificateList.length > 0) { |
|
|
this.activeCertTab = 'cert' + this.certificateList[0].qualificationId |
|
|
this.activeCertTab = 'cert' + this.certificateList[0].qualificationId |
|
|
} |
|
|
} |
|
|
@ -737,153 +670,184 @@ export default { |
|
|
|
|
|
|
|
|
const forms = {} |
|
|
const forms = {} |
|
|
this.certificateList.forEach(cert => { |
|
|
this.certificateList.forEach(cert => { |
|
|
|
|
|
// 如果证书已经有审核状态(1或2),则回显 |
|
|
|
|
|
if (cert.auditStatus && cert.auditStatus !== '0') { |
|
|
forms[cert.qualificationId] = { |
|
|
forms[cert.qualificationId] = { |
|
|
qualificationId: cert.qualificationId, |
|
|
qualificationId: cert.qualificationId, |
|
|
auditStatus: cert.auditStatus || "", |
|
|
|
|
|
|
|
|
auditStatus: cert.auditStatus, |
|
|
auditOpinion: cert.auditOpinion || "", |
|
|
auditOpinion: cert.auditOpinion || "", |
|
|
submitted: !!cert.auditStatus && cert.auditStatus !== '0', |
|
|
|
|
|
saving: false |
|
|
|
|
|
|
|
|
audited: true |
|
|
|
|
|
} |
|
|
|
|
|
} else { |
|
|
|
|
|
forms[cert.qualificationId] = { |
|
|
|
|
|
qualificationId: cert.qualificationId, |
|
|
|
|
|
auditStatus: "", |
|
|
|
|
|
auditOpinion: "", |
|
|
|
|
|
audited: false |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
}) |
|
|
}) |
|
|
this.certAuditForms = forms |
|
|
this.certAuditForms = forms |
|
|
|
|
|
|
|
|
} else { |
|
|
} else { |
|
|
this.$message.error(response.msg || '加载证书列表失败') |
|
|
|
|
|
|
|
|
this.$message.error(certResponse.msg || '加载证书列表失败') |
|
|
} |
|
|
} |
|
|
}).catch(error => { |
|
|
|
|
|
console.error('加载证书列表失败:', error) |
|
|
|
|
|
this.$message.error('加载证书列表失败') |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
console.error('加载数据失败:', error) |
|
|
|
|
|
this.$message.error('加载数据失败') |
|
|
|
|
|
} finally { |
|
|
|
|
|
this.loadingBasicData = false |
|
|
this.loadingCertData = false |
|
|
this.loadingCertData = false |
|
|
}) |
|
|
|
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleCertAuditChange(qualificationId) { |
|
|
|
|
|
if (this.certAuditForms[qualificationId]) { |
|
|
|
|
|
this.certAuditForms[qualificationId].submitted = false |
|
|
|
|
|
|
|
|
handleBasicAuditChange(e) { |
|
|
|
|
|
console.log(e); |
|
|
|
|
|
// 如果选择审核通过,清空审核意见 |
|
|
|
|
|
if (this.basicAuditForm.auditStatus === '1') { |
|
|
|
|
|
this.basicAuditForm.auditDesc = '' |
|
|
} |
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
saveCertificateAudit(qualificationId) { |
|
|
|
|
|
const formRef = this.$refs['certForm' + qualificationId] |
|
|
|
|
|
if (!formRef || !formRef[0]) return |
|
|
|
|
|
|
|
|
handleCertAuditChange(qualificationId) { |
|
|
|
|
|
// 如果选择审核通过,清空审核意见 |
|
|
|
|
|
if (this.certAuditForms[qualificationId].auditStatus === '1') { |
|
|
|
|
|
this.certAuditForms[qualificationId].auditOpinion = '' |
|
|
|
|
|
} |
|
|
|
|
|
// 标记为已审核(选择了结果) |
|
|
|
|
|
this.certAuditForms[qualificationId].audited = true |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
formRef[0].validate(valid => { |
|
|
|
|
|
if (valid) { |
|
|
|
|
|
const form = this.certAuditForms[qualificationId] |
|
|
|
|
|
if (!form.auditStatus) { |
|
|
|
|
|
this.$message.warning('请选择审核结果') |
|
|
|
|
|
|
|
|
submitAllAudit() { |
|
|
|
|
|
// 验证基本信息审核结果 |
|
|
|
|
|
if (!this.basicAuditForm.auditStatus || |
|
|
|
|
|
(this.basicAuditForm.auditStatus !== '1' && this.basicAuditForm.auditStatus !== '2')) { |
|
|
|
|
|
this.$message.warning('请选择基本信息审核结果') |
|
|
|
|
|
this.activeAuditTab = 'basic' |
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
form.saving = true |
|
|
|
|
|
|
|
|
|
|
|
const auditData = { |
|
|
|
|
|
qualificationId: qualificationId, |
|
|
|
|
|
auditStatus: form.auditStatus, |
|
|
|
|
|
auditOpinion: form.auditOpinion || '' |
|
|
|
|
|
|
|
|
// 验证基本信息审核意见(不通过时必须填写) |
|
|
|
|
|
if (this.basicAuditForm.auditStatus === '2' && !this.basicAuditForm.auditDesc) { |
|
|
|
|
|
this.$message.warning('审核不通过时,请填写审核意见') |
|
|
|
|
|
this.activeAuditTab = 'basic' |
|
|
|
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
auditCertificate(auditData).then(response => { |
|
|
|
|
|
if (response.code === 200) { |
|
|
|
|
|
form.submitted = true |
|
|
|
|
|
|
|
|
// 验证证书审核 |
|
|
|
|
|
if (this.certificateList && this.certificateList.length > 0) { |
|
|
|
|
|
let unselectedCertNames = [] |
|
|
|
|
|
let invalidOpinionCertNames = [] |
|
|
|
|
|
|
|
|
const certIndex = this.certificateList.findIndex(c => c.qualificationId === qualificationId) |
|
|
|
|
|
if (certIndex !== -1) { |
|
|
|
|
|
this.certificateList[certIndex].auditStatus = form.auditStatus |
|
|
|
|
|
this.certificateList[certIndex].auditOpinion = form.auditOpinion |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
for (let i = 0; i < this.certificateList.length; i++) { |
|
|
|
|
|
const cert = this.certificateList[i] |
|
|
|
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
|
|
|
const certName = cert.certName || cert.qualificationType || `证书${i + 1}` |
|
|
|
|
|
|
|
|
this.$message.success('证书审核已保存') |
|
|
|
|
|
} else { |
|
|
|
|
|
this.$message.error(response.msg || '保存失败') |
|
|
|
|
|
|
|
|
if (!form || !form.auditStatus || |
|
|
|
|
|
(form.auditStatus !== '1' && form.auditStatus !== '2')) { |
|
|
|
|
|
unselectedCertNames.push(certName) |
|
|
|
|
|
} else if (form.auditStatus === '2' && !form.auditOpinion) { |
|
|
|
|
|
invalidOpinionCertNames.push(certName) |
|
|
} |
|
|
} |
|
|
}).catch(error => { |
|
|
|
|
|
console.error('保存证书审核失败:', error) |
|
|
|
|
|
this.$message.error('保存失败') |
|
|
|
|
|
}).finally(() => { |
|
|
|
|
|
form.saving = false |
|
|
|
|
|
}) |
|
|
|
|
|
} |
|
|
} |
|
|
}) |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
resetCertAudit(qualificationId) { |
|
|
|
|
|
const cert = this.certificateList.find(c => c.qualificationId === qualificationId) |
|
|
|
|
|
if (cert) { |
|
|
|
|
|
this.certAuditForms[qualificationId] = { |
|
|
|
|
|
qualificationId: cert.qualificationId, |
|
|
|
|
|
auditStatus: cert.auditStatus || "", |
|
|
|
|
|
auditOpinion: cert.auditOpinion || "", |
|
|
|
|
|
submitted: !!cert.auditStatus && cert.auditStatus !== '0', |
|
|
|
|
|
saving: false |
|
|
|
|
|
} |
|
|
|
|
|
this.$message.info('已重置审核表单') |
|
|
|
|
|
|
|
|
// 如果有未选择审核结果的证书 |
|
|
|
|
|
if (unselectedCertNames.length > 0) { |
|
|
|
|
|
const message = `请为以下证书选择审核结果:${unselectedCertNames.join('、')}` |
|
|
|
|
|
this.$message.warning(message) |
|
|
|
|
|
this.activeAuditTab = 'certificate' |
|
|
|
|
|
// 切换到第一个未选择的证书标签页 |
|
|
|
|
|
const firstUnselectedCert = this.certificateList.find(cert => { |
|
|
|
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
|
|
|
return !form || !form.auditStatus || |
|
|
|
|
|
(form.auditStatus !== '1' && form.auditStatus !== '2') |
|
|
|
|
|
}) |
|
|
|
|
|
if (firstUnselectedCert) { |
|
|
|
|
|
this.activeCertTab = 'cert' + firstUnselectedCert.qualificationId |
|
|
} |
|
|
} |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
submitAllAudit() { |
|
|
|
|
|
this.$refs.basicAuditForm.validate(valid => { |
|
|
|
|
|
if (!valid) { |
|
|
|
|
|
this.$message.warning('请完成基本信息审核') |
|
|
|
|
|
this.activeAuditTab = 'basic' |
|
|
|
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
let allCertAudited = true |
|
|
|
|
|
if (this.certificateList.length > 0) { |
|
|
|
|
|
for (let i = 0; i < this.certificateList.length; i++) { |
|
|
|
|
|
const cert = this.certificateList[i] |
|
|
|
|
|
|
|
|
// 如果有审核不通过但未填写意见的证书 |
|
|
|
|
|
if (invalidOpinionCertNames.length > 0) { |
|
|
|
|
|
const message = `以下证书审核不通过,请填写审核意见:${invalidOpinionCertNames.join('、')}` |
|
|
|
|
|
this.$message.warning(message) |
|
|
|
|
|
this.activeAuditTab = 'certificate' |
|
|
|
|
|
// 切换到第一个未填写意见的证书标签页 |
|
|
|
|
|
const firstInvalidCert = this.certificateList.find(cert => { |
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
if (!form || !form.submitted) { |
|
|
|
|
|
allCertAudited = false |
|
|
|
|
|
break |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
return form && form.auditStatus === '2' && !form.auditOpinion |
|
|
|
|
|
}) |
|
|
|
|
|
if (firstInvalidCert) { |
|
|
|
|
|
this.activeCertTab = 'cert' + firstInvalidCert.qualificationId |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
if (!allCertAudited) { |
|
|
|
|
|
this.$message.warning('请完成所有证书的审核') |
|
|
|
|
|
this.activeAuditTab = 'certificate' |
|
|
|
|
|
return |
|
|
return |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.submittingAll = true |
|
|
this.submittingAll = true |
|
|
|
|
|
|
|
|
const auditData = { |
|
|
|
|
|
|
|
|
// 提交基本信息审核 |
|
|
|
|
|
const basicAuditData = { |
|
|
id: this.currentVetId, |
|
|
id: this.currentVetId, |
|
|
auditStatus: this.basicAuditForm.auditStatus, |
|
|
auditStatus: this.basicAuditForm.auditStatus, |
|
|
auditDesc: this.basicAuditForm.auditDesc |
|
|
auditDesc: this.basicAuditForm.auditDesc |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
auditBasicInfo(auditData).then(response => { |
|
|
|
|
|
|
|
|
auditBasicInfo(basicAuditData).then(response => { |
|
|
if (response.code === 200) { |
|
|
if (response.code === 200) { |
|
|
|
|
|
// 提交证书审核 |
|
|
|
|
|
if (this.certificateList && this.certificateList.length > 0) { |
|
|
|
|
|
const certPromises = [] |
|
|
|
|
|
this.certificateList.forEach(cert => { |
|
|
|
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
|
|
|
const certAuditData = { |
|
|
|
|
|
qualificationId: cert.qualificationId, |
|
|
|
|
|
auditStatus: form.auditStatus, |
|
|
|
|
|
auditOpinion: form.auditOpinion || '' |
|
|
|
|
|
} |
|
|
|
|
|
certPromises.push(auditCertificate(certAuditData)) |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
return Promise.all(certPromises) |
|
|
|
|
|
} |
|
|
|
|
|
return Promise.resolve() |
|
|
|
|
|
} else { |
|
|
|
|
|
throw new Error(response.msg || '基本信息审核提交失败') |
|
|
|
|
|
} |
|
|
|
|
|
}).then(results => { |
|
|
this.$message.success('审核提交成功') |
|
|
this.$message.success('审核提交成功') |
|
|
this.auditVisible = false |
|
|
this.auditVisible = false |
|
|
this.getList() |
|
|
this.getList() |
|
|
} else { |
|
|
|
|
|
this.$message.error(response.msg || '提交失败') |
|
|
|
|
|
} |
|
|
|
|
|
}).catch(error => { |
|
|
}).catch(error => { |
|
|
console.error('提交失败:', error) |
|
|
console.error('提交失败:', error) |
|
|
this.$message.error('提交失败') |
|
|
|
|
|
|
|
|
this.$message.error(error.message || '提交失败') |
|
|
}).finally(() => { |
|
|
}).finally(() => { |
|
|
this.submittingAll = false |
|
|
this.submittingAll = false |
|
|
}) |
|
|
}) |
|
|
}) |
|
|
|
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
getCertSummaryText() { |
|
|
getCertSummaryText() { |
|
|
if (this.certificateList.length === 0) { |
|
|
|
|
|
|
|
|
if (!this.certificateList || this.certificateList.length === 0) { |
|
|
return '暂无资质证书' |
|
|
return '暂无资质证书' |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
const total = this.certificateList.length |
|
|
|
|
|
const audited = Object.values(this.certAuditForms).filter(f => f.submitted).length |
|
|
|
|
|
const passed = this.certificateList.filter(c => c.auditStatus === '1').length |
|
|
|
|
|
const failed = this.certificateList.filter(c => c.auditStatus === '2').length |
|
|
|
|
|
|
|
|
let selectedCount = 0 |
|
|
|
|
|
this.certificateList.forEach(cert => { |
|
|
|
|
|
const form = this.certAuditForms[cert.qualificationId] |
|
|
|
|
|
if (form && form.auditStatus && |
|
|
|
|
|
(form.auditStatus === '1' || form.auditStatus === '2')) { |
|
|
|
|
|
selectedCount++ |
|
|
|
|
|
} |
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
return `共 ${total} 个证书,已审核 ${audited} 个,其中通过 ${passed} 个,不通过 ${failed} 个` |
|
|
|
|
|
|
|
|
const totalCount = this.certificateList.length |
|
|
|
|
|
if (selectedCount === totalCount) { |
|
|
|
|
|
return `共 ${totalCount} 个证书,所有证书均已选择审核结果` |
|
|
|
|
|
} else { |
|
|
|
|
|
return `共 ${totalCount} 个证书,已选择审核结果 ${selectedCount} 个,还有 ${totalCount - selectedCount} 个证书未选择` |
|
|
|
|
|
} |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
resetAuditData() { |
|
|
resetAuditData() { |
|
|
@ -897,10 +861,12 @@ export default { |
|
|
this.currentVetId = null |
|
|
this.currentVetId = null |
|
|
this.currentUserId = null |
|
|
this.currentUserId = null |
|
|
this.activeCertTab = null |
|
|
this.activeCertTab = null |
|
|
if (this.certAuditTimer) { |
|
|
|
|
|
clearTimeout(this.certAuditTimer) |
|
|
|
|
|
this.certAuditTimer = null |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.loadingBasicData = false |
|
|
|
|
|
this.loadingCertData = false |
|
|
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
closeAuditDialog() { |
|
|
|
|
|
this.resetAuditData() |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
handleView(row) { |
|
|
handleView(row) { |
|
|
@ -1000,13 +966,14 @@ export default { |
|
|
}) |
|
|
}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
// 删除 |
|
|
handleDelete(row) { |
|
|
handleDelete(row) { |
|
|
const ids = row.id || this.ids |
|
|
const ids = row.id || this.ids |
|
|
this.$modal.confirm('是否确认删除兽医个人信息编号为"' + ids + '"的数据项?').then(() => { |
|
|
this.$modal.confirm('是否确认删除兽医个人信息编号为"' + ids + '"的数据项?').then(() => { |
|
|
this.$axios.delete('/system/vetInfo/' + ids).then(response => { |
|
|
|
|
|
|
|
|
return delvetInfo(ids) |
|
|
|
|
|
}).then(() => { |
|
|
this.getList() |
|
|
this.getList() |
|
|
this.$modal.msgSuccess("删除成功") |
|
|
this.$modal.msgSuccess("删除成功") |
|
|
}) |
|
|
|
|
|
}).catch(() => {}) |
|
|
}).catch(() => {}) |
|
|
}, |
|
|
}, |
|
|
|
|
|
|
|
|
@ -1085,7 +1052,7 @@ export default { |
|
|
axios({ |
|
|
axios({ |
|
|
method: 'get', |
|
|
method: 'get', |
|
|
url: fullUrl, |
|
|
url: fullUrl, |
|
|
responseType: 'blob', // 关键:设置响应类型为blob |
|
|
|
|
|
|
|
|
responseType: 'blob', |
|
|
headers: { |
|
|
headers: { |
|
|
} |
|
|
} |
|
|
}).then(response => { |
|
|
}).then(response => { |
|
|
@ -1120,10 +1087,17 @@ export default { |
|
|
} |
|
|
} |
|
|
</script> |
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style> |
|
|
|
|
|
.el-tooltip__popper{ |
|
|
|
|
|
width: 300px !important; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
<style scoped> |
|
|
<style scoped> |
|
|
::v-deep .pagestyle .el-input{ |
|
|
::v-deep .pagestyle .el-input{ |
|
|
width: auto !important; |
|
|
width: auto !important; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
</style> |
|
|
</style> |
|
|
|
|
|
|
|
|
<style scoped lang="scss"> |
|
|
<style scoped lang="scss"> |
|
|
@ -1256,27 +1230,7 @@ export default { |
|
|
font-size: 13px; |
|
|
font-size: 13px; |
|
|
font-weight: 600; |
|
|
font-weight: 600; |
|
|
color: #303133; |
|
|
color: #303133; |
|
|
//flex: 1; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//.el-tag { |
|
|
|
|
|
// font-weight: 500; |
|
|
|
|
|
// |
|
|
|
|
|
// &.el-tag--success { |
|
|
|
|
|
// background-color: rgba(103, 194, 58, 0.1); |
|
|
|
|
|
// border-color: rgba(103, 194, 58, 0.2); |
|
|
|
|
|
// } |
|
|
|
|
|
// |
|
|
|
|
|
// &.el-tag--danger { |
|
|
|
|
|
// background-color: rgba(245, 108, 108, 0.1); |
|
|
|
|
|
// border-color: rgba(245, 108, 108, 0.2); |
|
|
|
|
|
// } |
|
|
|
|
|
// |
|
|
|
|
|
// &.el-tag--warning { |
|
|
|
|
|
// background-color: rgba(230, 162, 60, 0.1); |
|
|
|
|
|
// border-color: rgba(230, 162, 60, 0.2); |
|
|
|
|
|
// } |
|
|
|
|
|
//} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
.cert-info { |
|
|
.cert-info { |
|
|
@ -1364,7 +1318,6 @@ export default { |
|
|
color: #606266; |
|
|
color: #606266; |
|
|
font-size: 13px; |
|
|
font-size: 13px; |
|
|
|
|
|
|
|
|
// 新增:下载按钮样式 |
|
|
|
|
|
.download-btn { |
|
|
.download-btn { |
|
|
color: #409EFF; |
|
|
color: #409EFF; |
|
|
padding: 0; |
|
|
padding: 0; |
|
|
@ -1418,31 +1371,6 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
//.info-btn { |
|
|
|
|
|
// padding: 6px 12px; |
|
|
|
|
|
// border-radius: 4px; |
|
|
|
|
|
// margin: 0 4px; |
|
|
|
|
|
// transition: all 0.3s ease; |
|
|
|
|
|
// font-weight: 500; |
|
|
|
|
|
// |
|
|
|
|
|
// &:hover { |
|
|
|
|
|
// transform: translateY(-2px); |
|
|
|
|
|
// box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); |
|
|
|
|
|
// } |
|
|
|
|
|
//} |
|
|
|
|
|
// |
|
|
|
|
|
//.view-btn:hover { |
|
|
|
|
|
// background-color: rgba(243, 239, 231, 0.9); |
|
|
|
|
|
// border-color: #e6a23c; |
|
|
|
|
|
// color: #e6a23c; |
|
|
|
|
|
//} |
|
|
|
|
|
// |
|
|
|
|
|
//.audit-btn:hover { |
|
|
|
|
|
// background-color: rgba(64, 158, 255, 0.15); |
|
|
|
|
|
// border-color: #409eff; |
|
|
|
|
|
// color: #409eff; |
|
|
|
|
|
//} |
|
|
|
|
|
|
|
|
|
|
|
:deep(.dialog-footer) { |
|
|
:deep(.dialog-footer) { |
|
|
.el-button { |
|
|
.el-button { |
|
|
min-width: 100px; |
|
|
min-width: 100px; |
|
|
@ -1483,7 +1411,6 @@ export default { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 操作按钮样式 |
|
|
|
|
|
.info-btn { |
|
|
.info-btn { |
|
|
padding: 6px 10px; |
|
|
padding: 6px 10px; |
|
|
border-radius: 4px; |
|
|
border-radius: 4px; |
|
|
@ -1501,7 +1428,6 @@ export default { |
|
|
transform: translateY(-1px); |
|
|
transform: translateY(-1px); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 新增/修改的弹窗 |
|
|
|
|
|
::v-deep .el-dialog { |
|
|
::v-deep .el-dialog { |
|
|
border-radius: 12px; |
|
|
border-radius: 12px; |
|
|
overflow: hidden; |
|
|
overflow: hidden; |
|
|
@ -1580,7 +1506,6 @@ export default { |
|
|
border-radius: 0 0 12px 12px; |
|
|
border-radius: 0 0 12px 12px; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 证书中的状态标签样式 |
|
|
|
|
|
.cert-status-tag { |
|
|
.cert-status-tag { |
|
|
min-width: 70px; |
|
|
min-width: 70px; |
|
|
display: inline-flex; |
|
|
display: inline-flex; |
|
|
|