irc_web/src/views/trials/trials-panel/trial-summary/trial-document/index.vue

253 lines
6.4 KiB
Vue

<template>
<div class="trialDocument">
<div class="left">
<div class="top" v-if="isManage">
<div class="viewCheck">
<span>{{ $t('trials:trialDocument:view') }}</span>
<el-switch
v-model="viewStatus"
active-color="#13ce66"
inactive-color="#409eff"
:active-value="false"
:inactive-value="true"
:active-text="$t('trials:trialDocument:viewStatus:manage')"
:inactive-text="$t('trials:trialDocument:viewStatus:inspect')"
@change="handleChange"
>
</el-switch>
</div>
</div>
<div
:class="{
menuBox: true,
noTop: !isManage,
}"
>
<Menu
ref="Menu"
:viewStatus="viewStatus"
:menuId.sync="Id"
:SubIdentificationEnum.sync="SubIdentificationEnum"
:ArchiveTypeEnum.sync="ArchiveTypeEnum"
:rowData.sync="rowData"
/>
</div>
</div>
<div class="main">
<report-doc
v-if="[0, 1].includes(SubIdentificationEnum)"
:viewStatus="viewStatus"
:Id="Id"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
@getMenu="getMenu"
/>
<file-record
v-if="[2].includes(SubIdentificationEnum)"
:viewStatus="viewStatus"
:Id="Id"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
@getMenu="getMenu"
/>
<!--v-if="[4].includes(SubIdentificationEnum)"-->
<train-record
v-if="[4].includes(SubIdentificationEnum)"
:viewStatus="viewStatus"
:Id="Id"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
@getMenu="getMenu"
/>
<temp
v-if="[6].includes(SubIdentificationEnum)"
:viewStatus="viewStatus"
:Id="Id"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
@getMenu="getMenu"
/>
<!--阅片人简历-->
<curriculum-vitae
v-if="[7].includes(SubIdentificationEnum)"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
/>
<!--阅片人资质材料-->
<certificate
v-if="[8].includes(SubIdentificationEnum)"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
:Id="Id"
:viewStatus="viewStatus"
/>
<!--医学审核-->
<medical-feedback
v-if="[9].includes(SubIdentificationEnum)"
:isDoc="true"
:TITLE="TITLE"
:viewStatus="viewStatus"
/>
<!--阅片记录-->
<reading-tracking
v-if="[11].includes(SubIdentificationEnum)"
:isDoc="true"
:TITLE="TITLE"
:viewStatus="viewStatus"
/>
<!--申报方同意入项记录-->
<entry-record
v-if="[12].includes(SubIdentificationEnum)"
:ArchiveTypeEnum="ArchiveTypeEnum"
:rowData="rowData"
:Id="Id"
:viewStatus="viewStatus"
/>
<!--培训记录/共享资料-->
<Attachments-management
v-if="[13].includes(SubIdentificationEnum)"
:isDoc="true"
:TITLE="TITLE"
:viewStatus="viewStatus"
/>
</div>
</div>
</template>
<script>
import BaseContainer from '@/components/BaseContainer'
import Menu from './components/menu.vue'
import reportDoc from './components/report_doc/index.vue'
import fileRecord from './components/fileRecord/index.vue'
import trainRecord from './components/trainRecord/index.vue'
import temp from './components/template/index.vue'
// 阅片人相关
import curriculumVitae from './components/viewer/curriculumVitae/index.vue'
import certificate from './components/viewer/certificate/index.vue'
import entryRecord from './components/viewer/entryRecord/index.vue'
import readingTracking from '@/views/trials/trials-panel/reading/reading-tracking/index.vue'
import medicalFeedback from '@/views/trials/trials-panel/reading/pm-medical-feedback/index.vue'
import AttachmentsManagement from '@/views/trials/trials-panel/attachments/attachment-management/index.vue'
export default {
name: 'trialDocument',
components: {
BaseContainer,
Menu,
reportDoc,
fileRecord,
trainRecord,
temp,
entryRecord,
certificate,
curriculumVitae,
readingTracking,
AttachmentsManagement,
medicalFeedback,
},
data() {
return {
viewStatus: true,
Id: null,
SubIdentificationEnum: null,
ArchiveTypeEnum: null,
rowData: {},
}
},
computed: {
isInspect() {
return this.hasPermi([
'trials:trials-panel:trial-summary:trial-document:inspect',
])
},
isManage() {
return this.hasPermi([
'trials:trials-panel:trial-summary:trial-document:manage',
])
},
TITLE() {
return `${this.$fd('ArchiveType', this.ArchiveTypeEnum)}${
this.isEN ? this.rowData.Name : this.rowData.NameCN
}`
},
},
methods: {
handleChange() {
// this.Id = null
this.SubIdentificationEnum = null
this.ArchiveTypeEnum = null
this.rowData = {}
},
getMenu() {
this.$refs.Menu.getMenu()
},
},
}
</script>
<style lang="scss" scoped>
.trialDocument {
width: 100%;
height: 100%;
background-color: #fff;
display: flex;
align-items: center;
.left {
width: 300px;
height: 100%;
box-sizing: border-box;
border-right: 1px solid #e4e7ed;
.top {
width: 100%;
max-height: 75px;
display: flex;
flex-wrap: wrap;
padding: 0 15px;
margin-bottom: 5px;
.viewCheck {
width: 100%;
line-height: 30px;
margin-bottom: 10px;
}
}
.menuBox {
width: 100%;
height: calc(100% - 80px);
overflow-y: auto;
&::-webkit-scrollbar {
//display: none; /* Chrome Safari */
width: 8px;
height: 8px;
background-color: #e4e4e4;
border-radius: 6px;
}
&::-webkit-scrollbar-thumb {
background-color: #a1a3a9;
border-radius: 6px;
}
}
.noTop {
height: 100%;
}
}
.main {
width: calc(100% - 300px);
height: 100%;
padding: 10px;
}
}
::v-deep .topForm {
.el-form-item {
margin-right: 30px;
margin-bottom: 12px;
}
}
::v-deep .line {
width: 100%;
height: 1px;
margin: 0 0 12px 0;
border-top: 1px solid #ebeef5;
}
::v-deep .box-body .search .base-search-form .el-form-item {
margin-bottom: 15px;
}
</style>