工作台改版

uat_us
熊飞 2024-02-29 17:06:50 +08:00
parent 95de39abcd
commit e7842282bf
23 changed files with 507 additions and 179 deletions

View File

@ -33,7 +33,7 @@ VUE_APP_PASSWORD_FOR_PERMISSION = false
VUE_APP_PASSWORD_FOR_REGULAR = ^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[-_.@^+\$!%#*?&\$~])[A-Za-z0-9-~_.@^+\$~!%#*?&]{8,32}$
# 是否开启文档签署验证 true:是 false:否
VUE_APP_WORD_FOR_PERMISSION = true
VUE_APP_WORD_FOR_PERMISSION = false
# dicom文件地址

View File

@ -353,6 +353,146 @@
sortable="custom"
width="180"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_UrgentCount"
:label="$t('trials:trials-list:table:CRC_UrgentCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_QCQuestionCount"
:label="$t('trials:trials-list:table:CRC_QCQuestionCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:crc', 'role:cra'])"
prop="CRC_CheckQuestionCount"
:label="$t('trials:trials-list:table:CRC_CheckQuestionCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_UrgentCount"
:label="$t('trials:trials-list:table:IR_UrgentCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_UnReadCount"
:label="$t('trials:trials-list:table:IR_UnReadCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_TotalReadCount"
:label="$t('trials:trials-list:table:IR_TotalReadCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:ir'])"
prop="IR_PMEmailList"
:label="$t('trials:trials-list:table:IR_PMEmailList')"
show-overflow-tooltip
sortable="custom"
width="160"
>
<template slot-scope="scope">
{{scope.row.IR_PMEmailList.join(', ')}}
</template>
</el-table-column>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_UrgentCount"
:label="$t('trials:trials-list:table:IQC_UrgentCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_ToBeClaimedCount"
:label="$t('trials:trials-list:table:IQC_ToBeClaimedCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_AuditToBeDealedCount"
:label="$t('trials:trials-list:table:IQC_AuditToBeDealedCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="IQC_QuestionToBeDealedCount"
:label="$t('trials:trials-list:table:IQC_QuestionToBeDealedCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:iqc'])"
prop="MIM_UrgentCount"
:label="$t('trials:trials-list:table:MIM_UrgentCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:mim'])"
prop="MIM_UrgentCount"
:label="$t('trials:trials-list:table:MIM_UrgentCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:mim'])"
prop="MIM_PendingReviewCount"
:label="$t('trials:trials-list:table:MIM_PendingReviewCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:mim'])"
prop="MIM_PendingResponseCount"
:label="$t('trials:trials-list:table:MIM_PendingResponseCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:spm', 'role:cpm'])"
prop="SPM_ReReadingApprovalCount"
:label="$t('trials:trials-list:table:SPM_ReReadingApprovalCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
v-if="hasPermi(['role:spm', 'role:cpm'])"
prop="SPM_ReviewerSelectApprovalCount"
:label="$t('trials:trials-list:table:SPM_ReviewerSelectApprovalCount')"
show-overflow-tooltip
sortable="custom"
width="160"
/>
<el-table-column
prop="CreateTime"
:label="$t('trials:trials-list:table:createDate')"
@ -404,14 +544,14 @@
@click.stop="handleAbandon(scope.row)"
/>
<!-- 代办详情-->
<!-- <el-button-->
<!-- v-hasPermi="['trials:trials-list:abolish']"-->
<!-- circle-->
<!-- icon="el-icon-receiving"-->
<!-- :disabled="scope.row.TrialStatusStr === 'Initializing'"-->
<!-- :title="$t('trials:trials-list:action:commission')"-->
<!-- @click.stop="handleCommission(scope.row)"-->
<!-- />-->
<el-button
v-hasPermi="['trials:trials-list:abolish']"
circle
icon="el-icon-receiving"
:disabled="scope.row.TrialStatusStr === 'Initializing'"
:title="$t('trials:trials-list:action:commission')"
@click.stop="handleCommission(scope.row)"
/>
</template>
</el-table-column>
</el-table>

View File

@ -17,7 +17,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -67,7 +68,7 @@
icon="el-icon-upload"
v-if="scope.row.ToBeDealedCount !== 0 || scope.row.ReadModuleCount !== 0"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:title:UploadClinicalData')"
@click="handleUpload(scope.row)"
/>
@ -75,7 +76,7 @@
v-if="scope.row.ToBeVisitCount !== 0"
icon="el-icon-link"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:UploadImage')"
@click="goVisit(scope.row)"
/>
@ -377,6 +378,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -17,7 +17,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -66,7 +67,7 @@
<el-button
icon="el-icon-upload"
v-if="scope.row.ToBeDealedCount !== 0 || scope.row.ReadModuleCount !== 0"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
circle
:title="$t('trials:workbench:title:UploadClinicalData')"
@click="handleUpload(scope.row)"
@ -383,6 +384,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -17,7 +17,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -58,14 +59,14 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:action:sign')"
@click="handleUpload(scope.row)"
/>
<el-button
icon="el-icon-link"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:action:access')"
@click="goVisit(scope.row)"
/>
@ -395,6 +396,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
components: { Pagination, clinicalDataQuestions, SignForm },

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -75,7 +76,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:action:sign')"
@click="handleSign(scope.row)"
/>
@ -103,6 +104,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -72,7 +73,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -100,6 +101,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -92,6 +93,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -79,7 +80,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -107,6 +108,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -79,7 +80,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -107,6 +108,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -72,7 +73,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -100,6 +101,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -60,6 +61,7 @@
icon="el-icon-edit-outline"
circle
:title="$t('trials:workbench:action:sign')"
:disabled="isSignSystemDoc"
@click="handleSign(scope.row)"
/>
</template>
@ -82,6 +84,12 @@ const searchDataDefault = () => {
export default {
name: 'NeedSignDoc',
components: { Pagination },
props: {
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {
return {
listLoading: false,

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:button:handle')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:researchRecord:action:view')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -70,7 +71,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:seletctedReviews:timeline:approval')"
@click="handleAudit(scope.row)"
/>
@ -98,6 +99,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -70,7 +71,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('common:button:confirm')"
@click="handleAudit(scope.row)"
/>
@ -98,6 +99,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -57,7 +58,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:pendingSiteResearch:action:audit')"
@click="handleAudit(scope.row)"
/>
@ -84,6 +85,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -18,7 +18,8 @@
v-loading="listLoading"
:data="list"
:show-header="true"
height="calc(100% - 100px)"
v-adaptive="{bottomOffset:45}"
height="100"
@sort-change="handleSortByColumn"
>
<el-table-column type="index" width="40" />
@ -65,7 +66,7 @@
<el-button
icon="el-icon-edit-outline"
circle
:disabled="!!~trialIdList.indexOf(scope.row.TrialId)"
:disabled="!!~trialIdList.indexOf(scope.row.TrialId) || isSignSystemDoc"
:title="$t('trials:workbench:table:approve')"
@click="handleAudit(scope.row)"
/>
@ -93,6 +94,10 @@ export default {
trialIdList: {
type: Array,
default() { return [] }
},
isSignSystemDoc: {
type: Boolean,
default() { return false }
}
},
data() {

View File

@ -3,134 +3,222 @@
<div class="workbench-stats">
<PanelCount ref="panelCount" @getSignSystemDocCount="getSignSystemDocCount" />
</div>
<div class="workbench-content">
<div class="content-wrapper">
<div class="workbench-content" style="height: 100%">
<div style="height: 100%">
<el-tabs style="height: 100%" tab-position="left">
<!-- PM/APM -->
<!-- 阅片期 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-panel:subject:readingPeriod:edit'])" :label="`${$t('trials:crcUpload:label:clinicalData')} (${tabList.PM_ClinicalDataCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<clinicalDataPM :trial-id-list="trialIdList" />
<clinicalDataPM :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
<!-- 一致性核查 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:consistencyCheck'])" class="item">
</el-tab-pane>
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:consistencyCheck'])" :label="`${$t('trials:tab:consistencyCheck')} (${tabList.PM_CheckCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<consistencyCheck :trial-id-list="trialIdList" />
<consistencyCheck :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 重阅审批 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:rereadApproval'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:rereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.PM_ReReadingApprovalCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<RereadApproval :trial-id-list="trialIdList" />
<RereadApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 阅片人筛选 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:reviewerScreen'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:trials-list:PendingDetails:ReviewerSelection')} (${tabList.PM_ReviewerSelectCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ReviewerScreen :trial-id-list="trialIdList" />
<ReviewerScreen :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 中心调研 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:attachments:site-research'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerScreen'])" :label="`${$t('trials:workbench:title:pendingSiteResearch')} (${tabList.PM_SiteSurveryCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<SiteResearch :trial-id-list="trialIdList" />
<SiteResearch :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
<!-- 核对临床数据 -->
</el-tab-pane>
<!-- SPM/CPM -->
<!-- 阅片人审批 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:reviewerApproval'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:reviewerApproval'])" :label="`${$t('trials:sysDocBeSigned:table:reviewerApproval')} (${tabList.SPM_ReviewerApprovalCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ReviewerApproval :trial-id-list="trialIdList" />
<ReviewerApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 重阅审批 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:spmRereadApproval'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:spmRereadApproval'])" :label="`${$t('trials:trials-panel:attachments:reReadingTracking')} (${tabList.SPM_ReReadingApprovalCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<SpmRereadApproval :trial-id-list="trialIdList" />
<SpmRereadApproval :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- CRC -->
<!-- 临床数据录入 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:workbench:title:ClinicalDataEnter')} (${tabList.CRC_ClinicalDataTobeDoneCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<clinicalData :trial-id-list="trialIdList" />
<clinicalData :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 临床数据确认 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:clinicalDataEntry'])" :label="`${$t('trials:audit:tab:clinicalDataconfirm')} (${tabList.CRC_ClinialDataTobeConfirmCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<clinicalDataConfirm :trial-id-list="trialIdList" />
<clinicalDataConfirm :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 影像质疑 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:imageQuestion'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbench:imageQuestion'])" :label="`${$t('trials:tab:crcQuality')} (${tabList.CRC_ImageQuestionCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImageQuestion :trial-id-list="trialIdList" />
<ImageQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 核查质疑 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageVerification'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageVerification'])" :label="`${$t('trials:sysDocBeSigned:table:ImageCheck')} (${tabList.CRC_CheckQuestionCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImageVerification :trial-id-list="trialIdList" />
<ImageVerification :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 影像重传 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageReupload'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageReupload'])" :label="`${$t('trials:workbench:title:ImageRetransmission')} (${tabList.CRC_ImageReUploadCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImageReupload :trial-id-list="trialIdList" />
<ImageReupload :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 加急影像提交 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageSubmission'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageSubmission'])" :label="`${$t('trials:workbench:title:ExpeditedImageSubmission')} (${tabList.CRC_ImageSubmitCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImageSubmission :trial-id-list="trialIdList" />
<ImageSubmission :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- IQC -->
<!-- 影像质控 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageQC'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imageQC'])" :label="`${$t('trials:tab:dicomsQuality')} (${tabList.IQC_IamgeQCCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImageQualityControl :trial-id-list="trialIdList" />
<ImageQualityControl :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- QC质疑 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:qcQuestion'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:qcQuestion'])" :label="`${$t('trials:tab:qcQuality')} (${tabList.IQC_QCQuestionCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<QcQuestion :trial-id-list="trialIdList" />
<QcQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- IR -->
<!-- 影像待阅 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imagesToRead'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:imagesToRead'])" :label="`${$t('trials:tab:pendingReadingTasks')} (${tabList.IR_IamgeWaitReadingCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<ImagesToRead :trial-id-list="trialIdList" />
<ImagesToRead :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- 医学反馈 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalFeedback'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:medicalFeedback'])" :label="`${$t('trials:trials-panel:tab:medicalFeedback')} (${tabList.IR_MedicalReviewCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<MedicalFeedback :trial-id-list="trialIdList" />
<MedicalFeedback :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
</el-tab-pane>
<!-- MIM -->
<!-- 医学审核 -->
<div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalAudit'])" class="item">
<el-tab-pane v-if="hasPermi(['trials:trials-workbenck:medicalAudit'])" :label="`${$t('trials:trials-panel:tab:pmMedicalFeedback')} (${tabList.MIM_MedicalReviewCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<MedicalAudit :trial-id-list="trialIdList" />
<MedicalAudit :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
<div v-if="!isSignSystemDoc && !hasPermi(['role:zys'])" class="item">
</el-tab-pane>
<!-- 项目签署文件 -->
<el-tab-pane v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:trialDocBeSigned')} (${tabList.TrialWaitSignDocCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<NeedSignTrialDoc />
<NeedSignTrialDoc :is-sign-system-doc="isSignSystemDoc" />
</el-card>
</div>
<div v-if="isSignSystemDoc || hasPermi(['role:zys'])" class="item">
</el-tab-pane>
<!-- 系统签署文件 -->
<el-tab-pane v-if="!hasPermi(['role:zys'])" :label="`${$t('trials:workbench:title:sysDocBeSigned')} (${tabList.SysWaitSignDocCount})`">
<el-card :body-style="{ padding: '10px'}" style="height:100%">
<NeedSignSysDoc @refreshStats="refreshStats" />
</el-card>
</el-tab-pane>
</el-tabs>
</div>
</div>
<!-- &lt;!&ndash; SPM/CPM &ndash;&gt;-->
<!-- &lt;!&ndash; 阅片人审批 &ndash;&gt;-->
<!-- &lt;!&ndash; 重阅审批 &ndash;&gt;-->
<!-- &lt;!&ndash; CRC &ndash;&gt;-->
<!-- &lt;!&ndash; 临床数据录入 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <clinicalData :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 临床数据确认 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:clinicalDataEntry'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <clinicalDataConfirm :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 影像质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbench:imageQuestion'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImageQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 核查质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageVerification'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImageVerification :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 影像重传 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageReupload'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImageReupload :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 加急影像提交 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageSubmission'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImageSubmission :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; IQC &ndash;&gt;-->
<!-- &lt;!&ndash; 影像质控 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imageQC'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImageQualityControl :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; QC质疑 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:qcQuestion'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <QcQuestion :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; IR &ndash;&gt;-->
<!-- &lt;!&ndash; 影像待阅 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:imagesToRead'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <ImagesToRead :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; 医学反馈 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalFeedback'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <MedicalFeedback :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- &lt;!&ndash; MIM &ndash;&gt;-->
<!-- &lt;!&ndash; 医学审核 &ndash;&gt;-->
<!-- <div v-if="!isSignSystemDoc && hasPermi(['trials:trials-workbenck:medicalAudit'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <MedicalAudit :trial-id-list="trialIdList" :is-sign-system-doc="isSignSystemDoc" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- <div v-if="!isSignSystemDoc && !hasPermi(['role:zys'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <NeedSignTrialDoc />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- <div v-if="isSignSystemDoc || hasPermi(['role:zys'])" class="item">-->
<!-- <el-card :body-style="{ padding: '10px'}" style="height:100%">-->
<!-- <NeedSignSysDoc @refreshStats="refreshStats" />-->
<!-- </el-card>-->
<!-- </div>-->
<!-- </div>-->
</div>
</div>
</template>
@ -166,7 +254,8 @@ export default {
data() {
return {
isSignSystemDoc: false,
trialIdList: []
trialIdList: [],
tabList: {}
}
},
mounted() {
@ -188,7 +277,7 @@ export default {
},
getUserTobeDoneRecord() {
getUserTobeDoneRecord().then(res => {
console.log(res)
this.tabList = res.Result
})
}
}