├── .browserslistrc ├── .editorconfig ├── .env ├── .eslintrc.js ├── .gitignore ├── LICENSE ├── README.md ├── README.zh-CN.md ├── Screenshots ├── Screenshots1.png ├── Screenshots2.png ├── Screenshots3.png ├── Screenshots4.png ├── Screenshots5.png ├── Screenshots6.png ├── Screenshots7.png └── Screenshots8.png ├── babel.config.js ├── build ├── icon.icns ├── icon.ico ├── icon.png └── notarize.js ├── package.json ├── postcss.config.js ├── public ├── css-vars.css └── index.html ├── src ├── App.vue ├── assets │ └── icon.png ├── background.ts ├── components │ ├── contentDetail │ │ └── index.vue │ ├── customAce │ │ └── index.vue │ └── divider │ │ └── index.vue ├── i18n.ts ├── locales │ ├── en_GB.json │ └── zh_CN.json ├── main.ts ├── router │ └── index.ts ├── shims-vue.d.ts ├── store │ ├── getters.ts │ ├── index.ts │ └── modules │ │ ├── config.ts │ │ ├── keyList.ts │ │ ├── keyMenuAndTabBind.ts │ │ └── serverList.ts ├── styles │ └── styles.css ├── utils │ ├── checkIsJson.ts │ ├── cipherCode.ts │ ├── configStore.ts │ ├── contentLimit.ts │ ├── copyFromTable.ts │ ├── cutsomCommandFormat.ts │ ├── file.ts │ ├── formatCommandField.ts │ ├── formatTime.ts │ ├── log.ts │ ├── redis.ts │ ├── store.ts │ ├── switchColor.ts │ └── theme.ts └── views │ ├── Home │ └── index.vue │ ├── config │ ├── about.vue │ ├── content.vue │ ├── general.vue │ ├── hotKey.vue │ ├── index.vue │ ├── keyMenuFilterSymbol.vue │ ├── keyMenuStatus.vue │ ├── language.vue │ ├── theme.vue │ └── videoShow.vue │ ├── consolePane │ ├── commandMode.vue │ ├── doubleRowTable.vue │ ├── history.vue │ ├── index.ts │ ├── index.vue │ ├── result.vue │ ├── singleRowTable.vue │ └── stringTable.vue │ ├── historyLog │ └── index.vue │ ├── keyMenu │ ├── group.vue │ └── index.vue │ ├── keyTab │ └── index.vue │ ├── monitor │ ├── chart.vue │ ├── chartWithTwoLine.vue │ ├── clientCount.vue │ ├── cpu.vue │ ├── index.vue │ └── memory.vue │ ├── newKeyValue │ ├── hashType.vue │ ├── index.ts │ ├── index.vue │ ├── listType.vue │ ├── setType.vue │ ├── stringType.vue │ ├── topTab.vue │ └── zsetType.vue │ ├── pubAndSub │ ├── index.ts │ ├── index.vue │ ├── publishCom.vue │ ├── subChannelCard.vue │ ├── subContent.vue │ └── subscribeCom.vue │ ├── serverMenu │ ├── addForm.vue │ ├── editForm.vue │ ├── index.ts │ └── index.vue │ ├── serverTab │ ├── emptyPage.vue │ └── index.vue │ ├── valueContent │ ├── hashType.vue │ ├── index.ts │ ├── index.vue │ ├── listType.vue │ ├── setType.vue │ ├── stringType.vue │ ├── topTab.vue │ └── zsetType.vue │ └── videoTutorial │ └── index.vue ├── tailwind.config.js ├── tsconfig.json ├── vue.config.js └── yarn.lock /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /.env: -------------------------------------------------------------------------------- 1 | VUE_APP_I18N_LOCALE=en_GB 2 | VUE_APP_I18N_FALLBACK_LOCALE=en_GB 3 | -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | node: true 5 | }, 6 | extends: [ 7 | 'plugin:vue/vue3-essential', 8 | '@vue/standard', 9 | '@vue/typescript/recommended' 10 | ], 11 | parserOptions: { 12 | ecmaVersion: 2020 13 | }, 14 | rules: { 15 | 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', 16 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off' 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | 25 | #Electron-builder output 26 | /dist_electron -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |
2 |
3 |
7 |
8 |
9 |
10 |
2 |
3 |
7 |
8 |
9 |
10 |
{{ props.serverTab.name }} >
20 | {{ item.command }} 21 |{{ props.cardInfo.isSub ? t('pubAndSub.inSub') : '' }}
14 |{{ t('pubAndSub.emptyMessage') }}
27 |{{ item.time }}
30 |