阅片人筛选-选择,编辑阅片人简历时,需要可以修改自动生成的临床试验经历
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2025-10-10 15:12:27 +08:00
parent d64d5a523d
commit e7491501cf
2 changed files with 66 additions and 109 deletions

View File

@ -79,10 +79,7 @@
<el-table-column prop="date" :label="$t('common:action:action')">
<template
slot-scope="scope"
v-if="
scope.row.ExperienceDataType != 2 &&
scope.row.ExperienceDataType != 3
"
v-if="scope.row.ExperienceDataType != 3"
>
<el-button
type="text"

View File

@ -2,14 +2,8 @@
<div class="curriculumVitae" v-loading="loading">
<div class="leftMenu">
<div class="title">{{ $t('curriculumVitae:menu:title') }}</div>
<el-menu
:default-active="activeIndex"
class="el-menu-demo"
mode="vertical"
@select="handleSelect"
background-color="#eee"
active-text-color="#000"
>
<el-menu :default-active="activeIndex" class="el-menu-demo" mode="vertical" @select="handleSelect"
background-color="#eee" active-text-color="#000">
<el-menu-item index="info">
{{ $t('curriculumVitae:menu:info') }}
</el-menu-item>
@ -70,94 +64,58 @@
</el-button>
</div>
</div>
<!--个人信息-->
<div class="box" id="info">
<info
:DATA="{
<info :DATA="{
...reviewerData.BasicInfoView,
...reviewerData.EmploymentView,
}"
:reviewerId.sync="reviewerId"
:isEN="isEN"
@getInfo="getDetail"
/>
}" :reviewerId.sync="reviewerId" :isEN="isEN" @getInfo="getDetail" />
</div>
<!--概述-->
<div class="box" id="summarize">
<summarize
:DATA="{
<summarize :DATA="{
...reviewerData.SummarizeInfo,
}"
:reviewerId.sync="reviewerId"
:trialId="trialId"
:isEN="isEN"
@getInfo="getDetail"
/>
}" :reviewerId.sync="reviewerId" :trialId="trialId" :isEN="isEN" @getInfo="getDetail" />
</div>
<!--专业-->
<div class="box" id="specialty">
<specialty
:DATA="{
<specialty :DATA="{
...reviewerData.SpecialtyView,
}"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
}" :isEN="isEN" :reviewerId.sync="reviewerId" @getInfo="getDetail" />
</div>
<!--教育经历-->
<div class="box" id="educationalExperience">
<educationalExperience
:DATA="reviewerData.EducationList"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<educationalExperience :DATA="reviewerData.EducationList" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
<!--进修培训-->
<div class="box" id="continuingTraining">
<continuingTraining
:DATA="reviewerData.PostgraduateList"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<continuingTraining :DATA="reviewerData.PostgraduateList" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
<!--科研课题-->
<div class="box" id="scientificResearchProject">
<scientificResearchProject
:DATA="{ ...reviewerData.ResearchPublicationView }"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<scientificResearchProject :DATA="{ ...reviewerData.ResearchPublicationView }" :isEN="isEN"
:reviewerId.sync="reviewerId" @getInfo="getDetail" />
</div>
<!--临床试验-->
<div class="box" id="clinicalTrials">
<clinicalTrials
:DATA="{ ...reviewerData.TrialExperienceView }"
:isEN="isEN"
:reviewerId.sync="reviewerId"
:trialId="trialId"
@getInfo="getDetail"
/>
<clinicalTrials :DATA="{ ...reviewerData.TrialExperienceView }" :isEN="isEN" :reviewerId.sync="reviewerId"
:trialId="trialId" @getInfo="getDetail" />
</div>
<!--gcp证书-->
<div class="box" id="treatise">
<treatise
:DATA="{ ...reviewerData.ResearchPublicationView }"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<treatise :DATA="{ ...reviewerData.ResearchPublicationView }" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
<!--其他相关经历-->
<div class="box" id="other">
<other
:DATA="{ ...reviewerData.ResearchPublicationView }"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<other :DATA="{ ...reviewerData.ResearchPublicationView }" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
<div class="box" id="pay">
<pay
:DATA="{ ...reviewerData.PaymentModeInfo }"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<pay :DATA="{ ...reviewerData.PaymentModeInfo }" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
<div class="box" id="setting" v-if="isPM">
<setting :isEN="isEN" :reviewerId.sync="reviewerId" />
@ -167,38 +125,19 @@
<!--简历附件-->
<curriculum :isEN="isEN" :reviewerId.sync="reviewerId" />
<!--资历证书-->
<certificate
:DATA="reviewerData.AttachmentList"
:isEN="isEN"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<certificate :DATA="reviewerData.AttachmentList" :isEN="isEN" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
<!--协议-->
<agreement
:DATA="reviewerData.AttachmentList"
:isEN="isEN"
:isPM="isPM"
:reviewerId.sync="reviewerId"
@getInfo="getDetail"
/>
<agreement :DATA="reviewerData.AttachmentList" :isEN="isEN" :isPM="isPM" :reviewerId.sync="reviewerId"
@getInfo="getDetail" />
</div>
</div>
<el-dialog :visible.sync="visible" fullscreen append-to-body>
<div style="height: 100%; overflow: auto">
<preview
:isEN="isEN"
:reviewerId.sync="reviewerId"
:trialId="trialId"
:isAll="isAll"
v-if="visible"
/>
<preview :isEN="isEN" :reviewerId.sync="reviewerId" :trialId="trialId" :isAll="isAll" v-if="visible" />
</div>
</el-dialog>
<holiday
v-if="holidayVisible"
:reviewerId.sync="reviewerId"
:visible.sync="holidayVisible"
/>
<holiday v-if="holidayVisible" :reviewerId.sync="reviewerId" :visible.sync="holidayVisible" />
<!-- <setting
v-if="settingVisible"
:reviewerId.sync="reviewerId"
@ -383,12 +322,14 @@ export default {
position: relative;
height: 100%;
}
.title {
line-height: 50px;
background-color: #fff;
text-align: center;
font-weight: bold;
}
.leftMenu {
position: absolute;
left: 0;
@ -397,12 +338,15 @@ export default {
height: 100%;
background-color: #eee;
border-right: 1px solid #eee;
::v-deep .el-menu {
padding: 5px 5px 0;
}
::v-deep .is-active {
background-color: #fff !important;
position: relative;
&::before {
display: block;
content: '';
@ -415,6 +359,7 @@ export default {
}
}
}
.main {
width: calc(100% - 300px);
height: 100%;
@ -423,9 +368,11 @@ export default {
display: flex;
align-items: flex-start;
}
.content {
width: calc(100% - 300px);
padding: 0 50px 0 20px;
.title {
line-height: 50px;
background-color: #fff;
@ -434,35 +381,42 @@ export default {
justify-content: space-between;
}
}
.box {
border: 1px solid #ddd;
border-radius: 3px;
padding: 15px;
margin-bottom: 20px;
}
::v-deep .noData {
color: #909399;
text-align: center;
}
.rightFile {
width: 300px;
padding-right: 10px;
::v-deep .title {
line-height: 50px;
background-color: #fff;
text-align: left;
font-weight: bold;
}
::v-deep .fileBox {
background-color: #eee;
padding: 10px;
font-size: 14px;
border-radius: 3px;
}
::v-deep .file_title {
line-height: 40px;
font-weight: bold;
}
::v-deep .btnBox {
display: flex;
align-items: center;
@ -474,17 +428,23 @@ export default {
width: 100%;
display: flex;
margin-bottom: 10px;
.name {
width: 70%;
white-space: nowrap; /* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis; /* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden; /* 隐藏溢出容器的文本 */
white-space: nowrap;
/* 文本不会换行,会在同一行内继续,直到遇到<br>标签为止 */
text-overflow: ellipsis;
/* 当文本溢出包含它的容器时,显示省略号(...)来表示被截断的文本 */
overflow: hidden;
/* 隐藏溢出容器的文本 */
}
i {
cursor: pointer;
margin: 3px;
color: #409eff;
}
.disable {
cursor: not-allowed;
color: #909399;