工作台改版

uat_us
熊飞 2024-03-11 17:54:02 +08:00
parent c3a0d3e361
commit 0ac75d7c44
3 changed files with 457 additions and 125 deletions

View File

@ -355,14 +355,14 @@ export default {
padding-bottom: 50px;
.trial-myinfo-left-top{
width: 70%;padding-top: 100px;position: relative;margin: 0 auto;margin-bottom: 10px;
}
}
.trial-myinfo-body{
width:160px;height:160px;border-radius: 50%;background: #428bca;display: flex;justify-content: center;align-items: center;
div{
color:#fff;font-size: 30px;
}
}
}
}
.saveBtn{
position: absolute;right: -10px;top:2px;transform: translateX(100%)
}

View File

@ -1,101 +1,382 @@
<style>
.user-status-item{
width: 100px;
height: 32px;
line-height: 1;
font-size: .75rem;
color: #333;
background: #fff;
border: 1px solid #ddd;
border-radius: 16px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
padding: 0 8px;
}
.my_select_box{
margin-bottom: 12px;
margin-top: 12px;
padding: 0 12px 0 20px;
cursor: pointer;
min-height: 36px;
display: flex;
align-items: center;
border-radius: 5px;
}
.my_select_box_content{
color: #333;
font-size: .875rem;
}
.my_select_box:hover{
background: #f5f5f5;
}
.my_select_box.selected {
color:#6698ff;
background: rgba(102, 152, 255, .1);
}
.my_select_box.selected .my_select_box_content {
color:#6698ff;
}
.my_select_title{
height: 48px;
padding: 0 8px;
display: flex;
font-size: .75rem;
align-items: center;
color: #999;
}
.my_select .my_select_box {
margin-top: 0!important;
}
</style>
<template>
<div class="workbench-container">
<div class="workbench-stats">
<PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />
<!-- <div class="workbench-stats">-->
<!-- <PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />-->
<!-- </div>-->
<div class="workbench-content" style="height: 100%;display: flex">
<div class="workbench-content-left" style="width: 259px;border-right: 1px solid #eee;background: #fbfbfb">
<div style="padding: 12px">
<div class="user-profile-wrapper" style="padding: 24px 0 24px 12px;">
<div style="display: flex;align-items: center;margin-bottom: 20px;" class="user-info">
<div style="margin-right: 0.75rem;background: #428bca;width: 44px;height: 44px;border-radius: 50%;line-height: 44px;text-align: center;font-size: 12px;color:#fff;">
{{ user.LastName }}
</div>
<div class="workbench-content" style="height: 100%">
<div style="height: 100%;position: relative">
<div style="font-weight:900;font-size: 20px;position: absolute;line-height: 60px;text-align: left;white-space: nowrap;padding-left: 20px" :style="{width: width + 'px'}">
{{ $t('trials:workbench:label:pendingTasksStats') }} ({{tabList.TotalCount}})
<div class="user-description" style="">
<div style="font-size: .875rem;color: #333;line-height: 22px;display: flex;margin-bottom: 0.25rem;"><span style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;max-width: 75px">{{user.RealName}}</span>下午好</div>
<div style="font-size: .75rem;line-height: 18px;color:#999">今天是3月11日星期一</div>
</div>
<el-tabs v-model="activeName" style="height: 100%" tab-position="left">
</div>
<div class="user-status" style="display: flex">
<div class="user-status-item" @click="$router.push('/trials/trials-myinfo')" style="margin-right: 0.75rem">
<span class="el-icon-setting" style="margin-right: 0.5rem"></span>
<span>个人中心</span>
</div>
<div class="user-status-item" @click="$router.push('/trials/trials-notice')">
<span class="el-icon-bell" style="margin-right: 0.5rem"></span>
<span style="margin-right: 0.5rem"></span>
<span>12</span>
</div>
</div>
</div>
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
<div class="my_select_box" @click="$router.push('/trials/trials-list')">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>项目列表</span>
</div>
</div>
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
<div class="my_select_title">待办</div>
<div class="my_select">
<!-- PM/APM -->
<!-- 阅片期 -->
<!-- <el-tab-pane name="clinicalDataPM" v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">-->
<!-- <clinicalDataPM v-if="activeName === 'clinicalDataPM'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<el-tab-pane name="consistencyCheck" v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" :label="`${$t('trials:tab:consistencyCheck')} (${tabList.PM_CheckCount})`">
<consistencyCheck v-if="activeName === 'consistencyCheck'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'consistencyCheck'}" tab-data="consistencyCheck" @click="selected = 'consistencyCheck'" v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])">
<div class="my_select_box_content">
<span class="el-icon-folder-checked" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:tab:consistencyCheck') }}<span style="margin:0 0.25rem">·</span>{{tabList.PM_CheckCount}}</span>
</div>
</div>
<!-- 重阅审批 -->
<el-tab-pane name="RereadApproval" v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.PM_ReReadingApprovalCount})`">
<RereadApproval v-if="activeName === 'RereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'RereadApproval'}" tab-data="RereadApproval" @click="selected = 'RereadApproval'" v-if="hasPermi(['trials:trials-workbench:rereadApproval'])">
<div class="my_select_box_content">
<span class="el-icon-document-checked" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:trials-panel:attachments:reReadingTracking') }}<span style="margin:0 0.25rem">·</span>{{ tabList.PM_ReReadingApprovalCount }}</span>
</div>
</div>
<!-- 阅片人筛选 -->
<el-tab-pane name="ReviewerScreen" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:trials-list:PendingDetails:ReviewerSelection')} (${tabList.PM_ReviewerSelectCount})`">
<ReviewerScreen v-if="activeName === 'ReviewerScreen'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'ReviewerScreen'}" tab-data="ReviewerScreen" @click="selected = 'ReviewerScreen'" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])">
<div class="my_select_box_content">
<span class="el-icon-user" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:trials-list:PendingDetails:ReviewerSelection') }}<span style="margin:0 0.25rem">·</span>{{ tabList.PM_ReviewerSelectCount }}</span>
</div>
</div>
<!-- 中心调研 -->
<el-tab-pane name="SiteResearch" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:workbench:title:pendingSiteResearch')} (${tabList.PM_SiteSurveryCount})`">
<SiteResearch v-if="activeName === 'SiteResearch'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'SiteResearch'}" tab-data="SiteResearch" @click="selected = 'SiteResearch'" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])">
<div class="my_select_box_content">
<span class="el-icon-edit-outline" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:pendingSiteResearch') }}<span style="margin:0 0.25rem">·</span>{{ tabList.PM_SiteSurveryCount }}</span>
</div>
</div>
<!-- SPM/CPM -->
<!-- 阅片人审批 -->
<el-tab-pane name="ReviewerApproval" v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" :label="`${$t('trials:sysDocBeSigned:table:reviewerApproval')} (${tabList.SPM_ReviewerApprovalCount})`">
<ReviewerApproval v-if="activeName === 'ReviewerApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'ReviewerApproval'}" tab-data="ReviewerApproval" @click="selected = 'ReviewerApproval'" v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])">
<div class="my_select_box_content">
<span class="el-icon-user" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:sysDocBeSigned:table:reviewerApproval') }}<span style="margin:0 0.25rem">·</span>{{ tabList.SPM_ReviewerApprovalCount }}</span>
</div>
</div>
<!-- 重阅审批 -->
<el-tab-pane name="SpmRereadApproval" v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.SPM_ReReadingApprovalCount})`">
<SpmRereadApproval v-if="activeName === 'SpmRereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<div class="my_select_box" :class="{selected: selected === 'SpmRereadApproval'}" tab-data="SpmRereadApproval" @click="selected = 'SpmRereadApproval'" v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])">
<div class="my_select_box_content">
<span class="el-icon-document-checked" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:trials-panel:attachments:reReadingTracking') }}<span style="margin:0 0.25rem">·</span>{{ tabList.SPM_ReReadingApprovalCount }}</span>
</div>
</div>
<!-- CRC -->
<!-- 影像质疑 -->
<div class="my_select_box" :class="{selected: selected === 'ImageQuestion'}" tab-data="ImageQuestion" @click="selected = 'ImageQuestion'" v-if="hasPermi(['trials:trials-workbench:imageQuestion'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:tab:crcQuality') }}<span style="margin:0 0.25rem">·</span>{{ tabList.CRC_ImageQuestionCount }}</span>
</div>
</div>
<!-- 核查质疑 -->
<div class="my_select_box" :class="{selected: selected === 'ImageVerification'}" tab-data="ImageVerification" @click="selected = 'ImageVerification'" v-if="hasPermi(['trials:trials-workbenck:imageVerification'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:sysDocBeSigned:table:ImageCheck') }}<span style="margin:0 0.25rem">·</span>{{ tabList.CRC_CheckQuestionCount }}</span>
</div>
</div>
<!-- 影像重传 -->
<div class="my_select_box" :class="{selected: selected === 'ImageReupload'}" tab-data="ImageReupload" @click="selected = 'ImageReupload'" v-if="hasPermi(['trials:trials-workbenck:imageReupload'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:ImageRetransmission') }}<span style="margin:0 0.25rem">·</span>{{ tabList.CRC_ImageReUploadCount }}</span>
</div>
</div>
<!-- 加急影像提交 -->
<div class="my_select_box" :class="{selected: selected === 'ImageSubmission'}" tab-data="ImageSubmission" @click="selected = 'ImageSubmission'" v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:ExpeditedImageSubmission') }}<span style="margin:0 0.25rem">·</span>{{ tabList.CRC_ImageSubmitCount }}</span>
</div>
</div>
<!-- IQC -->
<!-- 影像质控 -->
<div class="my_select_box" :class="{selected: selected === 'ImageQualityControl'}" tab-data="ImageQualityControl" @click="selected = 'ImageQualityControl'" v-if="hasPermi(['trials:trials-workbenck:imageQC'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:tab:dicomsQuality') }}<span style="margin:0 0.25rem">·</span>{{ tabList.IQC_IamgeQCCount }}</span>
</div>
</div>
<!-- QC质疑 -->
<div class="my_select_box" :class="{selected: selected === 'QcQuestion'}" tab-data="QcQuestion" @click="selected = 'QcQuestion'" v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:tab:qcQuality') }}<span style="margin:0 0.25rem">·</span>{{ tabList.IQC_QCQuestionCount }}</span>
</div>
</div>
<!-- IR -->
<!-- 影像待阅 -->
<div class="my_select_box" :class="{selected: selected === 'ImagesToRead'}" tab-data="ImagesToRead" @click="selected = 'ImagesToRead'" v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:tab:pendingReadingTasks') }}<span style="margin:0 0.25rem">·</span>{{ tabList.IR_IamgeWaitReadingCount }}</span>
</div>
</div>
<!-- 医学反馈 -->
<div class="my_select_box" :class="{selected: selected === 'MedicalFeedback'}" tab-data="MedicalFeedback" @click="selected = 'MedicalFeedback'" v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:trials-panel:tab:medicalFeedback') }}<span style="margin:0 0.25rem">·</span>{{ tabList.IR_MedicalReviewCount }}</span>
</div>
</div>
<!-- MIM -->
<!-- 医学审核 -->
<div class="my_select_box" :class="{selected: selected === 'MedicalAudit'}" tab-data="MedicalAudit" @click="selected = 'MedicalAudit'" v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])">
<div class="my_select_box_content">
<span class="el-icon-box" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:trials-panel:tab:pmMedicalFeedback') }}<span style="margin:0 0.25rem">·</span>{{ tabList.MIM_MedicalReviewCount }}</span>
</div>
</div>
<!-- 项目签署文件 -->
<div class="my_select_box" :class="{selected: selected === 'NeedSignTrialDoc'}" tab-data="NeedSignTrialDoc" @click="selected = 'NeedSignTrialDoc'" v-if="!hasPermi(['role:zys'])">
<div class="my_select_box_content">
<span class="el-icon-receiving" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:trialDocBeSigned') }}<span style="margin:0 0.25rem">·</span>{{ tabList.TrialWaitSignDocCount }}</span>
</div>
</div>
<!-- 系统签署文件 -->
<div class="my_select_box" :class="{selected: selected === 'NeedSignSysDoc'}" tab-data="NeedSignSysDoc" @click="selected = 'NeedSignSysDoc'" v-if="!hasPermi(['role:zys'])">
<div class="my_select_box_content">
<span class="el-icon-data-line" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:sysDocBeSigned') }}<span style="margin:0 0.25rem">·</span>{{ tabList.SysWaitSignDocCount }}</span>
</div>
</div>
</div>
<div class="thy-divider" style="border-top: 1px solid #eee;margin: 0;"></div>
<div class="my_select_title">我的</div>
<div class="my_select">
<!-- 项目已签署文件 -->
<div class="my_select_box" :class="{selected: selected === 'RereadApproval'}" tab-data="RereadApproval" @click="selected = 'RereadApproval'" v-if="!hasPermi(['role:zys'])">
<div class="my_select_box_content">
<span class="el-icon-receiving" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:trialDocSigned') }}<span style="margin:0 0.25rem">·</span>{{ tabList.TrialWaitSignDocCount }}</span>
</div>
</div>
<!-- 系统已签署文件 -->
<div class="my_select_box" :class="{selected: selected === 'RereadApproval'}" tab-data="RereadApproval" @click="selected = 'RereadApproval'" v-if="!hasPermi(['role:zys'])">
<div class="my_select_box_content">
<span class="el-icon-data-line" style="padding: 4px;margin: 4px;color: #6698ff"></span>
<span>{{ $t('trials:workbench:title:sysDocSigned') }}<span style="margin:0 0.25rem">·</span>{{ tabList.SysWaitSignDocCount }}</span>
</div>
</div>
</div>
</div>
</div>
<div style="width: auto;flex:1;padding: 0 20px">
<!-- PM/APM -->
<!-- 阅片期 -->
<!-- <el-tab-pane name="clinicalDataPM" v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">-->
<!-- <clinicalDataPM v-if="activeName === 'clinicalDataPM'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<consistencyCheck v-if="selected === 'consistencyCheck'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 重阅审批 -->
<RereadApproval v-if="selected === 'RereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 阅片人筛选 -->
<ReviewerScreen v-if="selected === 'ReviewerScreen'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 中心调研 -->
<SiteResearch v-if="selected === 'SiteResearch'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- SPM/CPM -->
<!-- 阅片人审批 -->
<ReviewerApproval v-if="selected === 'ReviewerApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 重阅审批 -->
<SpmRereadApproval v-if="selected === 'SpmRereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- CRC -->
<!-- 临床数据录入 -->
<!-- <clinicalData v-if="selected === 'clinicalData'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- 临床数据确认 -->
<!-- <clinicalDataConfirm v-if="selected === 'clinicalDataConfirm'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- 影像质疑 -->
<ImageQuestion v-if="selected === 'ImageQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 核查质疑 -->
<ImageVerification v-if="selected === 'ImageVerification'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 影像重传 -->
<ImageReupload v-if="selected === 'ImageReupload'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 加急影像提交 -->
<ImageSubmission v-if="selected === 'ImageSubmission'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- IQC -->
<!-- 影像质控 -->
<ImageQualityControl v-if="selected === 'ImageQualityControl'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- QC质疑 -->
<QcQuestion v-if="selected === 'QcQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- IR -->
<!-- 影像待阅 -->
<ImagesToRead v-if="selected === 'ImagesToRead'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 医学反馈 -->
<MedicalFeedback v-if="selected === 'MedicalFeedback'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- MIM -->
<!-- 医学审核 -->
<MedicalAudit v-if="selected === 'MedicalAudit'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
<!-- 项目签署文件 -->
<NeedSignTrialDoc v-if="selected === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />
<!-- 系统签署文件 -->
<NeedSignSysDoc v-if="selected === 'NeedSignSysDoc'" @refreshStats="refreshStats" />
</div>
<!-- <div v-show="false" style="height: 100%;position: relative">-->
<!-- <div style="font-weight:900;font-size: 20px;position: absolute;line-height: 60px;text-align: left;white-space: nowrap;padding-left: 20px" :style="{width: width + 'px'}">-->
<!-- {{ $t('trials:workbench:label:pendingTasksStats') }} ({{tabList.TotalCount}})-->
<!-- </div>-->
<!-- <el-tabs v-model="activeName" style="height: 100%" tab-position="left">-->
<!-- &lt;!&ndash; PM/APM &ndash;&gt;-->
<!-- &lt;!&ndash; 阅片期 &ndash;&gt;-->
<!--&lt;!&ndash; <el-tab-pane name="clinicalDataPM" v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">&ndash;&gt;-->
<!--&lt;!&ndash; <clinicalDataPM v-if="activeName === 'clinicalDataPM'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />&ndash;&gt;-->
<!--&lt;!&ndash; </el-tab-pane>&ndash;&gt;-->
<!-- <el-tab-pane name="consistencyCheck" v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" :label="`${$t('trials:tab:consistencyCheck')} (${tabList.PM_CheckCount})`">-->
<!-- <consistencyCheck v-if="activeName === 'consistencyCheck'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; 重阅审批 &ndash;&gt;-->
<!-- <el-tab-pane name="RereadApproval" v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.PM_ReReadingApprovalCount})`">-->
<!-- <RereadApproval v-if="activeName === 'RereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; 阅片人筛选 &ndash;&gt;-->
<!-- <el-tab-pane name="ReviewerScreen" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:trials-list:PendingDetails:ReviewerSelection')} (${tabList.PM_ReviewerSelectCount})`">-->
<!-- <ReviewerScreen v-if="activeName === 'ReviewerScreen'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; 中心调研 &ndash;&gt;-->
<!-- <el-tab-pane name="SiteResearch" v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:workbench:title:pendingSiteResearch')} (${tabList.PM_SiteSurveryCount})`">-->
<!-- <SiteResearch v-if="activeName === 'SiteResearch'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; SPM/CPM &ndash;&gt;-->
<!--&lt;!&ndash; 阅片人审批 &ndash;&gt;-->
<!-- <el-tab-pane name="ReviewerApproval" v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" :label="`${$t('trials:sysDocBeSigned:table:reviewerApproval')} (${tabList.SPM_ReviewerApprovalCount})`">-->
<!-- <ReviewerApproval v-if="activeName === 'ReviewerApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; 重阅审批 &ndash;&gt;-->
<!-- <el-tab-pane name="SpmRereadApproval" v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.SPM_ReReadingApprovalCount})`">-->
<!-- <SpmRereadApproval v-if="activeName === 'SpmRereadApproval'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!--&lt;!&ndash; CRC &ndash;&gt;-->
<!--&lt;!&ndash; 临床数据录入 &ndash;&gt;-->
<!-- <el-tab-pane name="clinicalData" v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:workbench:title:ClinicalDataEnter')} (${tabList.CRC_ClinicalDataTobeDoneCount})`">-->
<!-- <clinicalData v-if="activeName === 'clinicalData'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 临床数据确认 &ndash;&gt;-->
<!--&lt;!&ndash; 临床数据确认 &ndash;&gt;-->
<!-- <el-tab-pane name="consistencyCheck" v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:audit:tab:clinicalDataconfirm')} (${tabList.CRC_ClinialDataTobeConfirmCount})`">-->
<!-- <clinicalDataConfirm v-if="activeName === 'clinicalDataConfirm'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- 影像质疑 -->
<el-tab-pane name="ImageQuestion" v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" :label="`${$t('trials:tab:crcQuality')} (${tabList.CRC_ImageQuestionCount})`">
<ImageQuestion v-if="activeName === 'ImageQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 核查质疑 -->
<el-tab-pane name="ImageVerification" v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" :label="`${$t('trials:sysDocBeSigned:table:ImageCheck')} (${tabList.CRC_CheckQuestionCount})`">
<ImageVerification v-if="activeName === 'ImageVerification'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 影像重传 -->
<el-tab-pane name="ImageReupload" v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" :label="`${$t('trials:workbench:title:ImageRetransmission')} (${tabList.CRC_ImageReUploadCount})`">
<ImageReupload v-if="activeName === 'ImageReupload'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 加急影像提交 -->
<el-tab-pane name="ImageSubmission" v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" :label="`${$t('trials:workbench:title:ExpeditedImageSubmission')} (${tabList.CRC_ImageSubmitCount})`">
<ImageSubmission v-if="activeName === 'ImageSubmission'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- IQC -->
<!-- 影像质控 -->
<el-tab-pane name="ImageQualityControl" v-if="hasPermi(['trials:trials-workbenck:imageQC'])" :label="`${$t('trials:tab:dicomsQuality')} (${tabList.IQC_IamgeQCCount})`">
<ImageQualityControl v-if="activeName === 'ImageQualityControl'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- QC质疑 -->
<el-tab-pane name="QcQuestion" v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" :label="`${$t('trials:tab:qcQuality')} (${tabList.IQC_QCQuestionCount})`">
<QcQuestion v-if="activeName === 'QcQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- IR -->
<!-- 影像待阅 -->
<el-tab-pane name="ImagesToRead" v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" :label="`${$t('trials:tab:pendingReadingTasks')} (${tabList.IR_IamgeWaitReadingCount})`">
<ImagesToRead v-if="activeName === 'ImagesToRead'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 医学反馈 -->
<el-tab-pane name="MedicalFeedback" v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" :label="`${$t('trials:trials-panel:tab:medicalFeedback')} (${tabList.IR_MedicalReviewCount})`">
<MedicalFeedback v-if="activeName === 'MedicalFeedback'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- MIM -->
<!-- 医学审核 -->
<el-tab-pane name="MedicalAudit" v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" :label="`${$t('trials:trials-panel:tab:pmMedicalFeedback')} (${tabList.MIM_MedicalReviewCount})`">
<MedicalAudit v-if="activeName === 'MedicalAudit'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 项目签署文件 -->
<el-tab-pane name="NeedSignTrialDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
<NeedSignTrialDoc v-if="activeName === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />
</el-tab-pane>
<!-- 系统签署文件 -->
<el-tab-pane name="NeedSignSysDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
<NeedSignSysDoc v-if="activeName === 'NeedSignSysDoc'" @refreshStats="refreshStats" />
</el-tab-pane>
</el-tabs>
</div>
<!-- &lt;!&ndash; 影像质疑 &ndash;&gt;-->
<!-- <el-tab-pane name="ImageQuestion" v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" :label="`${$t('trials:tab:crcQuality')} (${tabList.CRC_ImageQuestionCount})`">-->
<!-- <ImageQuestion v-if="activeName === 'ImageQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 核查质疑 &ndash;&gt;-->
<!-- <el-tab-pane name="ImageVerification" v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" :label="`${$t('trials:sysDocBeSigned:table:ImageCheck')} (${tabList.CRC_CheckQuestionCount})`">-->
<!-- <ImageVerification v-if="activeName === 'ImageVerification'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 影像重传 &ndash;&gt;-->
<!-- <el-tab-pane name="ImageReupload" v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" :label="`${$t('trials:workbench:title:ImageRetransmission')} (${tabList.CRC_ImageReUploadCount})`">-->
<!-- <ImageReupload v-if="activeName === 'ImageReupload'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 加急影像提交 &ndash;&gt;-->
<!-- <el-tab-pane name="ImageSubmission" v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" :label="`${$t('trials:workbench:title:ExpeditedImageSubmission')} (${tabList.CRC_ImageSubmitCount})`">-->
<!-- <ImageSubmission v-if="activeName === 'ImageSubmission'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; IQC &ndash;&gt;-->
<!-- &lt;!&ndash; 影像质控 &ndash;&gt;-->
<!-- <el-tab-pane name="ImageQualityControl" v-if="hasPermi(['trials:trials-workbenck:imageQC'])" :label="`${$t('trials:tab:dicomsQuality')} (${tabList.IQC_IamgeQCCount})`">-->
<!-- <ImageQualityControl v-if="activeName === 'ImageQualityControl'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; QC质疑 &ndash;&gt;-->
<!-- <el-tab-pane name="QcQuestion" v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" :label="`${$t('trials:tab:qcQuality')} (${tabList.IQC_QCQuestionCount})`">-->
<!-- <QcQuestion v-if="activeName === 'QcQuestion'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; IR &ndash;&gt;-->
<!-- &lt;!&ndash; 影像待阅 &ndash;&gt;-->
<!-- <el-tab-pane name="ImagesToRead" v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" :label="`${$t('trials:tab:pendingReadingTasks')} (${tabList.IR_IamgeWaitReadingCount})`">-->
<!-- <ImagesToRead v-if="activeName === 'ImagesToRead'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 医学反馈 &ndash;&gt;-->
<!-- <el-tab-pane name="MedicalFeedback" v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" :label="`${$t('trials:trials-panel:tab:medicalFeedback')} (${tabList.IR_MedicalReviewCount})`">-->
<!-- <MedicalFeedback v-if="activeName === 'MedicalFeedback'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; MIM &ndash;&gt;-->
<!-- &lt;!&ndash; 医学审核 &ndash;&gt;-->
<!-- <el-tab-pane name="MedicalAudit" v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" :label="`${$t('trials:trials-panel:tab:pmMedicalFeedback')} (${tabList.MIM_MedicalReviewCount})`">-->
<!-- <MedicalAudit v-if="activeName === 'MedicalAudit'" :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 项目签署文件 &ndash;&gt;-->
<!-- <el-tab-pane name="NeedSignTrialDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">-->
<!-- <NeedSignTrialDoc v-if="activeName === 'NeedSignTrialDoc'" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-tab-pane>-->
<!-- &lt;!&ndash; 系统签署文件 &ndash;&gt;-->
<!-- <el-tab-pane name="NeedSignSysDoc" v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">-->
<!-- <NeedSignSysDoc v-if="activeName === 'NeedSignSysDoc'" @refreshStats="refreshStats" />-->
<!-- </el-tab-pane>-->
<!-- </el-tabs>-->
<!-- </div>-->
</div>
</div>
</template>
@ -122,26 +403,62 @@ import QcQuestion from './components/qcQuestion'
import ImagesToRead from './components/imagesToRead'
import MedicalFeedback from './components/medicalFeedback'
import MedicalAudit from './components/medicalAudit'
import './index.css'
import { getUserTobeDoneRecord, getNeedSignTrialDocTrialIdList } from '@/api/trials'
import {getUserTobeDoneRecord, getNeedSignTrialDocTrialIdList} from '@/api/trials'
import { getUser } from '@/api/admin'
import {mapGetters} from "vuex";
export default {
name: 'WorkBench',
components: { clinicalDataConfirm, clinicalDataPM, PanelCount, NeedSignTrialDoc, SiteResearch, NeedSignSysDoc, consistencyCheck, clinicalData, RereadApproval, ReviewerScreen, ReviewerApproval, SpmRereadApproval, ImageQuestion, ImageVerification, ImageReupload, ImageSubmission, ImageQualityControl, QcQuestion, ImagesToRead, MedicalFeedback, MedicalAudit },
components: {
clinicalDataConfirm,
clinicalDataPM,
PanelCount,
NeedSignTrialDoc,
SiteResearch,
NeedSignSysDoc,
consistencyCheck,
clinicalData,
RereadApproval,
ReviewerScreen,
ReviewerApproval,
SpmRereadApproval,
ImageQuestion,
ImageVerification,
ImageReupload,
ImageSubmission,
ImageQualityControl,
QcQuestion,
ImagesToRead,
MedicalFeedback,
MedicalAudit
},
data() {
return {
isSignSystemDoc: false,
trialIdList: [],
tabList: {},
activeName: '',
width: 0
width: 0,
user: {},
selected: null
}
},
computed: {
...mapGetters(['userId', 'name'])
},
mounted() {
this.getUserTobeDoneRecord()
this.getNeedSignTrialDocTrialIdList()
this.getUserInfo()
},
methods: {
getUserInfo() {
getUser(this.userId).then(async res => {
this.user = res.Result
}).catch(() => { loading.close() })
},
tabClick(e) {
console.log(e)
},
@ -157,12 +474,11 @@ export default {
console.log(res)
this.trialIdList = res.Result
this.$nextTick(() => {
this.width = document.querySelector('.el-tabs__nav-scroll').clientWidth - 20
var list = document.querySelectorAll('div[aria-controls]')
var list = document.querySelectorAll('div[tab-data]')
list.forEach((v, i) => {
if (i === 0) {
let item = v.getAttribute('aria-controls')
this.activeName = item.split('-')[1]
let item = v.getAttribute('tab-data')
this.selected = item
}
})
})
@ -178,22 +494,26 @@ export default {
</script>
<style lang="scss">
.workbench-container{
.el-tabs__nav{
transform: translateY(60px)!important;
.workbench-container {
.el-tabs__nav {
transform: translateY(60px) !important;
}
.el-tabs__header{
.el-tabs__header {
position: relative;
width: 260px!important;
width: 260px !important;
}
::-webkit-scrollbar {
width: 7px;
height: 7px;
}
::-webkit-scrollbar-thumb {
border-radius: 10px;
background: #d0d0d0;
}
display: flex;
flex-direction: column;
width: 100%;
@ -201,29 +521,34 @@ export default {
background-color: #fff;
overflow-x: hidden;
.workbench-stats{
.workbench-stats {
height: 120px;
}
.workbench-content{
.workbench-content {
flex: 1;
overflow-y: auto;
.content-wrapper{
.content-wrapper {
width: 100%;
height: 100%;
display: flex;
flex-flow: wrap;
padding: 5px;
.item{
.item {
width: 50%;
height: 500px;
padding: 5px;
box-sizing: border-box;
.el-card__body{
.el-card__body {
height: 100%;
}
}
}
}
.table-row__p {
color: #53646f;
font-size: 13px;
@ -231,17 +556,20 @@ export default {
line-height: 18px;
margin-bottom: 0px;
}
.table-row__span {
color: #9eabb4;
font-weight: 300;
font-size: 12px;
}
.el-row{
.el-col{
padding:5px;
.el-row {
.el-col {
padding: 5px;
}
}
.status:before{
.status:before {
content: '';
margin-bottom: 0;
width: 9px;
@ -250,43 +578,47 @@ export default {
margin-right: 7px;
border-radius: 50%;
}
.status--red:before{
.status--red:before {
background-color: #e36767;
}
.status--red{
.status--red {
color: #e36767;
}
.status--blue:before{
.status--blue:before {
background-color: #3fd2ea;
}
.status--blue{
.status--blue {
color: #3fd2ea;
}
.status--yellow:before{
.status--yellow:before {
background-color: #ecce4e;
}
.status--yellow{
.status--yellow {
color: #ecce4e;
}
.status--green{
.status--green {
color: #6cdb56;
}
.status--green:before{
.status--green:before {
background-color: #6cdb56;
}
.status--grey{
.status--grey {
color: #9eabb4;
}
.status--grey:before{
.status--grey:before {
background-color: #9eabb4;
}
.chart-wrapper {
background: #fff;
padding: 16px 16px 0;