mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-18 21:38:57 +08:00
feat: Terminal connection supports reset (#11336)
This commit is contained in:
parent
84a58f2bb1
commit
3212e23f43
18 changed files with 81 additions and 17 deletions
|
|
@ -84,6 +84,28 @@ func (b *BaseApi) CheckLocalConn(c *gin.Context) {
|
||||||
helper.SuccessWithData(c, err == nil)
|
helper.SuccessWithData(c, err == nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// @Tags System Setting
|
||||||
|
// @Summary Update local is conn
|
||||||
|
// @Accept json
|
||||||
|
// @Param request body dto.SSHDefaultConn true "request"
|
||||||
|
// @Success 200
|
||||||
|
// @Security ApiKeyAuth
|
||||||
|
// @Security Timestamp
|
||||||
|
// @Router /settings/ssh/conn/default [post]
|
||||||
|
// @x-panel-log {"bodyKeys":["defaultConn"],"paramKeys":[],"BeforeFunctions":[],"formatZH":"本地终端默认连接 [defaultConn]","formatEN":"update system default conn [defaultConn]"}
|
||||||
|
func (b *BaseApi) SetDefaultIsConn(c *gin.Context) {
|
||||||
|
var req dto.SSHDefaultConn
|
||||||
|
if err := helper.CheckBindAndValidate(&req, c); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := settingService.SetDefaultIsConn(req); err != nil {
|
||||||
|
helper.InternalServer(c, err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
helper.Success(c)
|
||||||
|
}
|
||||||
|
|
||||||
// @Tags System Setting
|
// @Tags System Setting
|
||||||
// @Summary Check local conn info
|
// @Summary Check local conn info
|
||||||
// @Success 200 {boolean} isOk
|
// @Success 200 {boolean} isOk
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,10 @@ type Clean struct {
|
||||||
Size uint64 `json:"size"`
|
Size uint64 `json:"size"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SSHDefaultConn struct {
|
||||||
|
WithReset bool `json:"withReset"`
|
||||||
|
DefaultConn string `json:"defaultConn"`
|
||||||
|
}
|
||||||
type SSHConnData struct {
|
type SSHConnData struct {
|
||||||
Addr string `json:"addr" validate:"required"`
|
Addr string `json:"addr" validate:"required"`
|
||||||
Port uint `json:"port" validate:"required,number,max=65535,min=1"`
|
Port uint `json:"port" validate:"required,number,max=65535,min=1"`
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import (
|
||||||
"github.com/1Panel-dev/1Panel/agent/app/model"
|
"github.com/1Panel-dev/1Panel/agent/app/model"
|
||||||
"github.com/1Panel-dev/1Panel/agent/app/repo"
|
"github.com/1Panel-dev/1Panel/agent/app/repo"
|
||||||
"github.com/1Panel-dev/1Panel/agent/buserr"
|
"github.com/1Panel-dev/1Panel/agent/buserr"
|
||||||
|
"github.com/1Panel-dev/1Panel/agent/constant"
|
||||||
"github.com/1Panel-dev/1Panel/agent/utils/encrypt"
|
"github.com/1Panel-dev/1Panel/agent/utils/encrypt"
|
||||||
"github.com/1Panel-dev/1Panel/agent/utils/ssh"
|
"github.com/1Panel-dev/1Panel/agent/utils/ssh"
|
||||||
"github.com/jinzhu/copier"
|
"github.com/jinzhu/copier"
|
||||||
|
|
@ -22,6 +23,7 @@ type ISettingService interface {
|
||||||
|
|
||||||
TestConnByInfo(req dto.SSHConnData) bool
|
TestConnByInfo(req dto.SSHConnData) bool
|
||||||
SaveConnInfo(req dto.SSHConnData) error
|
SaveConnInfo(req dto.SSHConnData) error
|
||||||
|
SetDefaultIsConn(req dto.SSHDefaultConn) error
|
||||||
GetSystemProxy() (*dto.SystemProxy, error)
|
GetSystemProxy() (*dto.SystemProxy, error)
|
||||||
GetLocalConn() dto.SSHConnData
|
GetLocalConn() dto.SSHConnData
|
||||||
GetSettingByKey(key string) string
|
GetSettingByKey(key string) string
|
||||||
|
|
@ -125,6 +127,15 @@ func (u *SettingService) SaveConnInfo(req dto.SSHConnData) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (u *SettingService) SetDefaultIsConn(req dto.SSHDefaultConn) error {
|
||||||
|
if req.DefaultConn == constant.StatusDisable && req.WithReset {
|
||||||
|
if err := settingRepo.Update("LocalSSHConn", ""); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return settingRepo.Update("LocalSSHConnShow", req.DefaultConn)
|
||||||
|
}
|
||||||
|
|
||||||
func (u *SettingService) GetSystemProxy() (*dto.SystemProxy, error) {
|
func (u *SettingService) GetSystemProxy() (*dto.SystemProxy, error) {
|
||||||
systemProxy := dto.SystemProxy{}
|
systemProxy := dto.SystemProxy{}
|
||||||
systemProxy.Type, _ = settingRepo.GetValueByKey("ProxyType")
|
systemProxy.Type, _ = settingRepo.GetValueByKey("ProxyType")
|
||||||
|
|
@ -138,6 +149,7 @@ func (u *SettingService) GetSystemProxy() (*dto.SystemProxy, error) {
|
||||||
|
|
||||||
func (u *SettingService) GetLocalConn() dto.SSHConnData {
|
func (u *SettingService) GetLocalConn() dto.SSHConnData {
|
||||||
var data dto.SSHConnData
|
var data dto.SSHConnData
|
||||||
|
data.LocalSSHConnShow, _ = settingRepo.GetValueByKey("LocalSSHConnShow")
|
||||||
connItem, _ := settingRepo.GetValueByKey("LocalSSHConn")
|
connItem, _ := settingRepo.GetValueByKey("LocalSSHConn")
|
||||||
if len(connItem) == 0 {
|
if len(connItem) == 0 {
|
||||||
return data
|
return data
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ func (s *SettingRouter) InitRouter(Router *gin.RouterGroup) {
|
||||||
|
|
||||||
settingRouter.POST("/ssh/check", baseApi.CheckLocalConn)
|
settingRouter.POST("/ssh/check", baseApi.CheckLocalConn)
|
||||||
settingRouter.GET("/ssh/conn", baseApi.LoadLocalConn)
|
settingRouter.GET("/ssh/conn", baseApi.LoadLocalConn)
|
||||||
|
settingRouter.POST("/ssh/default", baseApi.SetDefaultIsConn)
|
||||||
settingRouter.POST("/ssh", baseApi.SaveLocalConn)
|
settingRouter.POST("/ssh", baseApi.SaveLocalConn)
|
||||||
settingRouter.POST("/ssh/check/info", baseApi.CheckLocalConnByInfo)
|
settingRouter.POST("/ssh/check/info", baseApi.CheckLocalConnByInfo)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,9 @@ export const getHostByID = (id: number) => {
|
||||||
export const getHostTree = (params: Host.ReqSearch) => {
|
export const getHostTree = (params: Host.ReqSearch) => {
|
||||||
return http.post<Array<Host.HostTree>>(`/core/hosts/tree`, params);
|
return http.post<Array<Host.HostTree>>(`/core/hosts/tree`, params);
|
||||||
};
|
};
|
||||||
|
export const updateLocalConn = (param: { withReset: boolean; defaultConn: string }) => {
|
||||||
|
return http.post(`/settings/ssh/default`, param);
|
||||||
|
};
|
||||||
export const addHost = (params: Host.HostOperate) => {
|
export const addHost = (params: Host.HostOperate) => {
|
||||||
let request = deepCopy(params) as Host.HostOperate;
|
let request = deepCopy(params) as Host.HostOperate;
|
||||||
if (request.password) {
|
if (request.password) {
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@
|
||||||
</div>
|
</div>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="open = false" :disabled="loading">
|
<el-button @click="handleClose" :disabled="loading">
|
||||||
{{ $t('commons.button.cancel') }}
|
{{ $t('commons.button.cancel') }}
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button type="primary" @click="onConfirm" :disabled="loading">
|
<el-button type="primary" @click="onConfirm" :disabled="loading">
|
||||||
|
|
@ -88,7 +88,6 @@ const onConfirm = async () => {
|
||||||
await form
|
await form
|
||||||
.api(form.params)
|
.api(form.params)
|
||||||
.then(() => {
|
.then(() => {
|
||||||
emit('cancel');
|
|
||||||
emit('search');
|
emit('search');
|
||||||
if (!noMsg.value) {
|
if (!noMsg.value) {
|
||||||
MsgSuccess(successMsg.value ?? i18n.global.t('commons.msg.deleteSuccess'));
|
MsgSuccess(successMsg.value ?? i18n.global.t('commons.msg.deleteSuccess'));
|
||||||
|
|
|
||||||
|
|
@ -1270,6 +1270,7 @@ const message = {
|
||||||
defaultConn: 'Default Connection',
|
defaultConn: 'Default Connection',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'This operation will automatically connect to the node terminal after opening the terminal for 【{0}】. Continue?',
|
'This operation will automatically connect to the node terminal after opening the terminal for 【{0}】. Continue?',
|
||||||
|
withReset: 'Reset Connection Information',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'Default connection information is maintained in [Terminal - Settings]. If connection fails, please edit there!',
|
'Default connection information is maintained in [Terminal - Settings]. If connection fails, please edit there!',
|
||||||
localHelper: 'The `local` name is used only for system local identification',
|
localHelper: 'The `local` name is used only for system local identification',
|
||||||
|
|
|
||||||
|
|
@ -1279,6 +1279,7 @@ const message = {
|
||||||
defaultConn: 'Conexión predeterminada',
|
defaultConn: 'Conexión predeterminada',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'Esta operación conectará automáticamente al terminal del nodo después de abrir el terminal para 【{0}】. ¿Continuar?',
|
'Esta operación conectará automáticamente al terminal del nodo después de abrir el terminal para 【{0}】. ¿Continuar?',
|
||||||
|
withReset: 'Restablecer Información de Conexión',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'La información de conexión predeterminada se mantiene en [Terminal - Configuración]. Si la conexión falla, ¡edite allí!',
|
'La información de conexión predeterminada se mantiene en [Terminal - Configuración]. Si la conexión falla, ¡edite allí!',
|
||||||
localHelper: 'El nombre `local` se utiliza solo para identificación interna del sistema',
|
localHelper: 'El nombre `local` se utiliza solo para identificación interna del sistema',
|
||||||
|
|
|
||||||
|
|
@ -1236,6 +1236,7 @@ const message = {
|
||||||
defaultConn: 'デフォルト接続',
|
defaultConn: 'デフォルト接続',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'この操作は【{0}】のターミナルを開いた後、自動的にノードターミナルに接続します。続行しますか?',
|
'この操作は【{0}】のターミナルを開いた後、自動的にノードターミナルに接続します。続行しますか?',
|
||||||
|
withReset: '接続情報をリセット',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'デフォルト接続情報は【ターミナル - 設定】で管理されています。接続に失敗した場合はこちらで編集してください!',
|
'デフォルト接続情報は【ターミナル - 設定】で管理されています。接続に失敗した場合はこちらで編集してください!',
|
||||||
localHelper: 'ローカル名はシステムのローカル識別にのみ使用されます。',
|
localHelper: 'ローカル名はシステムのローカル識別にのみ使用されます。',
|
||||||
|
|
|
||||||
|
|
@ -1225,6 +1225,7 @@ const message = {
|
||||||
local: '로컬',
|
local: '로컬',
|
||||||
defaultConn: '기본 연결',
|
defaultConn: '기본 연결',
|
||||||
defaultConnHelper: '이 작업은 【{0}】의 터미널을 연 후 자동으로 노드 터미널에 연결됩니다. 계속하시겠습니까?',
|
defaultConnHelper: '이 작업은 【{0}】의 터미널을 연 후 자동으로 노드 터미널에 연결됩니다. 계속하시겠습니까?',
|
||||||
|
withReset: '연결 정보 재설정',
|
||||||
localConnJump: '기본 연결 정보는 [터미널 - 설정]에서 관리됩니다. 연결 실패 시 해당 위치에서 편집하세요!',
|
localConnJump: '기본 연결 정보는 [터미널 - 설정]에서 관리됩니다. 연결 실패 시 해당 위치에서 편집하세요!',
|
||||||
localHelper: '로컬 이름은 시스템 로컬 식별에만 사용됩니다.',
|
localHelper: '로컬 이름은 시스템 로컬 식별에만 사용됩니다.',
|
||||||
connLocalErr: '자동 인증에 실패했습니다. 로컬 서버 로그인 정보를 입력해주세요.',
|
connLocalErr: '자동 인증에 실패했습니다. 로컬 서버 로그인 정보를 입력해주세요.',
|
||||||
|
|
|
||||||
|
|
@ -1265,6 +1265,7 @@ const message = {
|
||||||
defaultConn: 'Sambungan Lalai',
|
defaultConn: 'Sambungan Lalai',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'Operasi ini akan menyambung secara automatik ke terminal nod selepas membuka terminal untuk 【{0}】. Teruskan?',
|
'Operasi ini akan menyambung secara automatik ke terminal nod selepas membuka terminal untuk 【{0}】. Teruskan?',
|
||||||
|
withReset: 'Tetapkan Semula Maklumat Sambungan',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'Maklumat sambungan lalai dikekalkan dalam [Terminal - Tetapan]. Jika sambungan gagal, sila edit di sana!',
|
'Maklumat sambungan lalai dikekalkan dalam [Terminal - Tetapan]. Jika sambungan gagal, sila edit di sana!',
|
||||||
localHelper: 'Nama tempatan hanya digunakan untuk pengenalan sistem tempatan.',
|
localHelper: 'Nama tempatan hanya digunakan untuk pengenalan sistem tempatan.',
|
||||||
|
|
|
||||||
|
|
@ -1258,6 +1258,7 @@ const message = {
|
||||||
defaultConn: 'Conexão Padrão',
|
defaultConn: 'Conexão Padrão',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'Esta operação conectará automaticamente ao terminal do nó após abrir o terminal para 【{0}】. Continuar?',
|
'Esta operação conectará automaticamente ao terminal do nó após abrir o terminal para 【{0}】. Continuar?',
|
||||||
|
withReset: 'Redefinir Informações de Conexão',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'As informações de conexão padrão são mantidas em [Terminal - Configurações]. Se a conexão falhar, edite lá!',
|
'As informações de conexão padrão são mantidas em [Terminal - Configurações]. Se a conexão falhar, edite lá!',
|
||||||
localHelper: 'O nome local é usado apenas para identificação local do sistema.',
|
localHelper: 'O nome local é usado apenas para identificação local do sistema.',
|
||||||
|
|
|
||||||
|
|
@ -1260,6 +1260,7 @@ const message = {
|
||||||
defaultConn: 'Соединение по умолчанию',
|
defaultConn: 'Соединение по умолчанию',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'Эта операция автоматически подключится к узловому терминалу после открытия терминала для 【{0}】. Продолжить?',
|
'Эта операция автоматически подключится к узловому терминалу после открытия терминала для 【{0}】. Продолжить?',
|
||||||
|
withReset: 'Сбросить Информацию о Подключении',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'Информация о соединении по умолчанию поддерживается в [Терминал - Настройки]. Если соединение не удается, отредактируйте там!',
|
'Информация о соединении по умолчанию поддерживается в [Терминал - Настройки]. Если соединение не удается, отредактируйте там!',
|
||||||
localHelper: 'Локальное имя используется только для локальной идентификации системы.',
|
localHelper: 'Локальное имя используется только для локальной идентификации системы.',
|
||||||
|
|
|
||||||
|
|
@ -1284,6 +1284,7 @@ const message = {
|
||||||
defaultConn: 'Varsayılan Bağlantı',
|
defaultConn: 'Varsayılan Bağlantı',
|
||||||
defaultConnHelper:
|
defaultConnHelper:
|
||||||
'Bu işlem, 【{0}】 için terminal açıldıktan sonra otomatik olarak düğüm terminaline bağlanacaktır. Devam etmek istiyor musunuz?',
|
'Bu işlem, 【{0}】 için terminal açıldıktan sonra otomatik olarak düğüm terminaline bağlanacaktır. Devam etmek istiyor musunuz?',
|
||||||
|
withReset: 'Bağlantı Bilgilerini Sıfırla',
|
||||||
localConnJump:
|
localConnJump:
|
||||||
'Varsayılan bağlantı bilgileri [Terminal - Ayarlar] bölümünde yönetilir. Bağlantı başarısız olursa lütfen oradan düzenleyin!',
|
'Varsayılan bağlantı bilgileri [Terminal - Ayarlar] bölümünde yönetilir. Bağlantı başarısız olursa lütfen oradan düzenleyin!',
|
||||||
localHelper: '`local` adı sadece sistem yerel tanımlaması için kullanılır',
|
localHelper: '`local` adı sadece sistem yerel tanımlaması için kullanılır',
|
||||||
|
|
|
||||||
|
|
@ -1202,6 +1202,7 @@ const message = {
|
||||||
local: '本機',
|
local: '本機',
|
||||||
defaultConn: '預設連接',
|
defaultConn: '預設連接',
|
||||||
defaultConnHelper: '該操作將【{0}】開啟終端後自動連線到所在節點終端,是否繼續?',
|
defaultConnHelper: '該操作將【{0}】開啟終端後自動連線到所在節點終端,是否繼續?',
|
||||||
|
withReset: '重置連線資訊',
|
||||||
localConnJump: '預設連線資訊在【終端 - 設定】中維護,連線失敗可前往編輯!',
|
localConnJump: '預設連線資訊在【終端 - 設定】中維護,連線失敗可前往編輯!',
|
||||||
localHelper: 'local 名稱僅用於系統本機標識',
|
localHelper: 'local 名稱僅用於系統本機標識',
|
||||||
connLocalErr: '無法自動認證,請填寫本機伺服器的登入資訊!',
|
connLocalErr: '無法自動認證,請填寫本機伺服器的登入資訊!',
|
||||||
|
|
|
||||||
|
|
@ -1209,6 +1209,7 @@ const message = {
|
||||||
local: '本机',
|
local: '本机',
|
||||||
defaultConn: '默认连接',
|
defaultConn: '默认连接',
|
||||||
defaultConnHelper: '该操作将【{0}】打开终端后自动连接所在节点终端,是否继续?',
|
defaultConnHelper: '该操作将【{0}】打开终端后自动连接所在节点终端,是否继续?',
|
||||||
|
withReset: '重置连接信息',
|
||||||
localConnJump: '默认连接信息在 【 终端 - 配置 】中维护,连接失败可前往编辑!',
|
localConnJump: '默认连接信息在 【 终端 - 配置 】中维护,连接失败可前往编辑!',
|
||||||
localHelper: 'local 名称仅用于系统本机标识',
|
localHelper: 'local 名称仅用于系统本机标识',
|
||||||
connLocalErr: '无法自动认证,请填写本地服务器的登录信息!',
|
connLocalErr: '无法自动认证,请填写本地服务器的登录信息!',
|
||||||
|
|
|
||||||
|
|
@ -72,6 +72,7 @@ const form = reactive({
|
||||||
groupID: 0,
|
groupID: 0,
|
||||||
description: '',
|
description: '',
|
||||||
rememberPassword: false,
|
rememberPassword: false,
|
||||||
|
localSSHConnShow: '',
|
||||||
});
|
});
|
||||||
const rules = reactive({
|
const rules = reactive({
|
||||||
addr: [Rules.ipV4V6OrDomain],
|
addr: [Rules.ipV4V6OrDomain],
|
||||||
|
|
@ -90,9 +91,9 @@ const acceptParams = (): void => {
|
||||||
const search = async () => {
|
const search = async () => {
|
||||||
await loadLocalConn().then((res) => {
|
await loadLocalConn().then((res) => {
|
||||||
if (res.data) {
|
if (res.data) {
|
||||||
form.addr = res.data.addr;
|
form.addr = res.data.addr || '127.0.0.1';
|
||||||
form.port = res.data.port;
|
form.port = res.data.port || 22;
|
||||||
form.authMode = res.data.authMode;
|
form.authMode = res.data.authMode || 'password';
|
||||||
form.password = Base64.decode(res.data.password);
|
form.password = Base64.decode(res.data.password);
|
||||||
form.privateKey = Base64.decode(res.data.privateKey);
|
form.privateKey = Base64.decode(res.data.privateKey);
|
||||||
form.passPhrase = Base64.decode(res.data.passPhrase);
|
form.passPhrase = Base64.decode(res.data.passPhrase);
|
||||||
|
|
|
||||||
|
|
@ -104,13 +104,23 @@
|
||||||
</template>
|
</template>
|
||||||
</LayoutContent>
|
</LayoutContent>
|
||||||
<OperateDialog @search="loadConnShow" ref="dialogRef" />
|
<OperateDialog @search="loadConnShow" ref="dialogRef" />
|
||||||
|
|
||||||
|
<OpDialog ref="opRef" @search="search" @cancel="loadConnShow">
|
||||||
|
<template #content>
|
||||||
|
<el-form class="mt-4 mb-1" ref="deleteForm" v-if="!form.showDefaultConn" label-position="left">
|
||||||
|
<el-form-item>
|
||||||
|
<el-checkbox v-model="resetConn" :label="$t('terminal.withReset')" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
</template>
|
||||||
|
</OpDialog>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { ref, reactive } from 'vue';
|
import { ref, reactive } from 'vue';
|
||||||
import { ElForm } from 'element-plus';
|
import { ElForm } from 'element-plus';
|
||||||
import { getTerminalInfo, updateAgentSetting, UpdateTerminalInfo } from '@/api/modules/setting';
|
import { getTerminalInfo, UpdateTerminalInfo } from '@/api/modules/setting';
|
||||||
import { Terminal } from '@xterm/xterm';
|
import { Terminal } from '@xterm/xterm';
|
||||||
import OperateDialog from '@/views/terminal/setting/default_conn/index.vue';
|
import OperateDialog from '@/views/terminal/setting/default_conn/index.vue';
|
||||||
import '@xterm/xterm/css/xterm.css';
|
import '@xterm/xterm/css/xterm.css';
|
||||||
|
|
@ -118,7 +128,7 @@ import { FitAddon } from '@xterm/addon-fit';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
import { MsgSuccess } from '@/utils/message';
|
import { MsgSuccess } from '@/utils/message';
|
||||||
import { TerminalStore } from '@/store';
|
import { TerminalStore } from '@/store';
|
||||||
import { loadLocalConn } from '@/api/modules/terminal';
|
import { loadLocalConn, updateLocalConn } from '@/api/modules/terminal';
|
||||||
|
|
||||||
const loading = ref(false);
|
const loading = ref(false);
|
||||||
const terminalStore = TerminalStore();
|
const terminalStore = TerminalStore();
|
||||||
|
|
@ -141,6 +151,9 @@ const form = reactive({
|
||||||
defaultConn: '',
|
defaultConn: '',
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const resetConn = ref(false);
|
||||||
|
const opRef = ref();
|
||||||
|
|
||||||
const acceptParams = () => {
|
const acceptParams = () => {
|
||||||
search(true);
|
search(true);
|
||||||
loadConnShow();
|
loadConnShow();
|
||||||
|
|
@ -181,17 +194,16 @@ const loadConnShow = async () => {
|
||||||
};
|
};
|
||||||
|
|
||||||
const changeShow = async () => {
|
const changeShow = async () => {
|
||||||
|
resetConn.value = false;
|
||||||
let op = form.showDefaultConn ? i18n.global.t('xpack.waf.allow') : i18n.global.t('xpack.waf.deny');
|
let op = form.showDefaultConn ? i18n.global.t('xpack.waf.allow') : i18n.global.t('xpack.waf.deny');
|
||||||
ElMessageBox.confirm(i18n.global.t('terminal.defaultConnHelper', [op]), i18n.global.t('terminal.defaultConn'), {
|
opRef.value.acceptParams({
|
||||||
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
title: i18n.global.t('terminal.defaultConn'),
|
||||||
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
names: [],
|
||||||
type: 'info',
|
msg: i18n.global.t('terminal.defaultConnHelper', [op]),
|
||||||
}).then(async () => {
|
noMsg: false,
|
||||||
await updateAgentSetting({ key: 'LocalSSHConnShow', value: form.showDefaultConn ? 'Enable' : 'Disable' }).then(
|
successMsg: i18n.global.t('commons.msg.operationSuccess'),
|
||||||
() => {
|
api: updateLocalConn,
|
||||||
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
params: { withReset: resetConn.value, defaultConn: form.showDefaultConn ? 'Enable' : 'Disable' },
|
||||||
},
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue