de/frontend/src/views/system/SysParam/index.vue
2022-08-20 20:10:49 +08:00

181 lines
4.4 KiB
Vue

<template>
<de-layout-content
v-loading="$store.getters.loadingMap[$store.getters.currentPath]"
>
<div class="sys-setting">
<el-tabs v-model="activeName" class="de-tabs">
<el-tab-pane
:lazy="true"
:label="$t('system_parameter_setting.basic_setting')"
name="zero"
>
</el-tab-pane>
<el-tab-pane
:lazy="true"
:label="$t('system_parameter_setting.mailbox_service_settings')"
name="first"
>
</el-tab-pane>
<el-tab-pane :lazy="true" :label="$t('sysParams.map')" name="ten">
</el-tab-pane>
<el-tab-pane
v-if="isPluginLoaded"
:lazy="true"
:label="$t('sysParams.ldap')"
name="fourth"
>
</el-tab-pane>
<el-tab-pane
v-if="isPluginLoaded"
:lazy="true"
:label="$t('sysParams.oidc')"
name="five"
>
</el-tab-pane>
<el-tab-pane
v-if="engineMode === 'simple'"
:lazy="true"
:label="$t('system_parameter_setting.engine_mode_setting')"
name="six"
>
</el-tab-pane>
<el-tab-pane
v-if="engineMode === 'cluster'"
:lazy="true"
:label="$t('system_parameter_setting.engine_mode_setting')"
name="seven"
>
</el-tab-pane>
<el-tab-pane
v-if="engineMode === 'cluster'"
:lazy="true"
:label="$t('system_parameter_setting.kettle_setting')"
name="eight"
>
</el-tab-pane>
<el-tab-pane
v-if="isPluginLoaded"
:lazy="true"
:label="$t('sysParams.cas')"
name="nine"
>
</el-tab-pane>
</el-tabs>
<div
class="tabs-container"
:class="[activeName !== 'eight' ? 'is-center' : 'pad-center']"
>
<div class="min-w600">
<basic-setting v-if="activeName === 'zero'" />
<email-setting v-if="activeName === 'first'" />
<map-setting v-if="activeName === 'ten'" ref="mapSetting" />
<plugin-com
v-if="activeName === 'fourth'"
ref="DisplaySetting"
component-name="LdapSetting"
/>
<plugin-com
v-if="activeName === 'five'"
ref="DisplaySetting"
component-name="SsoSetting"
/>
<simple-mode v-if="activeName === 'six'" />
<cluster-mode v-if="activeName === 'seven'" />
<kettle-setting v-if="activeName === 'eight'" />
<plugin-com
v-if="activeName === 'nine'"
ref="CasSetting"
component-name="CasSetting"
/>
</div>
</div>
</div>
</de-layout-content>
</template>
<script>
import BasicSetting from "./BasicSetting";
import MapSetting from "./MapSetting";
import EmailSetting from "./EmailSetting";
import SimpleMode from "./SimpleModeSetting";
import ClusterMode from "./ClusterModeSetting";
import KettleSetting from "./KettleSetting";
import DeLayoutContent from "@/components/business/DeLayoutContent";
import PluginCom from "@/views/system/plugin/PluginCom";
import { pluginLoaded } from "@/api/user";
import { engineMode } from "@/api/system/engine";
export default {
components: {
BasicSetting,
EmailSetting,
DeLayoutContent,
PluginCom,
SimpleMode,
ClusterMode,
KettleSetting,
MapSetting,
},
data() {
return {
activeName: "zero",
isPluginLoaded: false,
engineMode: "local",
};
},
beforeCreate() {
pluginLoaded().then((res) => {
this.isPluginLoaded = res.success && res.data;
});
engineMode().then((res) => {
this.engineMode = res.data;
});
},
computed: {
btnList() {},
},
methods: {
handlerBtn(btn) {
},
},
};
</script>
<style lang="scss" scoped>
.sys-setting {
height: 100%;
background-color: var(--MainBG, #f5f6f7);
.tabs-container {
height: calc(100% - 48px);
background: var(--ContentBG, #ffffff);
overflow-x: auto;
.min-w600 {
min-width: 600px;
height: 100%;
& > :nth-child(1) {
box-sizing: border-box;
padding-bottom: 20px;
}
}
}
.is-center {
display: flex;
flex-direction: column;
align-items: center;
padding: 0 20px 20px 20px;
}
.pad-center {
padding: 24px;
}
}
</style>