138 lines
3.6 KiB
Vue
138 lines
3.6 KiB
Vue
<template>
|
|
<div class="question-wrapper">
|
|
<el-tabs v-model="activeTab" @tab-click="clickTab">
|
|
<!-- QC问题配置 -->
|
|
<el-tab-pane :label="$t('dictionary:template:tab:qcConfig')" name="qc">
|
|
<qc-questions v-if="activeTab == 'qc'" />
|
|
</el-tab-pane>
|
|
<!-- 阅片标准配置 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:criterionsConfig')"
|
|
name="criterions"
|
|
>
|
|
<criterions-tmp v-if="activeTab == 'criterions'" />
|
|
</el-tab-pane>
|
|
<!-- 临床数据配置 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:clinicalDataConfig')"
|
|
name="clinicalData"
|
|
>
|
|
<clinical-data v-if="activeTab == 'clinicalData'" />
|
|
</el-tab-pane>
|
|
<!-- 医学审核问题配置 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:medicalConfig')"
|
|
name="medicalAudit"
|
|
>
|
|
<medical-audit v-if="activeTab == 'medicalAudit'" />
|
|
</el-tab-pane>
|
|
<!-- DICOM字段匿名化配置 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:dicomTagConfig')"
|
|
name="anonymization"
|
|
>
|
|
<Anonymization v-if="activeTab == 'anonymization'" />
|
|
</el-tab-pane>
|
|
<!-- DICOM字段新增配置 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:dicomTagAddConfig')"
|
|
name="increasefields"
|
|
>
|
|
<IncreaseFields v-if="activeTab == 'increasefields'" />
|
|
</el-tab-pane>
|
|
<!-- 邮件管理 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:emailConfig')"
|
|
name="email"
|
|
>
|
|
<Email v-if="activeTab == 'email'" />
|
|
</el-tab-pane>
|
|
<!-- 签名管理 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:signConfig')"
|
|
name="sign"
|
|
>
|
|
<Sign v-if="activeTab == 'sign'" />
|
|
</el-tab-pane>
|
|
<!-- 浏览器推荐 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:browserConfig')"
|
|
name="browser"
|
|
>
|
|
<Browser v-if="activeTab == 'browser'" />
|
|
</el-tab-pane>
|
|
<!-- 文件记录 -->
|
|
<el-tab-pane
|
|
:label="$t('dictionary:template:tab:fileConfig')"
|
|
name="file"
|
|
>
|
|
<File v-if="activeTab == 'file'" />
|
|
</el-tab-pane>
|
|
</el-tabs>
|
|
</div>
|
|
</template>
|
|
<script>
|
|
import QcQuestions from './components/QcQuestions.vue'
|
|
import CriterionsTmp from './components/CriterionsTmp'
|
|
import ClinicalData from './components/ClinicalDataConfig'
|
|
import MedicalAudit from './components/MedicalAudit'
|
|
import Anonymization from './components/Anonymization'
|
|
import IncreaseFields from './components/IncreaseFields'
|
|
import Email from './email/index.vue'
|
|
import Sign from './sign/index.vue'
|
|
import Browser from './browser/index.vue'
|
|
import File from './file/index.vue'
|
|
export default {
|
|
name: 'Questions',
|
|
components: {
|
|
QcQuestions,
|
|
CriterionsTmp,
|
|
ClinicalData,
|
|
Anonymization,
|
|
IncreaseFields,
|
|
Email,
|
|
Sign,
|
|
MedicalAudit,
|
|
Browser,
|
|
File,
|
|
},
|
|
data() {
|
|
return {
|
|
activeTab: 'qc',
|
|
}
|
|
},
|
|
mounted() {
|
|
if (this.$route.query.tabActive) {
|
|
this.activeTab = this.$route.query.tabActive
|
|
} else {
|
|
this.activeTab = 'qc'
|
|
}
|
|
},
|
|
methods: {
|
|
clickTab(tab, event) {
|
|
this.$router.push({ path: `/dictionary/template?tabActive=${tab.name}` })
|
|
},
|
|
},
|
|
}
|
|
</script>
|
|
<style lang="scss">
|
|
.question-wrapper {
|
|
.el-tabs {
|
|
height: 100%;
|
|
display: flex;
|
|
flex-direction: column;
|
|
}
|
|
.el-tabs__header {
|
|
height: 40px;
|
|
margin-bottom: 5px;
|
|
}
|
|
.el-tabs__content {
|
|
flex: 1;
|
|
.el-tab-pane {
|
|
height: 100%;
|
|
}
|
|
}
|
|
}
|
|
</style>
|
|
|