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