mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-10-26 16:56:22 +08:00
fix: 解决未添加引用导致导航栏失效的问题
This commit is contained in:
parent
1946eb2313
commit
b13efc5195
24 changed files with 104 additions and 120 deletions
|
|
@ -78,6 +78,7 @@ import { oneDark } from '@codemirror/theme-one-dark';
|
||||||
import { Rules } from '@/global/form-rules';
|
import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { listComposeTemplate, upCompose } from '@/api/modules/container';
|
import { listComposeTemplate, upCompose } from '@/api/modules/container';
|
||||||
|
|
||||||
const extensions = [javascript(), oneDark];
|
const extensions = [javascript(), oneDark];
|
||||||
|
|
|
||||||
|
|
@ -205,6 +205,7 @@ import { reactive, ref } from 'vue';
|
||||||
import { Rules } from '@/global/form-rules';
|
import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { listImage, listVolume, createContainer } from '@/api/modules/container';
|
import { listImage, listVolume, createContainer } from '@/api/modules/container';
|
||||||
import { Container } from '@/api/interface/container';
|
import { Container } from '@/api/interface/container';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,7 @@ import { Codemirror } from 'vue-codemirror';
|
||||||
import { javascript } from '@codemirror/lang-javascript';
|
import { javascript } from '@codemirror/lang-javascript';
|
||||||
import { oneDark } from '@codemirror/theme-one-dark';
|
import { oneDark } from '@codemirror/theme-one-dark';
|
||||||
import { LoadFile } from '@/api/modules/files';
|
import { LoadFile } from '@/api/modules/files';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const drawerVisiable = ref(false);
|
const drawerVisiable = ref(false);
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,7 @@ import { Codemirror } from 'vue-codemirror';
|
||||||
import { javascript } from '@codemirror/lang-javascript';
|
import { javascript } from '@codemirror/lang-javascript';
|
||||||
import { oneDark } from '@codemirror/theme-one-dark';
|
import { oneDark } from '@codemirror/theme-one-dark';
|
||||||
import { LoadFile } from '@/api/modules/files';
|
import { LoadFile } from '@/api/modules/files';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const drawerVisiable = ref(false);
|
const drawerVisiable = ref(false);
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
|
|
|
||||||
|
|
@ -54,6 +54,7 @@ import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { imageSave } from '@/api/modules/container';
|
import { imageSave } from '@/api/modules/container';
|
||||||
import { Container } from '@/api/interface/container';
|
import { Container } from '@/api/interface/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { imageTag } from '@/api/modules/container';
|
import { imageTag } from '@/api/modules/container';
|
||||||
import { Container } from '@/api/interface/container';
|
import { Container } from '@/api/interface/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,7 @@ import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { createNetwork } from '@/api/modules/container';
|
import { createNetwork } from '@/api/modules/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,7 @@ import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { Container } from '@/api/interface/container';
|
import { Container } from '@/api/interface/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { createImageRepo, updateImageRepo } from '@/api/modules/container';
|
import { createImageRepo, updateImageRepo } from '@/api/modules/container';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
|
||||||
|
|
@ -1,55 +1,41 @@
|
||||||
<template>
|
<template>
|
||||||
<div>
|
<div>
|
||||||
<div class="app-content" style="margin-top: 30px">
|
<div class="a-card" style="margin-top: 20px">
|
||||||
<el-card class="app-card">
|
<el-card>
|
||||||
<el-row :gutter="20">
|
<div>
|
||||||
<el-col :lg="3" :xl="2">
|
<el-tag style="float: left" effect="dark" type="success">Docker</el-tag>
|
||||||
<div>
|
<el-tag round class="status-content" v-if="form.status === 'Running'" type="success">
|
||||||
<el-tag effect="dark" type="success">Docker</el-tag>
|
{{ $t('commons.status.running') }}
|
||||||
</div>
|
</el-tag>
|
||||||
</el-col>
|
<el-tag round class="status-content" v-if="form.status === 'Stopped'" type="info">
|
||||||
<el-col :lg="3" :xl="2">
|
{{ $t('commons.status.stopped') }}
|
||||||
<div>
|
</el-tag>
|
||||||
{{ $t('app.version') }}:
|
<el-tag class="status-content" type="info">{{ $t('app.version') }}: {{ form.version }}</el-tag>
|
||||||
<el-tag type="info">{{ form.version }}</el-tag>
|
|
||||||
</div>
|
<span v-if="form.status === 'Running'" class="buttons">
|
||||||
</el-col>
|
<el-button type="primary" @click="onOperator('stop')" link>
|
||||||
<el-col :lg="3" :xl="2">
|
{{ $t('container.stop') }}
|
||||||
<div>
|
</el-button>
|
||||||
{{ $t('commons.table.status') }}:
|
<el-divider direction="vertical" />
|
||||||
<el-tag v-if="form.status === 'Running'" type="success">
|
<el-button type="primary" @click="onOperator('restart')" link>
|
||||||
{{ $t('commons.status.running') }}
|
{{ $t('container.restart') }}
|
||||||
</el-tag>
|
</el-button>
|
||||||
<el-tag v-if="form.status === 'Stopped'" type="info">
|
</span>
|
||||||
{{ $t('commons.status.stopped') }}
|
|
||||||
</el-tag>
|
<span v-if="form.status === 'Stopped'" class="buttons">
|
||||||
</div>
|
<el-button type="primary" @click="onOperator('start')" link>
|
||||||
</el-col>
|
{{ $t('container.start') }}
|
||||||
<el-col :lg="4" :xl="6">
|
</el-button>
|
||||||
<div v-if="form.status === 'Running'">
|
<el-divider direction="vertical" />
|
||||||
<el-button type="primary" @click="onOperator('stop')" link style="margin-left: 20px">
|
<el-button type="primary" @click="onOperator('restart')" link>
|
||||||
{{ $t('container.stop') }}
|
{{ $t('container.restart') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-divider direction="vertical" />
|
</span>
|
||||||
<el-button type="primary" @click="onOperator('restart')" link>
|
</div>
|
||||||
{{ $t('container.restart') }}
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
<div v-if="form.status === 'Stopped'">
|
|
||||||
<el-button type="primary" @click="onOperator('start')" link style="margin-left: 20px">
|
|
||||||
{{ $t('container.start') }}
|
|
||||||
</el-button>
|
|
||||||
<el-divider direction="vertical" />
|
|
||||||
<el-button type="primary" @click="onOperator('restart')" link>
|
|
||||||
{{ $t('container.restart') }}
|
|
||||||
</el-button>
|
|
||||||
</div>
|
|
||||||
</el-col>
|
|
||||||
</el-row>
|
|
||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<LayoutContent v-loading="loading" style="margin-top: 30px" :title="$t('container.setting')" :divider="true">
|
<LayoutContent v-loading="loading" style="margin-top: 20px" :title="$t('container.setting')" :divider="true">
|
||||||
<template #main>
|
<template #main>
|
||||||
<el-radio-group v-model="confShowType" @change="changeMode">
|
<el-radio-group v-model="confShowType" @change="changeMode">
|
||||||
<el-radio-button label="base">{{ $t('database.baseConf') }}</el-radio-button>
|
<el-radio-button label="base">{{ $t('database.baseConf') }}</el-radio-button>
|
||||||
|
|
@ -262,16 +248,20 @@ onMounted(() => {
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss">
|
<style lang="scss" scoped>
|
||||||
.app-card {
|
.a-card {
|
||||||
font-size: 14px;
|
font-size: 17px;
|
||||||
height: 60px;
|
.el-card {
|
||||||
|
--el-card-padding: 12px;
|
||||||
|
.buttons {
|
||||||
|
margin-left: 100px;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
.status-content {
|
||||||
.app-content {
|
float: left;
|
||||||
height: 50px;
|
margin-left: 50px;
|
||||||
}
|
}
|
||||||
|
|
||||||
body {
|
body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -63,6 +63,7 @@ import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { Container } from '@/api/interface/container';
|
import { Container } from '@/api/interface/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { createComposeTemplate, updateComposeTemplate } from '@/api/modules/container';
|
import { createComposeTemplate, updateComposeTemplate } from '@/api/modules/container';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,7 @@ import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { createVolume } from '@/api/modules/container';
|
import { createVolume } from '@/api/modules/container';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -103,6 +103,7 @@ import RecordDialog from '@/views/cronjob/record/index.vue';
|
||||||
import LayoutContent from '@/layout/layout-content.vue';
|
import LayoutContent from '@/layout/layout-content.vue';
|
||||||
import { loadZero } from '@/utils/util';
|
import { loadZero } from '@/utils/util';
|
||||||
import { onMounted, reactive, ref } from 'vue';
|
import { onMounted, reactive, ref } from 'vue';
|
||||||
|
import RouterButton from '@/components/router-button/index.vue';
|
||||||
import { deleteCronjob, getCronjobPage, handleOnce, updateStatus } from '@/api/modules/cronjob';
|
import { deleteCronjob, getCronjobPage, handleOnce, updateStatus } from '@/api/modules/cronjob';
|
||||||
import { loadBackupName } from '@/views/setting/helper';
|
import { loadBackupName } from '@/views/setting/helper';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,7 @@ import { addCronjob, editCronjob } from '@/api/modules/cronjob';
|
||||||
import { loadDBNames } from '@/api/modules/database';
|
import { loadDBNames } from '@/api/modules/database';
|
||||||
import { CheckAppInstalled } from '@/api/modules/app';
|
import { CheckAppInstalled } from '@/api/modules/app';
|
||||||
import { GetWebsiteOptions } from '@/api/modules/website';
|
import { GetWebsiteOptions } from '@/api/modules/website';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
interface DialogProps {
|
interface DialogProps {
|
||||||
title: string;
|
title: string;
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,7 @@ import { useDeleteData } from '@/hooks/use-delete-data';
|
||||||
import { backup, recover } from '@/api/modules/database';
|
import { backup, recover } from '@/api/modules/database';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage } from 'element-plus';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { deleteBackupRecord, downloadBackupRecord, searchBackupRecords } from '@/api/modules/backup';
|
import { deleteBackupRecord, downloadBackupRecord, searchBackupRecords } from '@/api/modules/backup';
|
||||||
import { Backup } from '@/api/interface/backup';
|
import { Backup } from '@/api/interface/backup';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { addMysqlDB } from '@/api/modules/database';
|
import { addMysqlDB } from '@/api/modules/database';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const createVisiable = ref(false);
|
const createVisiable = ref(false);
|
||||||
const form = reactive({
|
const form = reactive({
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@ import { recoverByUpload } from '@/api/modules/database';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElMessage, UploadFile, UploadFiles, UploadInstance, UploadProps } from 'element-plus';
|
import { ElMessage, UploadFile, UploadFiles, UploadInstance, UploadProps } from 'element-plus';
|
||||||
import { File } from '@/api/interface/file';
|
import { File } from '@/api/interface/file';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { BatchDeleteFile, GetFilesList, UploadFileData } from '@/api/modules/files';
|
import { BatchDeleteFile, GetFilesList, UploadFileData } from '@/api/modules/files';
|
||||||
import { loadBaseDir } from '@/api/modules/setting';
|
import { loadBaseDir } from '@/api/modules/setting';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -160,6 +160,7 @@ import i18n from '@/lang';
|
||||||
import { Dashboard } from '@/api/interface/dashboard';
|
import { Dashboard } from '@/api/interface/dashboard';
|
||||||
import { dateFormatForSecond, computeSize } from '@/utils/util';
|
import { dateFormatForSecond, computeSize } from '@/utils/util';
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router';
|
||||||
|
import RouterButton from '@/components/router-button/index.vue';
|
||||||
import { loadBaseInfo, loadCurrentInfo } from '@/api/modules/dashboard';
|
import { loadBaseInfo, loadCurrentInfo } from '@/api/modules/dashboard';
|
||||||
import { getIOOptions, getNetworkOptions } from '@/api/modules/monitor';
|
import { getIOOptions, getNetworkOptions } from '@/api/modules/monitor';
|
||||||
const router = useRouter();
|
const router = useRouter();
|
||||||
|
|
@ -422,7 +423,7 @@ const loadData = async () => {
|
||||||
[i18n.global.t('monitor.read'), i18n.global.t('monitor.write')],
|
[i18n.global.t('monitor.read'), i18n.global.t('monitor.write')],
|
||||||
timeIODatas.value,
|
timeIODatas.value,
|
||||||
[ioReadYDatas, ioWriteYDatas],
|
[ioReadYDatas, ioWriteYDatas],
|
||||||
i18n.global.t('monitor.network'),
|
i18n.global.t('home.io'),
|
||||||
'MB',
|
'MB',
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -451,7 +452,7 @@ const loadData = async () => {
|
||||||
[i18n.global.t('monitor.up'), i18n.global.t('monitor.down')],
|
[i18n.global.t('monitor.up'), i18n.global.t('monitor.down')],
|
||||||
timeNetDatas.value,
|
timeNetDatas.value,
|
||||||
[netTxYDatas, netRxYDatas],
|
[netTxYDatas, netRxYDatas],
|
||||||
i18n.global.t('monitor.network'),
|
i18n.global.t('home.network'),
|
||||||
'KB/s',
|
'KB/s',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
CPU-{{ index }}: {{ formatNumber(item) }}%
|
CPU-{{ index }}: {{ formatNumber(item) }}%
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div id="cpu" style="width: 100%; height: 200px"></div>
|
<div id="cpu" style="width: 100%; height: 160px"></div>
|
||||||
</template>
|
</template>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<span class="input-help" style="margin-top: -10px">
|
<span class="input-help" style="margin-top: -10px">
|
||||||
|
|
@ -23,7 +23,7 @@
|
||||||
</span>
|
</span>
|
||||||
</el-col>
|
</el-col>
|
||||||
<el-col :span="6" align="center">
|
<el-col :span="6" align="center">
|
||||||
<div id="memory" style="width: 100%; height: 200px"></div>
|
<div id="memory" style="width: 100%; height: 160px"></div>
|
||||||
<span class="input-help">
|
<span class="input-help">
|
||||||
( {{ formatNumber(currentInfo.memoryUsed / 1024 / 1024) }} /
|
( {{ formatNumber(currentInfo.memoryUsed / 1024 / 1024) }} /
|
||||||
{{ formatNumber(currentInfo.memoryTotal / 1024 / 1024) }} ) MB
|
{{ formatNumber(currentInfo.memoryTotal / 1024 / 1024) }} ) MB
|
||||||
|
|
@ -41,7 +41,7 @@
|
||||||
{{ $t('home.loadAverage', [15]) }}: {{ formatNumber(currentInfo.load15) }}
|
{{ $t('home.loadAverage', [15]) }}: {{ formatNumber(currentInfo.load15) }}
|
||||||
</el-tag>
|
</el-tag>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div id="load" style="width: 100%; height: 200px"></div>
|
<div id="load" style="width: 100%; height: 160px"></div>
|
||||||
</template>
|
</template>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<span class="input-help">{{ loadStatus(currentInfo.loadUsagePercent) }}</span>
|
<span class="input-help">{{ loadStatus(currentInfo.loadUsagePercent) }}</span>
|
||||||
|
|
@ -79,7 +79,7 @@
|
||||||
</el-col>
|
</el-col>
|
||||||
</el-row>
|
</el-row>
|
||||||
<template #reference>
|
<template #reference>
|
||||||
<div id="disk" style="width: 100%; height: 200px"></div>
|
<div id="disk" style="width: 100%; height: 160px"></div>
|
||||||
</template>
|
</template>
|
||||||
</el-popover>
|
</el-popover>
|
||||||
<span class="input-help">
|
<span class="input-help">
|
||||||
|
|
@ -181,70 +181,42 @@ const freshChart = (chartName: string, Title: string, Data: number) => {
|
||||||
title: [
|
title: [
|
||||||
{
|
{
|
||||||
text: Data + '%',
|
text: Data + '%',
|
||||||
x: 'center',
|
|
||||||
top: '55%',
|
|
||||||
textStyle: { fontSize: 16, fontWeight: '100' },
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: Title,
|
|
||||||
x: 'center',
|
|
||||||
y: 'center',
|
|
||||||
textStyle: {
|
textStyle: {
|
||||||
fontSize: '20',
|
color: '#0f0f0f',
|
||||||
fontFamily: 'DINAlternate-Bold, DINAlternate',
|
lineHeight: 30,
|
||||||
foontWeight: '600',
|
fontSize: 24,
|
||||||
|
fontWeight: '500',
|
||||||
},
|
},
|
||||||
|
left: '50%',
|
||||||
|
top: '32%',
|
||||||
|
subtext: Title,
|
||||||
|
subtextStyle: {
|
||||||
|
color: '#000000',
|
||||||
|
fontSize: 18,
|
||||||
|
},
|
||||||
|
textAlign: 'center',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
backgroundColor: '#FFFFFF',
|
|
||||||
polar: { radius: ['42%', '52%'], center: ['50%', '50%'] },
|
|
||||||
angleAxis: { max: 100, show: false },
|
|
||||||
radiusAxis: {
|
|
||||||
type: 'category',
|
|
||||||
show: true,
|
|
||||||
axisLabel: { show: false },
|
|
||||||
axisLine: { show: false },
|
|
||||||
axisTick: { show: false },
|
|
||||||
},
|
|
||||||
series: [
|
series: [
|
||||||
{
|
{
|
||||||
name: '',
|
name: Title,
|
||||||
type: 'bar',
|
type: 'pie',
|
||||||
roundCap: true,
|
radius: ['75%', '96%'],
|
||||||
barWidth: 30,
|
center: ['50%', '50%'],
|
||||||
showBackground: true,
|
color: ['#08a3f0', '#efefef'],
|
||||||
backgroundStyle: { color: 'rgba(66, 66, 66, .3)' },
|
label: {
|
||||||
data: [Data],
|
position: 'center',
|
||||||
coordinateSystem: 'polar',
|
|
||||||
itemStyle: {
|
|
||||||
normal: {
|
normal: {
|
||||||
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
|
show: false,
|
||||||
{
|
|
||||||
offset: 0,
|
|
||||||
color: '#16CEB9',
|
|
||||||
},
|
|
||||||
{ offset: 1, color: '#6648FF' },
|
|
||||||
]),
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
data: [{ value: Data }, { value: 100 - Data }],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: '',
|
|
||||||
type: 'pie',
|
type: 'pie',
|
||||||
startAngle: 80,
|
radius: ['0%', '65%'],
|
||||||
radius: ['56%'],
|
|
||||||
center: ['50%', '50%'],
|
center: ['50%', '50%'],
|
||||||
itemStyle: { color: 'rgba(66, 66, 66, .1)', borderWidth: 1, borderColor: '#5269EE' },
|
hoverAnimation: false,
|
||||||
data: [100],
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: '',
|
|
||||||
type: 'pie',
|
|
||||||
startAngle: 80,
|
|
||||||
radius: ['38%'],
|
|
||||||
center: ['50%', '50%'],
|
|
||||||
itemStyle: { color: 'rgba(66, 66, 66, .1)', borderWidth: 1, borderColor: '#5269EE' },
|
|
||||||
data: [100],
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -124,6 +124,7 @@ import { loadMonitor, getNetworkOptions } from '@/api/modules/monitor';
|
||||||
import { Monitor } from '@/api/interface/monitor';
|
import { Monitor } from '@/api/interface/monitor';
|
||||||
import { dateFormatWithoutYear } from '@/utils/util';
|
import { dateFormatWithoutYear } from '@/utils/util';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
import RouterButton from '@/components/router-button/index.vue';
|
||||||
|
|
||||||
const zoomStart = ref();
|
const zoomStart = ref();
|
||||||
const monitorBase = ref();
|
const monitorBase = ref();
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ import type { ElForm } from 'element-plus';
|
||||||
import { Rules } from '@/global/form-rules';
|
import { Rules } from '@/global/form-rules';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElMessage } from 'element-plus';
|
import { ElMessage } from 'element-plus';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const loading = ref();
|
const loading = ref();
|
||||||
const data = ref();
|
const data = ref();
|
||||||
|
|
|
||||||
|
|
@ -4,17 +4,17 @@
|
||||||
<template #header>
|
<template #header>
|
||||||
<DrawerHeader :header="$t('terminal.addHost')" :back="handleClose" />
|
<DrawerHeader :header="$t('terminal.addHost')" :back="handleClose" />
|
||||||
</template>
|
</template>
|
||||||
<el-alert
|
|
||||||
v-if="isLocal"
|
|
||||||
style="margin-bottom: 20px"
|
|
||||||
center
|
|
||||||
:title="$t('terminal.connLocalErr')"
|
|
||||||
:closable="false"
|
|
||||||
type="warning"
|
|
||||||
/>
|
|
||||||
<el-form ref="hostRef" label-width="100px" label-position="top" :model="hostInfo" :rules="rules">
|
<el-form ref="hostRef" label-width="100px" label-position="top" :model="hostInfo" :rules="rules">
|
||||||
<el-row type="flex" justify="center">
|
<el-row type="flex" justify="center">
|
||||||
<el-col :span="22">
|
<el-col :span="22">
|
||||||
|
<el-alert
|
||||||
|
v-if="isLocal"
|
||||||
|
style="margin-bottom: 20px"
|
||||||
|
center
|
||||||
|
:title="$t('terminal.connLocalErr')"
|
||||||
|
:closable="false"
|
||||||
|
type="warning"
|
||||||
|
/>
|
||||||
<el-form-item :label="$t('terminal.ip')" prop="addr">
|
<el-form-item :label="$t('terminal.ip')" prop="addr">
|
||||||
<el-input v-if="!isLocal" clearable v-model="hostInfo.addr" />
|
<el-input v-if="!isLocal" clearable v-model="hostInfo.addr" />
|
||||||
<div style="margin-left: 12px">
|
<div style="margin-left: 12px">
|
||||||
|
|
@ -72,6 +72,7 @@ import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { Host } from '@/api/interface/host';
|
import { Host } from '@/api/interface/host';
|
||||||
import { Rules } from '@/global/form-rules';
|
import { Rules } from '@/global/form-rules';
|
||||||
import { addHost, testByInfo } from '@/api/modules/host';
|
import { addHost, testByInfo } from '@/api/modules/host';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { reactive, ref } from 'vue';
|
import { reactive, ref } from 'vue';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -65,6 +65,7 @@ import MdEditor from 'md-editor-v3';
|
||||||
import 'md-editor-v3/lib/style.css';
|
import 'md-editor-v3/lib/style.css';
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
|
|
||||||
const version = ref();
|
const version = ref();
|
||||||
const upgradeInfo = ref();
|
const upgradeInfo = ref();
|
||||||
|
|
|
||||||
|
|
@ -136,6 +136,7 @@ import FileList from '@/components/file-list/index.vue';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { ElForm, ElMessage } from 'element-plus';
|
import { ElForm, ElMessage } from 'element-plus';
|
||||||
import { Backup } from '@/api/interface/backup';
|
import { Backup } from '@/api/interface/backup';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { addBackup, editBackup, listBucket } from '@/api/modules/backup';
|
import { addBackup, editBackup, listBucket } from '@/api/modules/backup';
|
||||||
import { deepCopy } from '@/utils/util';
|
import { deepCopy } from '@/utils/util';
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -181,6 +181,7 @@ import { ref } from 'vue';
|
||||||
import { Setting } from '@/api/interface/setting';
|
import { Setting } from '@/api/interface/setting';
|
||||||
import { ElMessage, ElMessageBox } from 'element-plus';
|
import { ElMessage, ElMessageBox } from 'element-plus';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
import DrawerHeader from '@/components/drawer-header/index.vue';
|
||||||
import { snapshotRecover, snapshotRollback } from '@/api/modules/setting';
|
import { snapshotRecover, snapshotRollback } from '@/api/modules/setting';
|
||||||
|
|
||||||
const drawerVisiable = ref(false);
|
const drawerVisiable = ref(false);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue