irc_web/src/views/reviewers/curriculumVitae/preview.vue

1080 lines
34 KiB
Vue

<template>
<div :class="{ curriculumVitaePreview: true, noFile: !isAll || !hasFile }">
<div :class="{ allInfo: isAll && hasFile, info: !isAll || !hasFile }">
<div class="title">{{ $t('curriculumVitae:preview:title') }}</div>
<div class="message">
<div class="userInfo">
<span v-if="isAll">
{{
isEN
? reviewerData.BasicInfoView.FirstName +
reviewerData.BasicInfoView.LastName
: reviewerData.BasicInfoView.ChineseName
}}
</span>
<span v-else>{{
isEN
? reviewerData.BasicInfoView.BlindName
: reviewerData.BasicInfoView.BlindNameCN
}}</span>
<span>{{ $fd('Sex', reviewerData.BasicInfoView.Sex) }}</span>
<span v-if="isEN">
{{
Array.isArray(reviewerData.BasicInfoView.TitleList) &&
reviewerData.BasicInfoView.TitleList.length > 0
? reviewerData.BasicInfoView.TitleList.join(', ')
: ''
}}
</span>
<span v-else>
{{
Array.isArray(reviewerData.BasicInfoView.TitleCNList) &&
reviewerData.BasicInfoView.TitleCNList.length > 0
? reviewerData.BasicInfoView.TitleCNList.join(', ')
: ''
}}
</span>
<span v-if="isAll">
<span v-if="isEN">{{
reviewerData.BasicInfoView.HospitalName
}}</span>
<span v-else>{{ reviewerData.BasicInfoView.HospitalNameCN }}</span>
</span>
<span>
<span>
{{ $t('system:Setting:title:Vacation') }}
{{ InHoliday }}
</span>
<el-button type="text" @click="handleView">
{{ $t('system:Setting:Planned Vacation') }}
</el-button>
</span>
</div>
<div class="userTitle">
<span class="el-icon-first-aid-kit">
<span v-if="isEN">{{
reviewerData.EmploymentView.Department
}}</span>
<span v-else>{{ reviewerData.EmploymentView.DepartmentCN }}</span>
</span>
<span class="el-icon-user"
><span v-if="isEN">{{ reviewerData.EmploymentView.Rank }}</span>
<span v-else>{{ reviewerData.EmploymentView.RankCN }}</span></span
>
<span class="el-icon-medal" v-if="isAll">
<span v-if="isEN">{{
reviewerData.EmploymentView.WorkPartTimeEn
}}</span>
<span v-else>{{ reviewerData.EmploymentView.WorkPartTime }}</span>
</span>
</div>
<div class="userTel" v-if="isAll">
<span class="el-icon-phone-outline">{{
reviewerData.BasicInfoView.Phone
}}</span>
<span class="el-icon-message">{{
reviewerData.BasicInfoView.EMail
}}</span>
<span class="el-icon-chat-dot-round">{{
reviewerData.BasicInfoView.WeChat
}}</span>
</div>
</div>
<div
class="message break-word"
v-if="
reviewerData.SummarizeInfo.SummarizeEn ||
reviewerData.SummarizeInfo.Summarize
"
>
<div class="title">{{ $t('curriculumVitae:summarize:title') }}</div>
<span class="">
{{
isEN
? reviewerData.SummarizeInfo.SummarizeEn
: reviewerData.SummarizeInfo.Summarize
}}
</span>
</div>
<div class="message" v-if="isAll">
<el-form class="demo-form-inline">
<el-form-item :label="$t('curriculumVitae:specialty:specialty')">
<span v-if="isEN">
{{
reviewerData.SpecialtyView.Speciality ||
reviewerData.SpecialtyView.SpecialityOther
}}
</span>
<span v-else>{{
reviewerData.SpecialtyView.SpecialityCN ||
reviewerData.SpecialtyView.SpecialityOtherCN
}}</span>
</el-form-item>
<el-form-item :label="$t('curriculumVitae:specialty:submajor')">
<template v-if="isEN">
<el-tag
type="info"
v-for="item in reviewerData.SpecialtyView.SubspecialityOther
? [
...reviewerData.SpecialtyView.SubspecialityList,
reviewerData.SpecialtyView.SubspecialityOther,
]
: reviewerData.SpecialtyView.SubspecialityList"
:key="item"
>
{{ item }}
</el-tag>
</template>
<template v-else>
<el-tag
type="info"
v-for="item in reviewerData.SpecialtyView.SubspecialityOtherCN
? [
...reviewerData.SpecialtyView.SubspecialityCNList,
reviewerData.SpecialtyView.SubspecialityOtherCN,
]
: reviewerData.SpecialtyView.SubspecialityCNList"
:key="item"
>
{{ item }}
</el-tag>
</template>
</el-form-item>
<el-form-item :label="$t('curriculumVitae:specialty:equipment')">
<template v-if="isEN">
<el-tag
type="info"
v-for="item in reviewerData.SpecialtyView.ReadingTypeOther
? [
...reviewerData.SpecialtyView.ReadingTypeList,
reviewerData.SpecialtyView.ReadingTypeOther,
]
: reviewerData.SpecialtyView.ReadingTypeList"
:key="item"
>
{{ item }}
</el-tag>
</template>
<template v-else>
<el-tag
type="info"
v-for="item in reviewerData.SpecialtyView.ReadingTypeOtherCN
? [
...reviewerData.SpecialtyView.ReadingTypeCNList,
reviewerData.SpecialtyView.ReadingTypeOtherCN,
]
: reviewerData.SpecialtyView.ReadingTypeCNList"
:key="item"
>
{{ item }}
</el-tag>
</template>
</el-form-item>
</el-form>
</div>
<div class="message">
<div class="title">
{{ $t('curriculumVitae:EducationalExperience:title') }}
</div>
<el-table
:data="[...reviewerData.EducationList]"
v-loading="loading"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:time')"
>
<template slot-scope="scope">
<span
>{{ scope.row.BeginDateStr }} ~ {{ scope.row.EndDateStr }}</span
>
</template>
</el-table-column>
<el-table-column
prop="Major"
:label="$t('curriculumVitae:EducationalExperience:table:specialy')"
v-if="true"
>
<template slot-scope="scope">
<span>
{{ isEN ? scope.row.Major : scope.row.MajorCN }}
</span>
</template>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:degree')"
v-if="isAll"
>
<template slot-scope="scope">
<span>
{{ $fd('Degree', Number(scope.row.Degree)) }}
</span>
</template>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:school')"
v-if="isAll"
>
<template slot-scope="scope">
<span>
{{ isEN ? scope.row.Organization : scope.row.OrganizationCN }}
</span>
</template>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:EducationalExperience:table:city')"
v-if="isAll"
>
<template slot-scope="scope">
<span>
{{ isEN ? scope.row.City : scope.row.CityCN }}
</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="message">
<div class="title">
{{ $t('curriculumVitae:continuingTraining:title') }}
</div>
<el-table
:data="reviewerData.PostgraduateList"
v-loading="loading"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="date"
:label="$t('curriculumVitae:continuingTraining:table:time')"
>
<template slot-scope="scope">
<span
>{{ scope.row.BeginDateStr }} ~ {{ scope.row.EndDateStr }}</span
>
</template>
</el-table-column>
<el-table-column
prop="Training"
:label="$t('curriculumVitae:continuingTraining:table:type')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ $fd('Training', Number(scope.row.Training)) }}</span>
</template>
</el-table-column>
<el-table-column
prop="Major"
:label="$t('curriculumVitae:continuingTraining:table:direction')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ isEN ? scope.row.Major : scope.row.MajorCN }}</span>
</template>
</el-table-column>
<el-table-column
prop="school"
:label="$t('curriculumVitae:continuingTraining:table:school')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ isEN ? scope.row.School : scope.row.SchoolCN }}</span>
</template>
</el-table-column>
<el-table-column
prop="City"
:label="$t('curriculumVitae:continuingTraining:table:city')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ isEN ? scope.row.City : scope.row.CityCN }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="message">
<div class="title">
{{ $t('curriculumVitae:scientificResearchProject:title') }}
</div>
<div class="content">
<el-form class="demo-form-inline">
<el-form-item
:label="$t('curriculumVitae:scientificResearchProject:direction')"
>
<span v-if="isEN" class="break-word">{{
reviewerData.ResearchPublicationView.Research
}}</span>
<span v-else class="break-word">{{
reviewerData.ResearchPublicationView.ResearchCN
}}</span>
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:scientificResearchProject:subject')"
>
<span v-if="isEN" class="break-word">{{
reviewerData.ResearchPublicationView.Grants
}}</span>
<span v-else class="break-word">{{
reviewerData.ResearchPublicationView.GrantsCN
}}</span>
</el-form-item>
</el-form>
</div>
</div>
<div class="message">
<!--临床试验-->
<div class="title">
{{ $t('curriculumVitae:clinicalTrials:title') }}
</div>
<el-table
:data="reviewerData.TrialExperienceView.ClinicalTrialExperienceList"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="Phase"
:label="$t('curriculumVitae:clinicalTrials:table:byStages')"
v-if="true"
>
<template slot-scope="scope">
{{
scope.row.OtherStages ? scope.row.OtherStages : scope.row.Phase
}}
</template>
</el-table-column>
<el-table-column
prop="EvaluationCriteriaList"
:label="$t('curriculumVitae:clinicalTrials:table:criterion')"
v-if="true"
>
<template slot-scope="scope">
{{
scope.row.EvaluationCriteriaList.length > 0
? scope.row.EvaluationCriteriaList.join(', ')
: ''
}}
<span v-if="scope.row.OtherCriterion">
{{
scope.row.EvaluationCriteriaList.length > 0
? `, ${scope.row.OtherCriterion}`
: scope.row.OtherCriterion
}}
</span>
</template>
</el-table-column>
<el-table-column
prop="EvaluationContent"
:label="$t('curriculumVitae:clinicalTrials:table:indication')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ $fd('Indication', scope.row.IndicationEnum) }}</span>
</template>
</el-table-column>
<el-table-column
prop="VisitReadingCount"
:label="$t('curriculumVitae:clinicalTrials:table:viewingVolumeNum')"
v-if="isAll"
>
</el-table-column>
<el-table-column
prop="date"
:label="$t('curriculumVitae:clinicalTrials:table:year')"
v-if="true"
>
<template slot-scope="scope">
<span v-if="scope.row.StartTime"
>{{ scope.row.StartTime.split('-')[0] }}-{{
scope.row.EndTime
? scope.row.EndTime.split('-')[0]
: $t('curriculumVitae:lineIIcon:soFar')
}}</span
>
</template>
</el-table-column>
</el-table>
<!--GCP证书-->
<div class="title">
{{ $t('curriculumVitae:clinicalTrials:GCPtitle') }}
</div>
<el-table
:data="GCPData"
style="width: 100%"
:header-cell-style="{ background: '#eee', color: '#606266' }"
>
<el-table-column
prop="GCP"
:label="$t('curriculumVitae:clinicalTrials:table:hasCertificate')"
v-if="true"
>
<template slot-scope="scope">
<span>{{ $fd('hasOrNo', scope.row.GCP) }}</span>
</template>
</el-table-column>
<el-table-column
prop="GCPTime"
:label="$t('curriculumVitae:clinicalTrials:table:certificateTime')"
v-if="true"
>
</el-table-column>
<el-table-column
prop="GCPAgencies"
v-if="true"
:label="
$t('curriculumVitae:clinicalTrials:table:certificateHospital')
"
>
</el-table-column>
</el-table>
<!--其他相关经历-->
<div
class="title"
v-if="
reviewerData.TrialExperienceView.OtherClinicalExperience ||
reviewerData.TrialExperienceView.OtherClinicalExperienceCN
"
>
{{ $t('curriculumVitae:clinicalTrials:otherTitle') }}
</div>
<template
v-if="
reviewerData.TrialExperienceView.OtherClinicalExperience ||
reviewerData.TrialExperienceView.OtherClinicalExperienceCN
"
>
<div class="message break-word">
{{
isEN
? reviewerData.TrialExperienceView.OtherClinicalExperience
: reviewerData.TrialExperienceView.OtherClinicalExperienceCN
}}
</div>
</template>
</div>
<div
class="message"
v-if="reviewerData.ResearchPublicationView.Publications"
>
<div class="title">{{ $t('curriculumVitae:treatise:title') }}</div>
<div
class="message break-word"
style="white-space: pre-wrap"
v-if="reviewerData.ResearchPublicationView.Publications"
>
{{ reviewerData.ResearchPublicationView.Publications }}
</div>
</div>
<div
class="message break-word"
v-if="
(reviewerData.ResearchPublicationView.AwardsHonors ||
reviewerData.ResearchPublicationView.AwardsHonorsCN) &&
isAll
"
>
<div class="title">{{ $t('curriculumVitae:other:AH') }}</div>
<div class="message">
<span v-if="isEN">{{
reviewerData.ResearchPublicationView.AwardsHonors
}}</span>
<span v-else>{{
reviewerData.ResearchPublicationView.AwardsHonorsCN
}}</span>
</div>
</div>
<div class="message" v-if="isAll">
<div class="title">{{ $t('curriculumVitae:pay:title') }}</div>
<div class="content">
<el-form :inline="true" class="demo-form-inline">
<el-form-item
:label="$t('curriculumVitae:pay:form:payCardId')"
style="width: 45%"
>
{{ reviewerData.PaymentModeInfo.BankNum }}
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:pay:form:username')"
style="width: 45%"
>
{{ reviewerData.PaymentModeInfo.BankName }}
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:pay:form:bank')"
style="width: 45%"
>
{{ reviewerData.PaymentModeInfo.OpeningBank }}
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:pay:form:idCard')"
style="width: 45%"
>
{{ reviewerData.PaymentModeInfo.IdCard }}
</el-form-item>
<el-form-item
:label="$t('curriculumVitae:pay:form:phone')"
style="width: 45%"
>
{{ reviewerData.PaymentModeInfo.BankPhoneNum }}
</el-form-item>
</el-form>
</div>
</div>
</div>
<div class="file" v-if="isAll && hasFile">
<div
class="curriculum"
v-if="
(resumeListCN && resumeListCN.length > 0) ||
(resumeListEN && resumeListEN.length > 0)
"
>
<div class="title">{{ $t('curriculumVitae:curriculum:title') }}</div>
<div class="fileBox">
<div
class="file_title"
v-if="resumeListCN && resumeListCN.length > 0"
>
{{ $t('curriculumVitae:curriculum:fileTitle:CN') }}
</div>
<template v-if="true">
<div class="file" v-for="item in resumeListCN" :key="item.Id">
<div class="name" :title="item.FileName">{{ item.FileName }}</div>
<i
class="el-icon-download"
:title="$t('common:button:download')"
@click.stop="handlePreview(item)"
/>
</div>
</template>
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
<div
class="file_title"
v-if="resumeListEN && resumeListEN.length > 0"
>
{{ $t('curriculumVitae:curriculum:fileTitle:EN') }}
</div>
<template v-if="true">
<div class="file" v-for="item in resumeListEN" :key="item.FileName">
<div class="name" :title="item.FileName">{{ item.FileName }}</div>
<i
class="el-icon-download"
:title="$t('common:button:download')"
@click.stop="handlePreview(item)"
/>
</div>
</template>
<div class="noData" v-else>{{ $t('curriculumVitae:noData') }}</div>
</div>
</div>
<div
class="certificate"
v-if="
diplomaFile ||
certificateFile ||
licenseFile ||
(workPermitFiles && workPermitFiles.length > 0)
"
>
<div class="title">{{ $t('curriculumVitae:certificate:title') }}</div>
<div class="fileBox">
<!--最高医学学位毕业证书-->
<div class="file_title" v-if="diplomaFile">
{{ $t('curriculumVitae:certificate:fileTitle:diploma') }}
</div>
<div class="file" v-if="diplomaFile">
<div class="name" :title="diplomaFile.FileName">
{{ diplomaFile.FileName }}
</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="preview(diplomaFile)"
/>
</div>
<!--医师资格证-->
<div class="file_title" v-if="certificateFile">
{{ $t('curriculumVitae:certificate:fileTitle:certificate') }}
</div>
<div class="file" v-if="certificateFile">
<div class="name" :title="certificateFile.FileName">
{{ certificateFile.FileName }}
</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="preview(certificateFile)"
/>
</div>
<!--医师执业证-->
<div class="file_title" v-if="licenseFile">
{{ $t('curriculumVitae:certificate:fileTitle:license') }}
</div>
<div class="file" v-if="licenseFile">
<div class="name" :title="licenseFile.FileName">
{{ licenseFile.FileName }}
</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="preview(licenseFile)"
/>
</div>
<!--大型医用设备上岗证-->
<div class="file_title">
{{ $t('curriculumVitae:certificate:fileTitle:workPermit') }}
</div>
<template v-if="workPermitFiles && workPermitFiles.length > 0">
<div class="file_title">
{{ $t('curriculumVitae:certificate:fileTitle:CT') }}
</div>
<div v-for="item in workPermitFiles" :key="item.Id">
<div class="file">
<div class="name" :title="item.FileName">
{{ item.FileName }}
</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="preview(item)"
/>
</div>
</div>
</template>
</div>
</div>
<div
class="agreement"
v-if="
(sowList && sowList.length > 0) ||
(CounselorFiles && CounselorFiles.length > 0) ||
(ackSowList && ackSowList.length > 0)
"
>
<div class="title">{{ $t('curriculumVitae:agreement:title') }}</div>
<div class="fileBox">
<div class="file_title" v-if="sowList && sowList.length > 0">
{{ $t('curriculumVitae:agreement:fileTitle') }}
</div>
<template v-if="sowList && sowList.length > 0">
<div class="file" v-for="item in sowList" :key="item.Id">
<div class="name" :title="item.FileName">{{ item.FileName }}</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="handlePreview(item, true)"
/>
</div>
</template>
<template v-if="CounselorFiles && CounselorFiles.length > 0">
<div class="file_title">
{{ $t('curriculumVitae:agreement:Counselor') }}
</div>
<div class="file" v-for="item in CounselorFiles" :key="item.Id">
<div class="name" :title="item.FileName">{{ item.FileName }}</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="preview(item)"
/>
</div>
</template>
<template v-if="ackSowList && ackSowList.length > 0">
<div class="file_title">
{{ $t('curriculumVitae:agreement:confirmation') }}
</div>
<div class="file" v-for="item in ackSowList" :key="item.Id">
<div class="name" :title="item.FileName">{{ item.FileName }}</div>
<i
class="el-icon-view"
:title="$t('common:button:preview')"
@click.stop="handlePreview(item, true)"
/>
</div>
</template>
</div>
</div>
</div>
<holiday
v-if="holidayVisible"
isPreview
:reviewerId.sync="reviewerId"
:visible.sync="holidayVisible"
/>
</div>
</template>
<script>
import {
getDetail,
getIsVacation,
getDoctorCriterionFile,
} from '@/api/reviewers'
import { getAttachmentByType } from '@/api/attachment'
import holiday from './components/info/holiday.vue'
export default {
name: 'curriculumVitaePreview',
components: { holiday },
props: {
isAll: {
type: Boolean,
default: true,
},
reviewerId: {
type: String,
default: '',
},
trialId: {
type: String,
default: '',
},
isEN: {
type: Boolean,
default: false,
},
},
data() {
return {
reviewerData: {
BasicInfoView: {},
EmploymentView: {},
AckSowList: [],
AttachmentList: [],
AuditView: {},
EducationList: [],
IntoGroupInfo: {},
PaymentModeInfo: {},
PostgraduateList: [],
ResearchPublicationView: {},
SowList: [],
SpecialtyView: {},
SummarizeInfo: {},
TrialExperienceView: {},
},
resumeList: [],
resumeListEN: [],
resumeListCN: [],
sowList: [],
ackSowList: [],
loading: false,
holidayVisible: false,
InHoliday: '',
}
},
computed: {
hasFile() {
return (
(this.sowList && this.sowList.length > 0) ||
(this.CounselorFiles && this.CounselorFiles.length > 0) ||
(this.ackSowList && this.ackSowList.length > 0) ||
this.diplomaFile ||
this.certificateFile ||
this.licenseFile ||
(this.workPermitFiles && this.workPermitFiles.length > 0) ||
(this.resumeListCN && this.resumeListCN.length > 0) ||
(this.resumeListEN && this.resumeListEN.length > 0)
)
},
GCPData() {
if (!this.reviewerData.TrialExperienceView) return []
return [
{
ExpiryDateStr: this.reviewerData.TrialExperienceView.ExpiryDateStr,
FileName: this.reviewerData.TrialExperienceView.FileName,
GCP: this.reviewerData.TrialExperienceView.GCP,
GCPAgencies: this.reviewerData.TrialExperienceView.GCPAgencies,
GCPFullPath: this.reviewerData.TrialExperienceView.GCPFullPath,
GCPId: this.reviewerData.TrialExperienceView.GCPId,
GCPTime: this.reviewerData.TrialExperienceView.GCPTime,
Path: this.reviewerData.TrialExperienceView.Path,
Type: this.reviewerData.TrialExperienceView.Type,
},
]
},
//最高医学学位毕业证书
diplomaFile() {
if (
!this.reviewerData.AttachmentList ||
this.reviewerData.AttachmentList.length <= 0
)
return false
return this.reviewerData.AttachmentList.find(
(item) => item.Type === 'Diploma of the highest medical degree'
)
},
//医师资格证
certificateFile() {
if (
!this.reviewerData.AttachmentList ||
this.reviewerData.AttachmentList.length <= 0
)
return false
return this.reviewerData.AttachmentList.find(
(item) => item.Type === 'Medical Qualification Certificate'
)
},
//医师执业证
licenseFile() {
if (
!this.reviewerData.AttachmentList ||
this.reviewerData.AttachmentList.length <= 0
)
return false
return this.reviewerData.AttachmentList.find(
(item) => item.Type === 'Practice License'
)
},
//大型医用设备上岗证
workPermitFiles() {
if (
!this.reviewerData.AttachmentList ||
this.reviewerData.AttachmentList.length <= 0
)
return false
return this.reviewerData.AttachmentList.filter(
(item) => item.Type && item.Type.indexOf('Modality Certificate') >= 0
)
},
CounselorFiles() {
if (
!this.reviewerData.AttachmentList ||
this.reviewerData.AttachmentList.length <= 0
)
return false
return this.reviewerData.AttachmentList.filter(
(item) => item.Type && item.Type.indexOf('Consultant Agreement') >= 0
)
},
},
mounted() {
this.getDetail()
this.getResumeList()
this.initSowList()
this.getIsVacation()
},
methods: {
// 获取是否休假
async getIsVacation() {
try {
let data = {
DoctorId: this.reviewerId,
}
let res = await getIsVacation(data)
if (res.IsSuccess) {
this.InHoliday = res.Result.IsVacation ? 'Yes' : 'No'
}
} catch (err) {
console.log(err)
}
},
// 获取详情
async getDetail() {
try {
let id = this.reviewerId
this.loading = true
let res = await getDetail(id, this.trialId)
this.loading = false
if (res.IsSuccess) {
Object.keys(this.reviewerData).forEach((key) => {
if (res.Result[key]) {
this.reviewerData[key] = res.Result[key]
}
})
}
} catch (err) {
this.loading = false
console.log(err)
}
},
getResumeList() {
this.loading = true
getAttachmentByType(this.reviewerId, 'Resume')
.then((res) => {
if (res.IsSuccess) {
if (res.Result.length > 0) {
this.resumeList = res.Result
this.filterByLanguage()
}
}
this.loading = false
})
.catch(() => {
this.loading = false
})
},
initSowList() {
if (!this.reviewerId) return
getDoctorCriterionFile({
fileType: 0,
DoctorId: this.reviewerId,
}).then((res) => {
this.sowList = res.Result
})
getDoctorCriterionFile({
fileType: 1,
DoctorId: this.reviewerId,
}).then((res) => {
this.ackSowList = res.Result
})
},
filterByLanguage() {
this.resumeListEN = []
this.resumeListCN = []
this.resumeList.map((resume) => {
if (resume.Language === 2) {
this.resumeListEN.push(resume)
} else if (resume.Language === 1) {
this.resumeListCN.push(resume)
}
})
},
handlePreview(row, isPreview = false) {
if (isPreview) {
this.preview(row)
} else {
if (row.FullPath || row.FilePath) {
let path = row.FullPath || row.FilePath
window.open(this.OSSclientConfig.basePath + path, '_blank')
}
}
},
preview(row) {
let path = row.FullPath || row.FilePath
this.$preview({
path: path,
type: 'pdf',
title: row.FileName,
})
},
handleView() {
this.holidayVisible = true
},
},
}
</script>
<style lang="scss" scoped>
.curriculumVitaePreview {
display: flex;
padding: 0 100px;
.title {
font-size: 18px;
border: none;
background-color: transparent;
font-weight: bold;
}
.message {
padding: 20px 0;
border-bottom: 1px solid #eee;
word-wrap: break-word;
.title {
font-size: 14px;
line-height: 30px;
margin-bottom: 10px;
}
.text {
color: #909399;
}
.content {
background-color: #eee;
padding: 10px;
line-height: 30px;
border-radius: 5px;
}
}
.userInfo,
.userTitle,
.userTel {
line-height: 30px;
margin-bottom: 15px;
span {
margin-right: 20px;
&:last-child {
margin: 0;
}
}
&:last-child {
margin-bottom: 0;
}
}
.userTitle,
.userTel {
span {
display: inline-block;
min-width: 80px;
border-right: 1px solid #ddd;
padding-right: 10px;
&::before {
margin-right: 5px;
}
&:last-child {
border: none;
}
}
}
}
.noFile {
max-width: 1200px;
margin: auto;
}
::v-deep .el-tag {
margin-right: 10px;
&:last-child {
margin-right: 0;
}
}
.info {
width: 100%;
}
.allInfo {
max-width: calc(100% - 300px);
}
.file {
width: 300px;
padding-left: 10px;
::v-deep .title {
line-height: 50px;
background-color: #fff;
text-align: left;
}
::v-deep .fileBox {
background-color: #eee;
padding: 10px;
font-size: 14px;
border-radius: 3px;
}
::v-deep .file_title {
line-height: 40px;
}
::v-deep .btnBox {
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 10px;
}
::v-deep .file {
width: 100%;
display: flex;
margin-bottom: 10px;
.name {
width: 70%;
white-space: nowrap; /* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis; /* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden; /* 隐藏溢出容器的文本 */
}
i {
cursor: pointer;
margin: 3px;
color: #409eff;
}
}
}
break-word {
display: inline-block;
width: 100%;
word-wrap: break-word;
}
</style>