Merge branch 'main' of https://gitea.frp.extimaging.com/XCKJ/irc_web into main
continuous-integration/drone/push Build is running
Details
continuous-integration/drone/push Build is running
Details
commit
742b60bba2
Binary file not shown.
|
After Width: | Height: | Size: 8.0 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 320 KiB |
|
|
@ -24,7 +24,10 @@
|
|||
<div v-if="NODE_ENV === 'usa'">
|
||||
<svg-icon icon-class="login-logo" style="width: 300px; height: 94px" />
|
||||
</div>
|
||||
<div class="title" v-else>{{ $t('login:title:system') }}</div>
|
||||
<div class="title" v-else>
|
||||
<img src="@/assets/system.png" alt="" :style="{ width: isEN ? '180px' : '200px', height: isEN ? '60px' : '65px' }" />
|
||||
<div :style="`font-size:${isEN ? '28px' : '35px'}`">{{ $t('login:title:system') }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form" auto-complete="on"
|
||||
label-position="left">
|
||||
|
|
@ -250,6 +253,9 @@ export default {
|
|||
// return window.location.host
|
||||
return 'elevateimaging.ai '
|
||||
},
|
||||
isEN() {
|
||||
return this.$i18n.locale !== 'zh'
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
'$i18n.locale': {
|
||||
|
|
@ -697,7 +703,7 @@ $light_gray: #606266;
|
|||
|
||||
.login-form {
|
||||
position: absolute;
|
||||
top: 55%;
|
||||
top: 60%;
|
||||
// transform: translateY(-50%);
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
|
|
|
|||
|
|
@ -49,6 +49,9 @@
|
|||
<el-image v-else-if="
|
||||
item.FileType === 'application/x-zip-compressed'
|
||||
" style="width: 100%; height: 100%" :src="zip" fit="contain" crossorigin="anonymous" />
|
||||
<el-image v-else-if="
|
||||
!!~item.FileType.indexOf('mp4')
|
||||
" style="width: 100%; height: 100%" :src="mp4" fit="contain" crossorigin="anonymous" />
|
||||
</div>
|
||||
<div v-if="item.FileName.length < 15" class="img-text">
|
||||
{{ `${j + 1}. ${item.FileName}` }}
|
||||
|
|
@ -102,6 +105,7 @@ import { getNoneDicomStudyList, setNodicomStudyState } from '@/api/trials'
|
|||
import store from '@/store'
|
||||
import pdf from '@/assets/pdf.png'
|
||||
import zip from '@/assets/zip.jpg'
|
||||
import mp4 from '@/assets/mp4.png'
|
||||
import { changeURLStatic } from '@/utils/history.js'
|
||||
import Preview from './components/preview'
|
||||
import PreviewFile from '@/components/PreviewFile'
|
||||
|
|
@ -118,6 +122,7 @@ export default {
|
|||
return {
|
||||
pdf,
|
||||
zip,
|
||||
mp4,
|
||||
activeName: 'first',
|
||||
currentFileId: '',
|
||||
currentStudyIndex: 0,
|
||||
|
|
@ -341,10 +346,15 @@ export default {
|
|||
this.pdfFile.type = 'pdf'
|
||||
this.showPDF = true
|
||||
return true
|
||||
} else if (!!~file.FileType.indexOf('mp4')) {
|
||||
this.pdfFile.path = file.Path || file.FullFilePath
|
||||
this.pdfFile.type = file.FileType
|
||||
this.showPDF = true
|
||||
return true
|
||||
} else {
|
||||
this.showPDF = false
|
||||
}
|
||||
|
||||
console.log(this.pdfFile)
|
||||
this.currentStudyIndex = studyIndex
|
||||
this.previewImage.imgList =
|
||||
this.studyList[studyIndex].NoneDicomStudyFileList
|
||||
|
|
|
|||
|
|
@ -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="
|
||||
go(
|
||||
`/trialsResume?doctorId=${scope.row.Id}&trialId=${$route.query.trialId}&token=${token}`
|
||||
)
|
||||
"
|
||||
>{{ scope.row.LastName }} / {{ scope.row.FirstName }}</span
|
||||
>
|
||||
<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>
|
||||
<!-- <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"
|
||||
>
|
||||
<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"
|
||||
>
|
||||
<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"
|
||||
>
|
||||
<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"
|
||||
/>
|
||||
<!-- 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="HospitalName" :label="$t('trials:seletctedReviews:table:institution')"
|
||||
show-overflow-tooltip width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
icon="el-icon-edit-outline"
|
||||
:title="$t('common:button:edit')"
|
||||
<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">
|
||||
<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">
|
||||
<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" />
|
||||
<!-- 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'])">
|
||||
<template slot-scope="scope">
|
||||
<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>
|
||||
|
|
@ -483,7 +258,7 @@ const getListQueryDefault = () => {
|
|||
Asc: false,
|
||||
SortField: '',
|
||||
AcceptingNewTrial: true,
|
||||
InformationConfirmed: true,
|
||||
// InformationConfirmed: true,
|
||||
ContractorStatus: 1,
|
||||
}
|
||||
}
|
||||
|
|
@ -583,7 +358,7 @@ export default {
|
|||
},
|
||||
copyCode() {
|
||||
this.$copyText(
|
||||
`${this.$t('reviewers-list:message:msg1')}: ${this.shareLink}`
|
||||
`${this.$t('reviewers-list:message:msg2')}: ${this.shareLink}`
|
||||
)
|
||||
.then((res) => {
|
||||
this.$message.success(
|
||||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -1042,7 +1042,7 @@ export default {
|
|||
seriesArr.push(seriesList[0], seriesList[0])
|
||||
activeStudyIndex = seriesList[0].StudyIndex
|
||||
activeSeriesIndex = seriesList[0].SeriesIndex
|
||||
} else if (seriesArr.length > 1) {
|
||||
} else if (seriesList.length > 1) {
|
||||
seriesArr.push(seriesList[0], seriesList[1])
|
||||
activeStudyIndex = seriesList[1].StudyIndex
|
||||
activeSeriesIndex = seriesList[1].SeriesIndex
|
||||
|
|
|
|||
|
|
@ -1,18 +1,13 @@
|
|||
/* eslint-disable */
|
||||
<template>
|
||||
<el-form
|
||||
ref="taskAllocationRuleDataForm"
|
||||
v-loading="loading"
|
||||
:model="form"
|
||||
size="small"
|
||||
:rules="rules"
|
||||
label-width="130px"
|
||||
>
|
||||
<el-form ref="taskAllocationRuleDataForm" v-loading="loading" :model="form" size="small" :rules="rules"
|
||||
label-width="130px">
|
||||
<div class="base-dialog-body">
|
||||
<!-- 阅片人 -->
|
||||
<el-form-item :label="$t('trials:reviewAssign:allocationRules:table:reader')" prop="DoctorUserId">
|
||||
<el-select v-model="form.DoctorUserId" :disabled="!!form.Id" clearable>
|
||||
<el-option v-for="item of doctorUserList" :key="item.DoctorUserId" :label="`${item.UserName}(${item.FullName})`" :value="item.DoctorUserId" />
|
||||
<el-option v-for="item of doctorUserList" :key="item.DoctorUser.UserId"
|
||||
:label="`${item.DoctorUser.UserName}(${item.DoctorUser.FullName})`" :value="item.DoctorUser.UserId" />
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- 计划受试者数量 -->
|
||||
|
|
@ -22,30 +17,21 @@
|
|||
</div>
|
||||
</el-form-item>
|
||||
<!-- 状态 -->
|
||||
<el-form-item :label="$t('trials:reviewAssign:allocationRules:table:status')" >
|
||||
<el-form-item :label="$t('trials:reviewAssign:allocationRules:table:status')">
|
||||
<el-radio-group v-model="form.IsEnable">
|
||||
<el-radio v-for="item of $d.IsEnable" :key="'form.IsEnable' + item.value" :label="item.value">{{ item.label }}</el-radio>
|
||||
<el-radio v-for="item of $d.IsEnable" :key="'form.IsEnable' + item.value" :label="item.value">{{ item.label
|
||||
}}</el-radio>
|
||||
</el-radio-group>
|
||||
</el-form-item>
|
||||
<!-- 备注 -->
|
||||
<el-form-item :label="$t('trials:reviewAssign:allocationRules:table:remark')">
|
||||
<el-input
|
||||
v-model="form.Note"
|
||||
type="textarea"
|
||||
maxlength="100"
|
||||
show-word-limit
|
||||
/>
|
||||
<el-input v-model="form.Note" type="textarea" maxlength="100" show-word-limit />
|
||||
</el-form-item>
|
||||
</div>
|
||||
<div class="base-dialog-footer" style="text-align:right;margin-top:10px;">
|
||||
<el-form-item>
|
||||
<!-- 取消 -->
|
||||
<el-button
|
||||
:disabled="btnLoading"
|
||||
size="small"
|
||||
type="primary"
|
||||
@click="close"
|
||||
>
|
||||
<el-button :disabled="btnLoading" size="small" type="primary" @click="close">
|
||||
{{ $t('common:button:cancel') }}
|
||||
</el-button>
|
||||
<!-- 保存 -->
|
||||
|
|
@ -128,5 +114,4 @@ export default {
|
|||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
</style>
|
||||
<style lang="scss" scoped></style>
|
||||
|
|
|
|||
|
|
@ -317,7 +317,7 @@
|
|||
<el-dialog v-if="taskAllocationRuleVisible" :title="title" :visible.sync="taskAllocationRuleVisible"
|
||||
width="600px" :close-on-click-modal="false">
|
||||
<AddOrEditTaskAllocationRule :data="rowData" :TaskAllocationRuleList="TaskAllocationRuleList"
|
||||
:doctor-user-list="DoctorUserList" @close="() => { taskAllocationRuleVisible = false }"
|
||||
:doctor-user-list="TaskAllocationRuleList" @close="() => { taskAllocationRuleVisible = false }"
|
||||
@getList="openAllocationConfigVisible" />
|
||||
</el-dialog>
|
||||
<!--分配阅片人 -->
|
||||
|
|
|
|||
|
|
@ -1057,7 +1057,7 @@ export default {
|
|||
// 临时标记
|
||||
return
|
||||
}
|
||||
|
||||
this.$emit('getMarkedFileIds', { type: "remove", visitTaskId: this.taskInfo.VisitTaskId, fileId: annotation.noneDicomFileId})
|
||||
if (annotation.visitTaskId === this.taskInfo.VisitTaskId) {
|
||||
this.$emit('getEcrf', { type: "verifyAnnotationIsBound", VisitTaskId: annotation.visitTaskId, annotation })
|
||||
this.$nextTick(async () => {
|
||||
|
|
@ -1102,7 +1102,6 @@ export default {
|
|||
viewport.render()
|
||||
}
|
||||
}
|
||||
this.$emit('getMarkedFileIds', { type: "remove", visitTaskId: this.taskInfo.VisitTaskId, fileId: annotation.noneDicomFileId})
|
||||
// else {
|
||||
// console.log(1234567)
|
||||
// const errorMsg = { message: 'annotation Not allowed to operate' }
|
||||
|
|
|
|||
|
|
@ -41,13 +41,18 @@
|
|||
fit="contain" crossorigin="anonymous" />
|
||||
<el-image v-else-if="k.FileType === 'application/pdf'" style="width: 100%;height: 100%;" :src="pdf"
|
||||
fit="contain" crossorigin="anonymous" />
|
||||
<el-image v-else-if="
|
||||
!!~k.FileType.indexOf('mp4')
|
||||
" style="width: 100%; height: 100%" :src="mp4" fit="contain" crossorigin="anonymous" />
|
||||
</div>
|
||||
<div class="file-text" :title="k.FileName">
|
||||
{{ k.FileName }}
|
||||
</div>
|
||||
<div>
|
||||
<i v-if="visitTaskInfo.ReadingTaskState < 2 && (currentMarkedFiles[k.Id] && currentMarkedFiles[k.Id].count > 0)" class="el-icon-star-on" style="font-size: 12px;color: #ff5722;" />
|
||||
<i v-else-if="visitTaskInfo.ReadingTaskState >= 2 && k.IsBeMark" class="el-icon-star-on" style="font-size: 12px;color: #ff5722;" />
|
||||
<i v-if="visitTaskInfo.ReadingTaskState < 2 && (currentMarkedFiles[k.Id] && currentMarkedFiles[k.Id].count > 0)"
|
||||
class="el-icon-star-on" style="font-size: 12px;color: #ff5722;" />
|
||||
<i v-else-if="visitTaskInfo.ReadingTaskState >= 2 && k.IsBeMark" class="el-icon-star-on"
|
||||
style="font-size: 12px;color: #ff5722;" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -59,6 +64,7 @@
|
|||
</template>
|
||||
<script>
|
||||
import pdf from '@/assets/pdf.png'
|
||||
import mp4 from '@/assets/mp4.png'
|
||||
export default {
|
||||
name: 'StudyList',
|
||||
props: {
|
||||
|
|
@ -78,6 +84,7 @@ export default {
|
|||
taskInfo: null,
|
||||
studyList: [],
|
||||
pdf,
|
||||
mp4,
|
||||
BodyPart: {},
|
||||
currentMarkedFiles: {}
|
||||
}
|
||||
|
|
@ -181,11 +188,11 @@ export default {
|
|||
} else {
|
||||
this.currentMarkedFiles[fileId].count++
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
initCurrentMaredFiles() {
|
||||
this.visitTaskInfo.Annotations.map(i=>{
|
||||
this.visitTaskInfo.Annotations.map(i => {
|
||||
if (!Object.hasOwn(this.currentMarkedFiles, i.NoneDicomFileId)) {
|
||||
this.$set(this.currentMarkedFiles, i.NoneDicomFileId, { count: 1 })
|
||||
} else {
|
||||
|
|
|
|||
Loading…
Reference in New Issue