This commit is contained in:
zoujiandong 2023-12-04 10:55:59 +08:00
parent 3a7f2f2372
commit 4e64ee71ed
3 changed files with 96 additions and 20 deletions

View File

@ -373,11 +373,11 @@
</a-col> </a-col>
</a-row> </a-row>
<a-divider v-if="Object.keys(modalForm.user_doctor_info).length != 0" /> <a-divider v-if="Object.keys(modalForm.user_doctor_info).length != 0" />
<div class="titlebox" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && modalForm.multi_point_status==1"> <div class="titlebox" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && !modalForm.user_ca_cert">
<div class="bar"></div> <div class="bar"></div>
<div class="name">CA证书配置</div> <div class="name">CA证书配置</div>
</div> </div>
<a-row :gutter="24" style="margin-top: 35px;" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && modalForm.multi_point_status==1"> <a-row :gutter="24" style="margin-top: 35px;" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && !modalForm.user_ca_cert">
<a-col :span="24"> <a-col :span="24">
<a-form-item field="" label="" no-style> <a-form-item field="" label="" no-style>
<div v-if="modalForm.user_ca_cert">证书有效期:{{parseTime(modalForm.user_ca_cert.cert_application_time,'{y}-{m}-{d}')}}-{{parseTime(modalForm.user_ca_cert.cert_expire_time,'{y}-{m}-{d}')}}</div> <div v-if="modalForm.user_ca_cert">证书有效期:{{parseTime(modalForm.user_ca_cert.cert_application_time,'{y}-{m}-{d}')}}-{{parseTime(modalForm.user_ca_cert.cert_expire_time,'{y}-{m}-{d}')}}</div>

View File

