105 lines
3.2 KiB
Vue
105 lines
3.2 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-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";
|
|
export default {
|
|
name: "Questions",
|
|
components: {
|
|
QcQuestions,
|
|
CriterionsTmp,
|
|
ClinicalData,
|
|
Anonymization,
|
|
IncreaseFields,
|
|
Email,
|
|
Sign,
|
|
MedicalAudit,
|
|
Browser,
|
|
},
|
|
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>
|
|
|