1
continuous-integration/drone/push Build is passing Details

main
wangxiaoshuang 2026-01-29 11:38:33 +08:00
parent e491265bb4
commit b7a5015e21
1 changed files with 98 additions and 323 deletions

View File

@ -4,176 +4,79 @@
<el-form :inline="true"> <el-form :inline="true">
<!-- Name --> <!-- Name -->
<el-form-item :label="$t('trials:seletctedReviews:table:name')"> <el-form-item :label="$t('trials:seletctedReviews:table:name')">
<el-input <el-input v-model="listQuery.Name" size="small" clearable style="width: 120px" />
v-model="listQuery.Name"
size="small"
clearable
style="width: 120px"
/>
</el-form-item> </el-form-item>
<!-- Modality --> <!-- Modality -->
<el-form-item :label="$t('trials:seletctedReviews:form:modality')"> <el-form-item :label="$t('trials:seletctedReviews:form:modality')">
<el-select <el-select v-model="listQuery.ReadingTypeIdList" class="handle-select" clearable multiple collapse-tags
v-model="listQuery.ReadingTypeIdList" style="width: 160px">
class="handle-select" <el-option v-for="item of $d.ReadingType" :key="item.id" :label="item.label" :value="item.id" />
clearable
multiple
collapse-tags
style="width: 160px"
>
<el-option
v-for="item of $d.ReadingType"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- Subspeciality --> <!-- Subspeciality -->
<el-form-item :label="$t('trials:seletctedReviews:form:subspeciality')"> <el-form-item :label="$t('trials:seletctedReviews:form:subspeciality')">
<el-select <el-select v-model="listQuery.SubspecialityIdList" class="handle-select" clearable multiple collapse-tags
v-model="listQuery.SubspecialityIdList" style="width: 160px">
class="handle-select" <el-option v-for="item of $d.Subspeciality" :key="item.id" :label="item.label" :value="item.id" />
clearable
multiple
collapse-tags
style="width: 160px"
>
<el-option
v-for="item of $d.Subspeciality"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- Position --> <!-- Position -->
<el-form-item :label="$t('trials:seletctedReviews:form:position')"> <el-form-item :label="$t('trials:seletctedReviews:form:position')">
<el-select <el-select v-model="listQuery.PositionId" class="handle-select" clearable style="width: 160px">
v-model="listQuery.PositionId" <el-option v-for="item of $d.Position" :key="item.id" :label="item.label" :value="item.id" />
class="handle-select"
clearable
style="width: 160px"
>
<el-option
v-for="item of $d.Position"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- Rank --> <!-- Rank -->
<el-form-item :label="$t('trials:seletctedReviews:form:rank')"> <el-form-item :label="$t('trials:seletctedReviews:form:rank')">
<el-select <el-select v-model="listQuery.RankId" class="handle-select" style="width: 160px" clearable>
v-model="listQuery.RankId" <el-option v-for="item of $d.Rank" :key="item.id" :label="item.label" :value="item.id" />
class="handle-select"
style="width: 160px"
clearable
>
<el-option
v-for="item of $d.Rank"
:key="item.id"
:label="item.label"
:value="item.id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- Institution --> <!-- Institution -->
<el-form-item :label="$t('trials:seletctedReviews:form:institution')"> <el-form-item :label="$t('trials:seletctedReviews:form:institution')">
<el-select <el-select v-model="listQuery.HospitalId" class="handle-select mr10" clearable style="width: 160px">
v-model="listQuery.HospitalId" <el-option v-for="(item, index) in hospitalList" :key="index" :label="item.HospitalName" :value="item.Id" />
class="handle-select mr10"
clearable
style="width: 160px"
>
<el-option
v-for="(item, index) in hospitalList"
:key="index"
:label="item.HospitalName"
:value="item.Id"
/>
</el-select> </el-select>
</el-form-item> </el-form-item>
<!-- 查询 --> <!-- 查询 -->
<el-button <el-button type="primary" icon="el-icon-search" :loading="loading" @click="handleSearch">
type="primary"
icon="el-icon-search"
:loading="loading"
@click="handleSearch"
>
{{ $t('common:button:search') }} {{ $t('common:button:search') }}
</el-button> </el-button>
<!-- 重置 --> <!-- 重置 -->
<el-button <el-button type="primary" icon="el-icon-refresh-left" :loading="loading" @click="handleReset">
type="primary"
icon="el-icon-refresh-left"
:loading="loading"
@click="handleReset"
>
{{ $t('common:button:reset') }} {{ $t('common:button:reset') }}
</el-button> </el-button>
<el-button <el-button v-if="hasPermi(['role:pm'])" type="primary" :disabled="selectIdArr.length == 0" icon="el-icon-check"
v-if="hasPermi(['role:pm'])" :loading="loading" @click="handleApply">
type="primary"
:disabled="selectIdArr.length == 0"
icon="el-icon-check"
:loading="loading"
@click="handleApply"
>
{{ $t('trials:seletctedReviews:button:select') }} {{ $t('trials:seletctedReviews:button:select') }}
</el-button> </el-button>
<!---简历采集--> <!---简历采集-->
<el-button <el-button type="primary" @click="resumeCollection"
type="primary" v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']">
@click="resumeCollection"
v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']"
>
{{ $t('trials:seletctedReviews:button:resumeCollection') }} {{ $t('trials:seletctedReviews:button:resumeCollection') }}
</el-button> </el-button>
<!---添加阅片人--> <!---添加阅片人-->
<el-button <el-button icon="el-icon-plus" type="primary" @click="openViewer('add')"
icon="el-icon-plus" v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']">
type="primary"
@click="openViewer('add')"
v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']"
>
{{ $t('trials:seletctedReviews:button:addViewer') }} {{ $t('trials:seletctedReviews:button:addViewer') }}
</el-button> </el-button>
</el-form> </el-form>
</template> </template>
<template slot="main-container"> <template slot="main-container">
<el-table <el-table ref="selectionList" v-loading="listLoading" v-adaptive="{ bottomOffset: 65 }" height="100" :data="list"
ref="selectionList" class="table" :row-class-name="handleHighLighRow" @sort-change="handleSortChange"
v-loading="listLoading" @selection-change="handleSelectionChange">
v-adaptive="{ bottomOffset: 65 }"
height="100"
:data="list"
class="table"
:row-class-name="handleHighLighRow"
@sort-change="handleSortChange"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" :selectable="handleSelectTable" /> <el-table-column type="selection" :selectable="handleSelectTable" />
<el-table-column type="index" width="40" /> <el-table-column type="index" width="40" />
<!-- Name --> <!-- Name -->
<el-table-column <el-table-column prop="LastName" :label="$t('trials:seletctedReviews:table:name')" show-overflow-tooltip
prop="LastName" width="120" sortable="custom">
:label="$t('trials:seletctedReviews:table:name')"
show-overflow-tooltip
width="120"
sortable="custom"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span <span style="color: #428bca; cursor: pointer" @click="
style="color: #428bca; cursor: pointer"
@click="
go( go(
`/trialsResume?doctorId=${scope.row.Id}&trialId=${$route.query.trialId}&token=${token}` `/trialsResume?doctorId=${scope.row.Id}&trialId=${$route.query.trialId}&token=${token}`
) )
" ">{{ scope.row.LastName }} / {{ scope.row.FirstName }}</span>
>{{ scope.row.LastName }} / {{ scope.row.FirstName }}</span
>
<!-- <el-button type="text" @click="go(`/trialsResume?doctorId=${scope.row.Id}&token=${token}`)">{{ scope.row.LastName }} / {{ scope.row.FirstName }}</el-button> --> <!-- <el-button type="text" @click="go(`/trialsResume?doctorId=${scope.row.Id}&token=${token}`)">{{ scope.row.LastName }} / {{ scope.row.FirstName }}</el-button> -->
<!-- <router-link--> <!-- <router-link-->
<!-- style="color: #428bca;"--> <!-- style="color: #428bca;"-->
@ -186,28 +89,13 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- Name CN --> <!-- Name CN -->
<el-table-column <el-table-column v-if="!isEN" prop="ChineseName" :label="$t('trials:seletctedReviews:table:nameCN')"
v-if="!isEN" show-overflow-tooltip sortable="custom" width="120" />
prop="ChineseName"
:label="$t('trials:seletctedReviews:table:nameCN')"
show-overflow-tooltip
sortable="custom"
width="120"
/>
<el-table-column <el-table-column prop="DoctorUserName" :label="$t('trials:seletctedReviews:table:doctorUserName')"
prop="DoctorUserName" show-overflow-tooltip sortable="custom" width="120" />
:label="$t('trials:seletctedReviews:table:doctorUserName')"
show-overflow-tooltip
sortable="custom"
width="120"
/>
<!-- Status --> <!-- Status -->
<el-table-column <el-table-column prop="DoctorTrialState" :label="$t('trials:seletctedReviews:table:status')" width="120">
prop="DoctorTrialState"
:label="$t('trials:seletctedReviews:table:status')"
width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-tag v-if="scope.row.DoctorTrialState === 1" type="primary">{{ <el-tag v-if="scope.row.DoctorTrialState === 1" type="primary">{{
$fd('DoctorTrialState', 16) $fd('DoctorTrialState', 16)
@ -215,35 +103,16 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- Submitted --> <!-- Submitted -->
<el-table-column <el-table-column prop="Submitted" :label="$t('trials:seletctedReviews:table:submitted')" show-overflow-tooltip
prop="Submitted" sortable="custom" width="140" />
:label="$t('trials:seletctedReviews:table:submitted')"
show-overflow-tooltip
sortable="custom"
width="140"
/>
<!-- Approved --> <!-- Approved -->
<el-table-column <el-table-column prop="Approved" :label="$t('trials:seletctedReviews:table:approved')" show-overflow-tooltip
prop="Approved" sortable="custom" width="120" />
:label="$t('trials:seletctedReviews:table:approved')"
show-overflow-tooltip
sortable="custom"
width="120"
/>
<!-- Reading --> <!-- Reading -->
<el-table-column <el-table-column prop="Reading" :label="$t('trials:seletctedReviews:table:reading')" show-overflow-tooltip
prop="Reading" sortable="custom" width="120" />
:label="$t('trials:seletctedReviews:table:reading')" <el-table-column prop="Speciality" :label="$t('trials:seletctedReviews:form:modality')" show-overflow-tooltip
show-overflow-tooltip min-width="120">
sortable="custom"
width="120"
/>
<el-table-column
prop="Speciality"
:label="$t('trials:seletctedReviews:form:modality')"
show-overflow-tooltip
min-width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.ReadingTypeIds.map((v) => { scope.row.ReadingTypeIds.map((v) => {
@ -253,12 +122,8 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- Specialty --> <!-- Specialty -->
<el-table-column <el-table-column prop="Speciality" :label="$t('trials:seletctedReviews:table:specialty')" show-overflow-tooltip
prop="Speciality" min-width="120">
:label="$t('trials:seletctedReviews:table:specialty')"
show-overflow-tooltip
min-width="120"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.SpecialityId === otherId scope.row.SpecialityId === otherId
@ -270,12 +135,8 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- Subspecialty --> <!-- Subspecialty -->
<el-table-column <el-table-column prop="Subspeciality" :label="$t('trials:seletctedReviews:table:subspecialty')"
prop="Subspeciality" show-overflow-tooltip min-width="150">
:label="$t('trials:seletctedReviews:table:subspecialty')"
show-overflow-tooltip
min-width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
{{ {{
scope.row.SubspecialityIds.map((v) => { scope.row.SubspecialityIds.map((v) => {
@ -286,76 +147,42 @@
</template> </template>
</el-table-column> </el-table-column>
<!-- Institution --> <!-- Institution -->
<el-table-column <el-table-column prop="HospitalName" :label="$t('trials:seletctedReviews:table:institution')"
prop="HospitalName" show-overflow-tooltip width="150">
:label="$t('trials:seletctedReviews:table:institution')"
show-overflow-tooltip
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ isEN ? scope.row.HospitalName : scope.row.HospitalNameCN }}</span> <span>{{ isEN ? scope.row.HospitalName : scope.row.HospitalNameCN }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- City --> <!-- City -->
<el-table-column <el-table-column prop="City" :label="$t('trials:seletctedReviews:table:city')" show-overflow-tooltip
prop="City" width="150">
:label="$t('trials:seletctedReviews:table:city')"
show-overflow-tooltip
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ isEN ? scope.row.City : scope.row.CityCN }}</span> <span>{{ isEN ? scope.row.City : scope.row.CityCN }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- Country --> <!-- Country -->
<el-table-column <el-table-column prop="Country" :label="$t('trials:seletctedReviews:table:country')" show-overflow-tooltip
prop="Country" width="150">
:label="$t('trials:seletctedReviews:table:country')"
show-overflow-tooltip
width="150"
>
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ isEN ? scope.row.Country : scope.row.CountryCN }}</span> <span>{{ isEN ? scope.row.Country : scope.row.CountryCN }}</span>
</template> </template>
</el-table-column> </el-table-column>
<!-- Selector --> <!-- Selector -->
<el-table-column <el-table-column prop="OptUserName" :label="$t('trials:seletctedReviews:table:selector')" width="150" />
prop="OptUserName"
:label="$t('trials:seletctedReviews:table:selector')"
width="150"
/>
<!-- Selection Time --> <!-- Selection Time -->
<el-table-column <el-table-column prop="OptTimeStr" :label="$t('trials:seletctedReviews:table:selectionTime')" width="150" />
prop="OptTimeStr" <el-table-column fixed="right" prop="OptTimeStr" :label="$t('common:action:action')" width="150"
:label="$t('trials:seletctedReviews:table:selectionTime')" v-if="hasPermi(['trials:trials-panel:attachments:enrollment:viewer'])">
width="150"
/>
<el-table-column
fixed="right"
prop="OptTimeStr"
:label="$t('common:action:action')"
width="150"
v-if="hasPermi(['trials:trials-panel:attachments:enrollment:viewer'])"
>
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button icon="el-icon-edit-outline" :title="$t('common:button:edit')"
icon="el-icon-edit-outline"
:title="$t('common:button:edit')"
@click.stop="openViewer('edit', scope.row)" @click.stop="openViewer('edit', scope.row)"
v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']" v-hasPermi="['trials:trials-panel:attachments:enrollment:viewer']" :disabled="scope.row.IsEnroll"
:disabled="scope.row.IsEnroll" circle />
circle
/>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination class="page" :total="total" :page.sync="listQuery.PageIndex" :limit.sync="listQuery.PageSize"
class="page" @pagination="getList" />
:total="total"
:page.sync="listQuery.PageIndex"
:limit.sync="listQuery.PageSize"
@pagination="getList"
/>
</template> </template>
<!--简历采集--> <!--简历采集-->
<base-model :config="share_model"> <base-model :config="share_model">
@ -365,14 +192,8 @@
<span>{{ $t('reviewers-list:message:msg1') }}</span> <span>{{ $t('reviewers-list:message:msg1') }}</span>
</div> </div>
<div style="margin: 10px 0"> <div style="margin: 10px 0">
<span style="">{{ $t('reviewers-list:message:msg2') }}</span <span style="">{{ $t('reviewers-list:message:msg2') }}</span><el-input type="textarea"
><el-input :autosize="{ minRows: 2, maxRows: 4 }" v-model="shareLink" readonly style="width: 100%; margin-top: 10px" />
type="textarea"
:autosize="{ minRows: 2, maxRows: 4 }"
v-model="shareLink"
readonly
style="width: 100%; margin-top: 10px"
/>
</div> </div>
<div> <div>
<el-button type="primary" round @click="copyCode">{{ <el-button type="primary" round @click="copyCode">{{
@ -380,80 +201,34 @@
}}</el-button> }}</el-button>
</div> </div>
<div class="sendEmailBox"> <div class="sendEmailBox">
<el-input <el-input v-model="email" clearable :placeholder="$t('reviewers-list:placeholder:sendEmail')"></el-input>
v-model="email" <el-button type="primary" round :disabled="!email" @click="sendEmail" :loading="emailLoading"
clearable style="margin-left: 10px">
:placeholder="$t('reviewers-list:placeholder:sendEmail')"
></el-input>
<el-button
type="primary"
round
:disabled="!email"
@click="sendEmail"
:loading="emailLoading"
style="margin-left: 10px"
>
{{ $t('reviewers-list:button:sendEmail') }} {{ $t('reviewers-list:button:sendEmail') }}
</el-button> </el-button>
</div> </div>
</template> </template>
</base-model> </base-model>
<!--新增或修改简历--> <!--新增或修改简历-->
<el-dialog <el-dialog :title="$t('curriculumVitae:content:title')" :visible.sync="visible" fullscreen v-if="visible"
:title="$t('curriculumVitae:content:title')" appendToBody :before-close="beforeClose">
:visible.sync="visible"
fullscreen
v-if="visible"
appendToBody
:before-close="beforeClose"
>
<curriculumVitae :reviewerId="reviewerId" /> <curriculumVitae :reviewerId="reviewerId" />
</el-dialog> </el-dialog>
<!--新增阅片人输入邮箱---> <!--新增阅片人输入邮箱--->
<el-dialog <el-dialog :title="$t('curriculumVitae:content:title')" :visible.sync="emailVisible" v-if="emailVisible"
:title="$t('curriculumVitae:content:title')" appendToBody :close-on-click-modal="false" v-dialogDrag width="400px">
:visible.sync="emailVisible" <el-form v-if="emailVisible" ref="emailForm" :model="emailForm" :rules="emailRule" class="demo-form-inline"
v-if="emailVisible" label-width="80px">
appendToBody <el-form-item :label="$t('trials:trials-panel:attachments:enrollment:form:email')" prop="EmailOrPhone">
:close-on-click-modal="false" <el-input v-model="emailForm.EmailOrPhone" clearable :maxlength="400"></el-input>
v-dialogDrag <el-input style="display: none" v-model="emailForm.EmailOrPhone" clearable :maxlength="400"></el-input>
width="400px"
>
<el-form
v-if="emailVisible"
ref="emailForm"
:model="emailForm"
:rules="emailRule"
class="demo-form-inline"
label-width="80px"
>
<el-form-item
:label="$t('trials:trials-panel:attachments:enrollment:form:email')"
prop="EmailOrPhone"
>
<el-input
v-model="emailForm.EmailOrPhone"
clearable
:maxlength="400"
></el-input>
<el-input
style="display: none"
v-model="emailForm.EmailOrPhone"
clearable
:maxlength="400"
></el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="handleCancle"> <el-button size="small" type="primary" @click="handleCancle">
{{ $t('common:button:cancel') }} {{ $t('common:button:cancel') }}
</el-button> </el-button>
<el-button <el-button size="small" type="primary" @click="handleSave" :loading="emailLoading">
size="small"
type="primary"
@click="handleSave"
:loading="emailLoading"
>
{{ $t('common:button:save') }} {{ $t('common:button:save') }}
</el-button> </el-button>
</span> </span>
@ -482,8 +257,8 @@ const getListQueryDefault = () => {
HospitalId: '', HospitalId: '',
Asc: false, Asc: false,
SortField: '', SortField: '',
AcceptingNewTrial: true, // AcceptingNewTrial: true,
InformationConfirmed: true, // InformationConfirmed: true,
ContractorStatus: 1, ContractorStatus: 1,
} }
} }
@ -707,7 +482,7 @@ export default {
} }
}, },
handleSelectTable(row) { handleSelectTable(row) {
return row.DoctorTrialState !== 1 return row.DoctorTrialState !== 1 && row.ResumeStatus === 1 && row.AcceptingNewTrial && !row.IsVirtual && !row.IsVacation && row.CooperateStatus === 1
}, },
handleDetail(row) { handleDetail(row) {
const { href } = this.$router.resolve({ const { href } = this.$router.resolve({
@ -733,8 +508,8 @@ export default {
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
} }
::v-deep .el-card__body { ::v-deep .el-card__body {
padding: 20px !important; padding: 20px !important;
} }
</style> </style>