@ -367,7 +367,22 @@
</a-col> </a-col>
</a-row> </a-row>
<a-divider /> <a-divider />
</a-form> </a-form>
<div class="titlebox" v-if="!modalForm.user_ca_cert">
<div class="bar"></div>
<div class="name">CA证书配置</div>
</div>
<a-row :gutter="24" style="margin-top: 35px;" v-if="!modalForm.user_ca_cert">
<a-col :span="24">
<a-form-item field="" label="" no-style>
<a-space style="margin-top: 15px;">
<a-button type="primary" @click="()=>{checkokVisible=true;checkokStatus=2;}" v-has="'admin:sysDoctorList:applyCA'" v-if="!modalForm.user_ca_cert">证书申请</a-button>
</a-space>
<a-divider />
</a-form-item>
</a-col>
</a-row>
<div class="titlebox" > <div class="titlebox" >
<div class="bar"></div> <div class="bar"></div>
<div class="name">操作</div> <div class="name">操作</div>
@ -376,7 +391,7 @@
<a-col :span="24"> <a-col :span="24">
<a-form-item field="" label="" no-style> <a-form-item field="" label="" no-style>
<a-space > <a-space >
<a-button type="primary" v-has="'admin:sysDoctorExamine:ok'" @click="handleCheck('ok')">审核通过</a-button> <a-button type="primary" v-has="'admin:sysDoctorExamine:ok'" @click="handleCheck('ok')" v-if="modalForm.user_ca_cert">审核通过</a-button>
<a-button type="primary" status="danger" v-has="'admin:sysDoctorExamine:deny'" @click="handleCheck(deny)">审核拒绝</a-button> <a-button type="primary" status="danger" v-has="'admin:sysDoctorExamine:deny'" @click="handleCheck(deny)">审核拒绝</a-button>
</a-space> </a-space>
<!-- <a-space v-if="modalSatus=='edit'"> <!-- <a-space v-if="modalSatus=='edit'">
@ -403,12 +418,23 @@
</a-form-item> </a-form-item>
</a-form> </a-form>
</a-modal> </a-modal>
<!-- 审核通过弹框 -->
<a-modal v-model:visible="checkokVisible" :modal-style="{width:'320px'}" body-class="okmodal" @ok="checkokhandleSubmit"
@cancel="()=>checkokokVisible=false">
<template #title>
提示
</template>
<div v-if="checkokStatus==1">必须先在[四川省互联网医疗服务监管平台] 对医师备案通过后才可点击[医师身份审核通过] 按钮</div>
<div v-if="checkokStatus==2">确定申请CA证书</div>
</a-modal>
</div> </div>
</template> </template>
<script setup> <script setup>
import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue'; import { reactive, ref, getCurrentInstance, onMounted, nextTick, watch, computed } from 'vue';
import { getDoctorList,getDoctorDetail,checkDoctor} from '@/api/doctor/examine'; import { getDoctorList,getDoctorDetail,checkDoctor} from '@/api/doctor/examine';
import {departmentList, decryptCard, hospitalList, expertiseList } from '@/api/doctor/list'; import {departmentList, decryptCard, hospitalList, expertiseList } from '@/api/doctor/list';
import { applyCA} from '@/api/doctor/ca';
import dayjs from 'dayjs' import dayjs from 'dayjs'
import { parseTime } from '@/utils/parseTime'; import { parseTime } from '@/utils/parseTime';
// Akiraka 20230210 // Akiraka 20230210
@ -416,6 +442,9 @@
// Akiraka 20230210 // Akiraka 20230210
const deleteVisible = ref(false) const deleteVisible = ref(false)
const modalCheckVisible = ref(false) const modalCheckVisible = ref(false)
const checkokVisible=ref(false);
const checkokStatus=ref(1); // 1 ca //2
// Akiraka 20230210 // Akiraka 20230210
watch(() => deleteVisible.value, (value) => { watch(() => deleteVisible.value, (value) => {
if (value == false) { if (value == false) {
@ -680,7 +709,15 @@
}; };
//
const handleApplyCA=()=>{
applyCA(modalForm.user_doctor_info.user_id).then(data=>{
if(data.code==200){
Message.success('证书申请成功');
}
})
}
// //
const handleQuery = async () => { const handleQuery = async () => {
@ -770,6 +807,16 @@
return elemTop; return elemTop;
} }
const checkokhandleSubmit=()=>{
if(checkokStatus.value==1){
checkok();
}else if(checkokStatus.value==2){
handleApplyCA();
}
};
// //
const handleCheck= async(type)=>{ const handleCheck= async(type)=>{
if(type=="ok"){ if(type=="ok"){
@ -780,10 +827,20 @@
document.querySelector(".myModal").scrollTo(0,top) document.querySelector(".myModal").scrollTo(0,top)
return false return false
} }
checkokVisible.value=true;
checkokStatus.value=1;
}else{
modalCheckForm.iden_auth_status=3;
modalCheckVisible.value=true;
}
}
const checkok=async()=>{
proxy.$loading.show(); proxy.$loading.show();
const {code,message,data}= await checkDoctor({ const {code,message,data}= await checkDoctor({
iden_auth_status:1, iden_auth_status:1,
qualification_cert_num:id qualification_cert_num:modalForm.user_doctor_info.qualification_cert_num
},modalForm.doctor_id); },modalForm.doctor_id);
if (code == 200) { if (code == 200) {
proxy.$notification.success("审核通过"); proxy.$notification.success("审核通过");
@ -791,13 +848,7 @@
proxy.$loading.hide(); proxy.$loading.hide();
modalVisible.value=false; modalVisible.value=false;
} }
}
}else{
modalCheckForm.iden_auth_status=3;
modalCheckVisible.value=true;
}
}
// //
const handleResetQuery = () => { const handleResetQuery = () => {
proxy.$refs.queryFormRef.resetFields(); proxy.$refs.queryFormRef.resetFields();

View File

@ -282,7 +282,7 @@
<a-row :gutter="24"> <a-row :gutter="24">
<a-col :span="12"> <a-col :span="12">
<a-form-item field="doctor_title" label="职 称 "> <a-form-item field="doctor_title" label="职 称 ">
<a-select placeholder="请选择所在职称" v-model="modalForm.doctor_title"> <a-select placeholder="请选择所在职称" v-model="modalForm.doctor_title" >
<a-option v-for="item in doctor_title_data" :key="item.doctor_title" :value="item.doctor_title" <a-option v-for="item in doctor_title_data" :key="item.doctor_title" :value="item.doctor_title"
:label="item.doctor_title_name">{{item.doctor_title_name}}</a-option> :label="item.doctor_title_name">{{item.doctor_title_name}}</a-option>
</a-select> </a-select>
@ -566,11 +566,11 @@
</a-col> </a-col>
</a-row> </a-row>
<a-divider v-if="Object.keys(modalForm.user_doctor_info).length != 0"/> <a-divider v-if="Object.keys(modalForm.user_doctor_info).length != 0"/>
<div class="titlebox" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && modalForm.multi_point_status==1"> <div class="titlebox" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && !modalForm.user_ca_cert">
<div class="bar"></div> <div class="bar"></div>
<div class="name">CA证书配置</div> <div class="name">CA证书配置</div>
</div> </div>
<a-row :gutter="24" style="margin-top: 35px;" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && modalForm.multi_point_status==1"> <a-row :gutter="24" style="margin-top: 35px;" v-if="modalForm.department_custom_name && modalForm.iden_auth_status==1 && modalForm.user_doctor_info.sign_image && !modalForm.user_ca_cert">
<a-col :span="24"> <a-col :span="24">
<a-form-item field="" label="" no-style> <a-form-item field="" label="" no-style>
<div v-if="modalForm.user_ca_cert">证书有效期:{{parseTime(modalForm.user_ca_cert.cert_application_time,'{y}-{m}-{d}')}}-{{parseTime(modalForm.user_ca_cert.cert_expire_time,'{y}-{m}-{d}')}}</div> <div v-if="modalForm.user_ca_cert">证书有效期:{{parseTime(modalForm.user_ca_cert.cert_application_time,'{y}-{m}-{d}')}}-{{parseTime(modalForm.user_ca_cert.cert_expire_time,'{y}-{m}-{d}')}}</div>
@ -599,7 +599,7 @@
<a-col :span="24"> <a-col :span="24">
<a-form-item field="" label="" no-style> <a-form-item field="" label="" no-style>
<a-space v-if="modalSatus!='detail'" style="margin-right: 8px;"> <a-space v-if="modalSatus!='detail'" style="margin-right: 8px;">
<a-button type="primary" @click="()=>{okVisible=true,okStatus=1}" v-has="'admin:sysDoctorList:save'">保存</a-button> <a-button type="primary" @click="saveBefore" v-has="'admin:sysDoctorList:save'">保存</a-button>
</a-space> </a-space>
<!-- <a-space v-if="modalSatus=='edit'"> <!-- <a-space v-if="modalSatus=='edit'">
<a-button type="primary" status="warning">拉黑</a-button> <a-button type="primary" status="warning">拉黑</a-button>
@ -612,7 +612,7 @@
<!-- Akiraka 20230223 删除与批量删除 开始 --> <!-- Akiraka 20230223 删除与批量删除 开始 -->
<DeleteModal :data="deleteData" :visible="deleteVisible" :apiDelete="removeDoctor" <DeleteModal :data="deleteData" :visible="deleteVisible" :apiDelete="removeDoctor"
@deleteVisibleChange="() => deleteVisible = false" /> @deleteVisibleChange="() => deleteVisible = false" :cancelText="okStatus==7?'未修改备案':'取消'"/>
<!-- Akiraka 20230223 删除与批量删除 结束 --> <!-- Akiraka 20230223 删除与批量删除 结束 -->
<a-modal v-model:visible="okVisible" :modal-style="{width:'320px'}" body-class="okmodal" @ok="handleSubmit" <a-modal v-model:visible="okVisible" :modal-style="{width:'320px'}" body-class="okmodal" @ok="handleSubmit"
@cancel="()=>okVisible=false"> @cancel="()=>okVisible=false">
@ -625,6 +625,7 @@
<div v-else-if="okStatus==4">确定申请签章</div> <div v-else-if="okStatus==4">确定申请签章</div>
<div v-else-if="okStatus==5">确定更新签章</div> <div v-else-if="okStatus==5">确定更新签章</div>
<div v-else-if="okStatus==6">确定申请CA证书</div> <div v-else-if="okStatus==6">确定申请CA证书</div>
<div v-else-if="okStatus==7">修改职称或者执业证/资格证需要先在四川省互联网医疗服务监管平台修改备案信息成功后才可保存 (谨慎操作) </div>
</a-modal> </a-modal>
</div> </div>
</template> </template>
@ -644,12 +645,15 @@
const deleteVisible = ref(false) const deleteVisible = ref(false)
// Akiraka 20230210 // Akiraka 20230210
const okVisible = ref(false); const okVisible = ref(false);
const okStatus=ref(1); //1 2 3// //4 //5 const okStatus=ref(1); //1isChange_license 2 3// //4 //5 //7 /
watch(() => deleteVisible.value, (value) => { watch(() => deleteVisible.value, (value) => {
if (value == false) { if (value == false) {
getDoctorInfo(pager); getDoctorInfo(pager);
} }
}) })
const oldTitle=ref('');//
const isChange_license=ref(false);
const isChange_qualification=ref(false);
const tableRef=ref(); const tableRef=ref();
const showCheckedAll=ref(true); const showCheckedAll=ref(true);
const file = ref(); const file = ref();
@ -733,7 +737,10 @@ const showCheckedAll=ref(true);
if (value.dealType == "add") { if (value.dealType == "add") {
license_cert_list.value.push({ license_cert_list.value.push({
url: value.url url: value.url
}) });
if(modalForm.doctor_id){
isChange_license.value=true;
}
} else { } else {
license_cert_list.value.splice(license_cert_list.value.findIndex(item => item.url === value.url), 1) license_cert_list.value.splice(license_cert_list.value.findIndex(item => item.url === value.url), 1)
} }
@ -743,6 +750,9 @@ const showCheckedAll=ref(true);
qualification_cert_list.value.push({ qualification_cert_list.value.push({
url: value.url url: value.url
}) })
if(modalForm.doctor_id){
isChange_qualification.value=true;
}
} else { } else {
qualification_cert_list.value.splice(qualification_cert_list.value.findIndex(item => item.url === value.url), 1) qualification_cert_list.value.splice(qualification_cert_list.value.findIndex(item => item.url === value.url), 1)
} }
@ -1057,6 +1067,7 @@ const showCheckedAll=ref(true);
if(data.doctor_title==0){ if(data.doctor_title==0){
modalForm.doctor_title=''; modalForm.doctor_title='';
} }
oldTitle.value=data.doctor_title;
if(data.hospital_id==0){ if(data.hospital_id==0){
modalForm.hospital_id=''; modalForm.hospital_id='';
} }
@ -1210,6 +1221,8 @@ const showCheckedAll=ref(true);
} }
}) })
} }
// //
// const filterService = (record) => { // const filterService = (record) => {
// let arr = []; // let arr = [];
@ -1237,8 +1250,18 @@ const showCheckedAll=ref(true);
// } // }
// Modal ok // Modal ok
// Modal done() // Modal done()
const saveBefore=()=>{
if(oldTitle.value!=modalForm.doctor_title || isChange_license.value || isChange_qualification.value){
okStatus=7
}else{
okStatus=1
}
okVisible.value=true;
}
const handleSubmit = (done) => { const handleSubmit = (done) => {
if(okStatus.value==1){ if(okStatus.value==1 || okStatus==7){
proxy.$refs.modalFormRef.validate(async (valid) => { proxy.$refs.modalFormRef.validate(async (valid) => {
if (!valid) { if (!valid) {
let res; let res;
@ -1348,6 +1371,8 @@ const showCheckedAll=ref(true);
if (code == 200) { if (code == 200) {
proxy.$notification.success('更新成功'); proxy.$notification.success('更新成功');
modalVisible.value = false; modalVisible.value = false;
isChange_license.value=false;
isChange_qualification.value=false;
} }
proxy.$loading.hide(); proxy.$loading.hide();
} }