mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-01-19 08:19:15 +08:00
Pr@dev@dan (#1891)
#### What this PR does / why we need it? #### Summary of your change #### Please indicate you've done the following: - [ ] Made sure tests are passing and test coverage is added if needed. - [ ] Made sure commit message follow the rule of [Conventional Commits specification](https://www.conventionalcommits.org/). - [ ] Considered the docs impact and opened a new docs issue or PR with docs changes if needed.
This commit is contained in:
parent
65b8d47310
commit
1c0d0d46a7
@ -1,21 +1,16 @@
|
||||
<template>
|
||||
<div>
|
||||
<div>
|
||||
<el-select @change="searchLogs" style="width: 10%; float: left" v-model="logSearch.mode">
|
||||
<div style="display: flex; flex-wrap: wrap">
|
||||
<el-select @change="searchLogs" v-model="logSearch.mode" style="width: 100px">
|
||||
<template #prefix>{{ $t('container.fetch') }}</template>
|
||||
<el-option v-for="item in timeOptions" :key="item.label" :value="item.value" :label="item.label" />
|
||||
</el-select>
|
||||
<el-input
|
||||
@change="searchLogs"
|
||||
class="margin-button"
|
||||
style="width: 10%; float: left"
|
||||
v-model.number="logSearch.tail"
|
||||
>
|
||||
<el-input @change="searchLogs" class="margin-button" style="width: 100px" v-model.number="logSearch.tail">
|
||||
<template #prefix>
|
||||
<div style="margin-left: 2px">{{ $t('container.lines') }}</div>
|
||||
</template>
|
||||
</el-input>
|
||||
<div class="margin-button" style="float: left">
|
||||
<div class="margin-button">
|
||||
<el-checkbox border @change="searchLogs" v-model="logSearch.isWatch">
|
||||
{{ $t('commons.button.watch') }}
|
||||
</el-checkbox>
|
||||
|
@ -65,7 +65,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.mini-form-item {
|
||||
width: 100% !important;
|
||||
}
|
||||
@ -84,4 +84,7 @@
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
}
|
||||
.el-dialog {
|
||||
--el-dialog-width: 80% !important;
|
||||
}
|
||||
}
|
||||
|
@ -119,7 +119,7 @@
|
||||
v-model:page-size="paginationConfig.pageSize"
|
||||
v-bind="paginationConfig"
|
||||
@change="search(req)"
|
||||
:layout="'total, sizes, prev, pager, next, jumper'"
|
||||
:layout="mobile ? 'total, prev, pager, next' : 'total, sizes, prev, pager, next, jumper'"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
@ -129,13 +129,20 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { App } from '@/api/interface/app';
|
||||
import { onMounted, reactive, ref } from 'vue';
|
||||
import { onMounted, reactive, ref, computed } from 'vue';
|
||||
import { GetAppTags, SearchApp, SyncApp } from '@/api/modules/app';
|
||||
import i18n from '@/lang';
|
||||
import Detail from '../detail/index.vue';
|
||||
import router from '@/routers';
|
||||
import { MsgSuccess } from '@/utils/message';
|
||||
import { useI18n } from 'vue-i18n';
|
||||
import { GlobalStore } from '@/store';
|
||||
|
||||
const globalStore = GlobalStore();
|
||||
|
||||
const mobile = computed(() => {
|
||||
return globalStore.isMobile();
|
||||
});
|
||||
|
||||
const language = useI18n().locale.value;
|
||||
|
||||
|
@ -54,7 +54,7 @@
|
||||
:data="data"
|
||||
@search="search"
|
||||
>
|
||||
<el-table-column :label="$t('commons.table.name')" min-width="100" prop="name" fix>
|
||||
<el-table-column :label="$t('commons.table.name')" width="170" prop="name" fix>
|
||||
<template #default="{ row }">
|
||||
<Tooltip @click="loadDetail(row)" :text="row.name" />
|
||||
</template>
|
||||
|
@ -64,7 +64,14 @@
|
||||
@search="search"
|
||||
>
|
||||
<el-table-column type="selection" fix />
|
||||
<el-table-column :label="$t('commons.table.name')" min-width="80" prop="name" sortable fix>
|
||||
<el-table-column
|
||||
:label="$t('commons.table.name')"
|
||||
:width="mobile ? 300 : 'auto'"
|
||||
min-width="80"
|
||||
prop="name"
|
||||
sortable
|
||||
fix
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<Tooltip @click="onInspect(row.containerID)" :text="row.name" />
|
||||
</template>
|
||||
@ -75,12 +82,12 @@
|
||||
min-width="80"
|
||||
prop="imageName"
|
||||
/>
|
||||
<el-table-column :label="$t('commons.table.status')" min-width="60" prop="state" sortable fix>
|
||||
<el-table-column :label="$t('commons.table.status')" min-width="80" prop="state" sortable fix>
|
||||
<template #default="{ row }">
|
||||
<Status :key="row.state" :status="row.state"></Status>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('container.source')" show-overflow-tooltip min-width="75" fix>
|
||||
<el-table-column :label="$t('container.source')" show-overflow-tooltip min-width="100" fix>
|
||||
<template #default="{ row }">
|
||||
<div v-if="row.hasLoad">
|
||||
<div>CPU: {{ row.cpuPercent.toFixed(2) }}%</div>
|
||||
@ -91,7 +98,13 @@
|
||||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('commons.table.port')" min-width="120" prop="ports" fix>
|
||||
<el-table-column
|
||||
:label="$t('commons.table.port')"
|
||||
:width="mobile ? 260 : 'auto'"
|
||||
min-width="120"
|
||||
prop="ports"
|
||||
fix
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<div v-if="row.ports">
|
||||
<div v-for="(item, index) in row.ports" :key="index">
|
||||
@ -127,7 +140,7 @@
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('container.upTime')"
|
||||
min-width="70"
|
||||
min-width="80"
|
||||
show-overflow-tooltip
|
||||
prop="runTime"
|
||||
fix
|
||||
@ -168,7 +181,7 @@ import TerminalDialog from '@/views/container/container/terminal/index.vue';
|
||||
import CodemirrorDialog from '@/components/codemirror-dialog/index.vue';
|
||||
import PortJumpDialog from '@/components/port-jump/index.vue';
|
||||
import Status from '@/components/status/index.vue';
|
||||
import { reactive, onMounted, ref } from 'vue';
|
||||
import { reactive, onMounted, ref, computed } from 'vue';
|
||||
import {
|
||||
containerListStats,
|
||||
containerOperator,
|
||||
@ -184,6 +197,12 @@ import i18n from '@/lang';
|
||||
import router from '@/routers';
|
||||
import { MsgSuccess, MsgWarning } from '@/utils/message';
|
||||
import { computeSize } from '@/utils/util';
|
||||
import { GlobalStore } from '@/store';
|
||||
const globalStore = GlobalStore();
|
||||
|
||||
const mobile = computed(() => {
|
||||
return globalStore.isMobile();
|
||||
});
|
||||
|
||||
const loading = ref();
|
||||
const data = ref();
|
||||
|
@ -41,14 +41,25 @@
|
||||
</template>
|
||||
<template #main>
|
||||
<ComplexTable :pagination-config="paginationConfig" :data="data" @search="search">
|
||||
<el-table-column label="ID" prop="id" min-width="50">
|
||||
<el-table-column label="ID" prop="id" width="120">
|
||||
<template #default="{ row }">
|
||||
<span>{{ row.id.replaceAll('sha256:', '').substring(0, 12) }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('container.tag')" prop="tags" min-width="160" fix>
|
||||
<el-table-column
|
||||
:label="$t('container.tag')"
|
||||
prop="tags"
|
||||
min-width="160"
|
||||
:width="mobile ? 400 : 'auto'"
|
||||
fix
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-tag style="margin-left: 5px" v-for="(item, index) of row.tags" :key="index">
|
||||
<el-tag
|
||||
style="margin-left: 5px"
|
||||
v-for="(item, index) of row.tags"
|
||||
:key="index"
|
||||
:title="item"
|
||||
>
|
||||
{{ item }}
|
||||
</el-tag>
|
||||
</template>
|
||||
@ -83,7 +94,7 @@
|
||||
|
||||
<script lang="ts" setup>
|
||||
import TableSetting from '@/components/table-setting/index.vue';
|
||||
import { reactive, onMounted, ref } from 'vue';
|
||||
import { reactive, onMounted, ref, computed } from 'vue';
|
||||
import { dateFormat } from '@/utils/util';
|
||||
import { Container } from '@/api/interface/container';
|
||||
import Pull from '@/views/container/image/pull/index.vue';
|
||||
@ -98,6 +109,12 @@ import { searchImage, listImageRepo, loadDockerStatus, imageRemove } from '@/api
|
||||
import i18n from '@/lang';
|
||||
import router from '@/routers';
|
||||
import { useDeleteData } from '@/hooks/use-delete-data';
|
||||
import { GlobalStore } from '@/store';
|
||||
const globalStore = GlobalStore();
|
||||
|
||||
const mobile = computed(() => {
|
||||
return globalStore.isMobile();
|
||||
});
|
||||
|
||||
const loading = ref(false);
|
||||
|
||||
|
@ -44,12 +44,12 @@
|
||||
@search="search"
|
||||
>
|
||||
<el-table-column type="selection" :selectable="selectable" fix />
|
||||
<el-table-column :label="$t('commons.table.name')" min-width="80" prop="name" fix>
|
||||
<el-table-column :label="$t('commons.table.name')" width="130" prop="name" fix>
|
||||
<template #default="{ row }">
|
||||
<Tooltip @click="onInspect(row.id)" :text="row.name" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column min-width="50">
|
||||
<el-table-column width="90">
|
||||
<template #default="{ row }">
|
||||
<el-tag effect="dark" round v-if="row.isSystem">system</el-tag>
|
||||
</template>
|
||||
@ -57,7 +57,7 @@
|
||||
<el-table-column
|
||||
:label="$t('container.driver')"
|
||||
show-overflow-tooltip
|
||||
min-width="40"
|
||||
min-width="60"
|
||||
prop="driver"
|
||||
/>
|
||||
<el-table-column :label="$t('container.subnet')" min-width="80" prop="subnet" fix />
|
||||
|
@ -44,12 +44,18 @@
|
||||
@search="search"
|
||||
>
|
||||
<el-table-column type="selection" fix />
|
||||
<el-table-column :label="$t('commons.table.name')" min-width="80" prop="name" fix>
|
||||
<el-table-column
|
||||
:label="$t('commons.table.name')"
|
||||
min-width="100"
|
||||
:width="mobile ? 220 : 'auto'"
|
||||
prop="name"
|
||||
fix
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<Tooltip @click="onInspect(row.name)" :text="row.name" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('container.volumeDir')" min-width="50">
|
||||
<el-table-column :label="$t('container.volumeDir')" min-width="100">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="toFolder(row.mountpoint)">
|
||||
<el-icon>
|
||||
@ -91,7 +97,7 @@ import Tooltip from '@/components/tooltip/index.vue';
|
||||
import TableSetting from '@/components/table-setting/index.vue';
|
||||
import CreateDialog from '@/views/container/volume/create/index.vue';
|
||||
import CodemirrorDialog from '@/components/codemirror-dialog/index.vue';
|
||||
import { reactive, onMounted, ref } from 'vue';
|
||||
import { reactive, onMounted, ref, computed } from 'vue';
|
||||
import { computeSize, dateFormat } from '@/utils/util';
|
||||
import { deleteVolume, searchVolume, inspect, loadDockerStatus, containerPrune } from '@/api/modules/container';
|
||||
import { Container } from '@/api/interface/container';
|
||||
@ -100,6 +106,12 @@ import { useDeleteData } from '@/hooks/use-delete-data';
|
||||
import router from '@/routers';
|
||||
import { MsgSuccess } from '@/utils/message';
|
||||
import { ElMessageBox } from 'element-plus';
|
||||
import { GlobalStore } from '@/store';
|
||||
const globalStore = GlobalStore();
|
||||
|
||||
const mobile = computed(() => {
|
||||
return globalStore.isMobile();
|
||||
});
|
||||
|
||||
const loading = ref();
|
||||
const detailInfo = ref();
|
||||
|
@ -3,139 +3,178 @@
|
||||
<el-form label-position="top">
|
||||
<span class="title">{{ $t('database.baseParam') }}</span>
|
||||
<el-divider class="devider" />
|
||||
<el-row type="flex" style="margin-left: 50px" justify="center">
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.runTime') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.run }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.connections') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.connections }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.bytesSent') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.bytesSent }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.bytesReceived') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.bytesReceived }}</span>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.queryPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.queryPerSecond }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.txPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.txPerSecond }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">File</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.file }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">Position</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.position }}</span>
|
||||
</el-form-item>
|
||||
<el-row type="flex" justify="center" style="margin-left: 50px" :gutter="20">
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.runTime') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.run }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.connections') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.connections }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.bytesSent') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.bytesSent }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.bytesReceived') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.bytesReceived }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.queryPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.queryPerSecond }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.txPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.txPerSecond }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">File</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.file }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">Position</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.position }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<span class="title">{{ $t('database.performanceParam') }}</span>
|
||||
<el-divider class="devider" />
|
||||
<el-row type="flex" style="margin-left: 50px" justify="center">
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.queryPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.queryPerSecond }}</span>
|
||||
<span class="input-help">{{ $t('database.connInfoHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.threadCacheHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.threadCacheHit }}</span>
|
||||
<span class="input-help">{{ $t('database.threadCacheHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.indexHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.indexHit }}</span>
|
||||
<span class="input-help">{{ $t('database.indexHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.innodbIndexHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.innodbIndexHit }}</span>
|
||||
<span class="input-help">{{ $t('database.innodbIndexHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.cacheHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.cacheHit }}</span>
|
||||
<span class="input-help">{{ $t('database.cacheHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.tmpTableToDB') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.tmpTableToDB }}</span>
|
||||
<span class="input-help">{{ $t('database.tmpTableToDBHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.openTables') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.openTables }}</span>
|
||||
<span class="input-help">{{ $t('database.openTablesHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.selectFullJoin') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.selectFullJoin }}</span>
|
||||
<span class="input-help">{{ $t('database.selectFullJoinHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.selectRangeCheck') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.selectRangeCheck }}</span>
|
||||
<span class="input-help">{{ $t('database.selectRangeCheckHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.sortMergePasses') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.sortMergePasses }}</span>
|
||||
<span class="input-help">{{ $t('database.sortMergePassesHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%">
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.tableLocksWaited') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.tableLocksWaited }}</span>
|
||||
<span class="input-help">{{ $t('database.tableLocksWaitedHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item style="width: 25%"></el-form-item>
|
||||
<el-row type="flex" style="margin-left: 50px" justify="center" :gutter="20">
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.queryPerSecond') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.queryPerSecond }}</span>
|
||||
<span class="input-help">{{ $t('database.connInfoHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.threadCacheHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.threadCacheHit }}</span>
|
||||
<span class="input-help">{{ $t('database.threadCacheHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.indexHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.indexHit }}</span>
|
||||
<span class="input-help">{{ $t('database.indexHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.innodbIndexHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.innodbIndexHit }}</span>
|
||||
<span class="input-help">{{ $t('database.innodbIndexHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.cacheHit') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.cacheHit }}</span>
|
||||
<span class="input-help">{{ $t('database.cacheHitHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.tmpTableToDB') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.tmpTableToDB }}</span>
|
||||
<span class="input-help">{{ $t('database.tmpTableToDBHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.openTables') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.openTables }}</span>
|
||||
<span class="input-help">{{ $t('database.openTablesHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.selectFullJoin') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.selectFullJoin }}</span>
|
||||
<span class="input-help">{{ $t('database.selectFullJoinHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.selectRangeCheck') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.selectRangeCheck }}</span>
|
||||
<span class="input-help">{{ $t('database.selectRangeCheckHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.sortMergePasses') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.sortMergePasses }}</span>
|
||||
<span class="input-help">{{ $t('database.sortMergePassesHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item>
|
||||
<template #label>
|
||||
<span class="status-label">{{ $t('database.tableLocksWaited') }}</span>
|
||||
</template>
|
||||
<span class="status-count">{{ mysqlStatus.tableLocksWaited }}</span>
|
||||
<span class="input-help">{{ $t('database.tableLocksWaitedHelper') }}</span>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :xs="24" :sm="24" :md="6" :lg="6" :xl="6">
|
||||
<el-form-item style="width: 25%"></el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -465,6 +465,7 @@ function initLoadCharts(item: Monitor.MonitorData) {
|
||||
alignTicks: true,
|
||||
},
|
||||
],
|
||||
grid: mobile.value ? { left: '15%', right: '15%', bottom: '20%' } : null,
|
||||
formatStr: '%',
|
||||
};
|
||||
}
|
||||
|
@ -73,13 +73,21 @@
|
||||
fix
|
||||
prop="primaryDomain"
|
||||
min-width="120px"
|
||||
:width="mobile ? 220 : 'auto'"
|
||||
sortable
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<Tooltip @click="openConfig(row.id)" :text="row.primaryDomain" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('commons.table.type')" fix show-overflow-tooltip prop="type" sortable>
|
||||
<el-table-column
|
||||
min-width="120px"
|
||||
:label="$t('commons.table.type')"
|
||||
fix
|
||||
show-overflow-tooltip
|
||||
prop="type"
|
||||
sortable
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<div v-if="row.type">
|
||||
{{ $t('website.' + row.type) }}
|
||||
@ -97,7 +105,7 @@
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('commons.table.status')" prop="status" width="100px">
|
||||
<el-table-column :label="$t('commons.table.status')" prop="status" width="120px">
|
||||
<template #default="{ row }">
|
||||
<el-button
|
||||
v-if="row.status === 'Running'"
|
||||
@ -113,7 +121,7 @@
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('website.remark')" prop="remark">
|
||||
<el-table-column :label="$t('website.remark')" prop="remark" min-width="120px">
|
||||
<template #default="{ row }">
|
||||
<MsgInfo :info="row.remark" />
|
||||
</template>
|
||||
|
@ -1,9 +1,8 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-form :model="form" :rules="variablesRules" ref="nginxFormRef" label-position="top">
|
||||
<el-row v-loading="loading">
|
||||
<el-col :span="1"><br /></el-col>
|
||||
<el-col :span="9">
|
||||
<el-row v-loading="loading" :gutter="20">
|
||||
<el-col :xs="24" :sm="24" :md="9" :lg="9" :xl="9">
|
||||
<el-form-item label="server_names_hash_bucket_size" prop="server_names_hash_bucket_size">
|
||||
<el-input
|
||||
clearable
|
||||
@ -28,14 +27,8 @@
|
||||
<el-input clearable type="number" v-model.number="form.keepalive_timeout"></el-input>
|
||||
<span class="input-help">{{ $t('nginx.keepaliveTimeoutHelper') }}</span>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submit(nginxFormRef)">
|
||||
{{ $t('commons.button.save') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="1"><br /></el-col>
|
||||
<el-col :span="9">
|
||||
<el-col :xs="24" :sm="24" :md="9" :lg="9" :xl="9">
|
||||
<el-form-item label="gzip" prop="gzip">
|
||||
<el-select v-model="form.gzip">
|
||||
<el-option :label="'on'" :value="'on'"></el-option>
|
||||
@ -55,6 +48,11 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="submit(nginxFormRef)">
|
||||
{{ $t('commons.button.save') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</div>
|
||||
</template>
|
||||
|
Loading…
x
Reference in New Issue
Block a user