irc_web/src/views/dictionary/template/index.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>