diff --git a/server/app/socket/sftp.js b/server/app/socket/sftp.js index bb85006..4c75c7e 100644 --- a/server/app/socket/sftp.js +++ b/server/app/socket/sftp.js @@ -35,12 +35,12 @@ const pipeStream = (path, writeStream) => { } function listenInput(sftpClient, socket) { - socket.on('open_dir', async (path) => { + socket.on('open_dir', async (path, tips = true) => { const exists = await sftpClient.exists(path) - if(!exists) return socket.emit('not_exists_dir', '目录不存在或当前不可访问') + if(!exists) return socket.emit('not_exists_dir', tips ? '目录不存在或当前不可访问' : '') try { let dirLs = await sftpClient.list(path) - socket.emit('dir_ls', dirLs) + socket.emit('dir_ls', dirLs, path) } catch (error) { consola.error('open_dir Error', error.message) socket.emit('sftp_error', error.message) diff --git a/web/package.json b/web/package.json index a4b7b1e..ca0b6b4 100644 --- a/web/package.json +++ b/web/package.json @@ -1,6 +1,6 @@ { "name": "web", - "version": "2.1.3", + "version": "2.1.4", "description": "easynode-web", "private": true, "scripts": { diff --git a/web/src/components/code-edit/index.vue b/web/src/components/code-edit/index.vue index a857882..143f04b 100644 --- a/web/src/components/code-edit/index.vue +++ b/web/src/components/code-edit/index.vue @@ -12,7 +12,8 @@ > - {{ FileName }} - {{ status }} + {{ filename }} + import('@views/login/index.vue') -const Container = () => import('@views/index.vue') -const Server = () => import('@views/server/index.vue') -const Terminal = () => import('@views/terminal/index.vue') -const Credentials = () => import('@views/credentials/index.vue') -const Group = () => import('@views/group/index.vue') -const Onekey = () => import('@views/onekey/index.vue') -const Scripts = () => import('@views/scripts/index.vue') -const Setting = () => import('@views/setting/index.vue') +// const Login = () => import('@views/login/index.vue') +// const Container = () => import('@views/index.vue') +// const Server = () => import('@views/server/index.vue') +// const Terminal = () => import('@views/terminal/index.vue') +// const Credentials = () => import('@views/credentials/index.vue') +// const Group = () => import('@views/group/index.vue') +// const Onekey = () => import('@views/onekey/index.vue') +// const Scripts = () => import('@views/scripts/index.vue') +// const Setting = () => import('@views/setting/index.vue') const routes = [ { path: '/login', component: Login }, diff --git a/web/src/views/terminal/components/sftp.vue b/web/src/views/terminal/components/sftp.vue index 588f5cd..7135463 100644 --- a/web/src/views/terminal/components/sftp.vue +++ b/web/src/views/terminal/components/sftp.vue @@ -281,12 +281,17 @@ const connectSftp = () => { } const listenSftp = () => { - socket.value.on('dir_ls', (dirLs) => { + socket.value.on('dir_ls', (dirLs, path) => { childDir.value = sortDirTree(dirLs) childDirLoading.value = false + // 格式化path为当前目录 + let formatPath = path.split('/').filter(item => item) + formatPath.unshift('/') + // console.log('formatPath:', formatPath) + paths.value = formatPath }) socket.value.on('not_exists_dir', (errMsg) => { - $message.error(errMsg) + if (errMsg) $message.error(errMsg) childDirLoading.value = false }) socket.value.on('rm_success', (res) => { @@ -517,16 +522,20 @@ const uploadSliceFile = (fileInfo) => { }) } -const openDir = () => { +const openDir = (path = '', tips = true) => { childDirLoading.value = true curTarget.value = null - socket.value.emit('open_dir', curPath.value) + socket.value.emit('open_dir', path || curPath.value, tips) } const getPath = (name = '') => { return curPath.value.length === 1 ? `/${ name }` : `${ curPath.value }/${ name }` } +defineExpose({ + openDir +}) +