diff --git a/ssh-vue/src/api/fast-cmd.api.js b/ssh-vue/src/api/fast-cmd.api.js new file mode 100644 index 0000000000000000000000000000000000000000..721db36fc5b8658196d0333b8b65cd73ea300c50 --- /dev/null +++ b/ssh-vue/src/api/fast-cmd.api.js @@ -0,0 +1,85 @@ +const API_KEY = 'fast-cmds', SETTING_KEY = 'fast-setting' + +import {v1 as uuidv1} from 'uuid' + +/** + * 获取快速命令列表 + * @returns {{}} + */ +export function findAll() { + const cmds = localStorage.getItem(API_KEY) + if (!cmds) { + return {} + } + + return JSON.parse(cmds) +} + +/** + * 根据ID获取一条快速命令 + * @param id + * @returns {*} + */ +export function getById(id) { + return findAll()[id] +} + +/** + * 添加快速命令 + * @param data + */ +export function addCmd(data) { + const cmds = findAll() + + data.id = uuidv1() + cmds[data.id] = data + + localStorage.setItem(API_KEY, JSON.stringify(cmds)) +} + +/** + * 修改快速命令 + * @param data + */ +export function editCmd(data) { + const cmds = findAll() + cmds[data.id] = data + localStorage.setItem(API_KEY, JSON.stringify(cmds)) +} + +/** + * 删除快速命令 + * @param cmdId + */ +export function removeCmd(cmdId) { + const cmds = findAll() + delete cmds[cmdId] + localStorage.setItem(API_KEY, JSON.stringify(cmds)) +} + +/** + * 获取设置 + * @returns {{mode: string, visible: boolean}|any} + */ +export function getStting() { + const setting = localStorage.getItem(SETTING_KEY) + if (!setting) { + return { + mode: 'single', + visible: false + } + } + + return JSON.parse(setting) +} + +/** + * 添加设置 + * @param key + * @param value + */ +export function setSetting(key, value) { + const setting = getStting() + setting[key] = value + localStorage.setItem(SETTING_KEY, JSON.stringify(setting)) +} diff --git a/ssh-vue/src/components/fast-cmd/data-form.vue b/ssh-vue/src/components/fast-cmd/data-form.vue new file mode 100644 index 0000000000000000000000000000000000000000..feb3174f1168eb13b29ee39cc257dcba53e69a83 --- /dev/null +++ b/ssh-vue/src/components/fast-cmd/data-form.vue @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + 确 定 + 取 消 + + + + + + + diff --git a/ssh-vue/src/components/fast-cmd/index.vue b/ssh-vue/src/components/fast-cmd/index.vue new file mode 100644 index 0000000000000000000000000000000000000000..8b86092a276da0aa52916b4cd63cab089e387622 --- /dev/null +++ b/ssh-vue/src/components/fast-cmd/index.vue @@ -0,0 +1,273 @@ + + + + + + {{title}} + + + + + + + + + + + 创建 + + + + + handleClick(e, item)" + @command="e => handleCommand(e, item)" + > + {{item.name}} + + 编辑 + 删除 + + + + + + + + + + + diff --git a/ssh-vue/src/components/session-list/data-form.vue b/ssh-vue/src/components/session-list/data-form.vue index 6476ed94e26ce90fd4c7c188e9e21c43b4caaa37..4d9c6d0fdaaaba1ddced9280b15b40e0c7ffecd8 100644 --- a/ssh-vue/src/components/session-list/data-form.vue +++ b/ssh-vue/src/components/session-list/data-form.vue @@ -1,7 +1,7 @@ @@ -40,8 +41,17 @@ + + + { + const height = _this.$refs.fastCmdRef.getHeight() + _this.setTabHeight(height) + setFastCmdSetting('visible', true) + }) + }, + + /** + * 关闭快速命令窗口 + */ + close() { + const height = _this.$refs.fastCmdRef.getHeight() + _this.setTabHeight(0 - height) + setFastCmdSetting('visible', false) + + _this.fastCmd.visible = false + }, + + /** + * 获取快速命令窗口的打开状态 + */ + getStatus() { + return _this.fastCmd.visible + }, + + /** + * 初始化快速命令的设置 + */ + initSetting() { + const setting = getFastCmdSetting() + if (setting.visible) { + this.open() + } + } + } } }, diff --git a/ssh-vue/src/views/ssh/top-tool.vue b/ssh-vue/src/views/ssh/top-tool.vue index 024611ce030ec4aa40faeed084eb4ad1d5a5c32f..cd2156313a0eea112edec967a074b02ef572fe64 100644 --- a/ssh-vue/src/views/ssh/top-tool.vue +++ b/ssh-vue/src/views/ssh/top-tool.vue @@ -12,6 +12,8 @@ 会话列表 撰写窗口 + 快速命令 + 文件传输 - @@ -34,7 +35,9 @@ export default { name: "top-tool", - components: {SessionList}, + components: { + SessionList + }, props: { @@ -71,6 +74,25 @@ getStatus() {} } } + }, + + /** + * 快速命令窗口组件 + */ + fastCmdCom: { + type: Object, + default: () => { + return { + // 打开 + open() {}, + + // 关闭 + close() {}, + + // 获取组件的打开状态 + getStatus() {} + } + } } }, @@ -115,6 +137,17 @@ } else { this.compileCom.open() } + }, + + /** + * 打开快速命令窗口 + */ + openFastCmd() { + if (this.fastCmdCom.getStatus()) { + this.fastCmdCom.close() + } else { + this.fastCmdCom.open() + } } },