From b5a879c9e67dce9f27efb11ccd0eb787c267a45f Mon Sep 17 00:00:00 2001 From: Frost-ZX <30585462+Frost-ZX@users.noreply.github.com> Date: Wed, 10 Nov 2021 00:46:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BC=96=E7=A0=81=E8=BD=AC?= =?UTF-8?q?=E6=8D=A2=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/js/navTools.js | 22 +- src/components/tools/ConvertEncodeDecode.vue | 294 +++++++++++++++++++ src/views/Tools.vue | 24 +- 3 files changed, 319 insertions(+), 21 deletions(-) create mode 100644 src/components/tools/ConvertEncodeDecode.vue diff --git a/src/assets/js/navTools.js b/src/assets/js/navTools.js index c54e190..108deff 100644 --- a/src/assets/js/navTools.js +++ b/src/assets/js/navTools.js @@ -43,7 +43,7 @@ let navTools = { title: '生成随机字符串', desc: '生成随机组合的字符串,可用于密码', component: 'GenRandomStr', - update: '20210504', + update: '2021-05-04', version: '1', enabled: true }, @@ -52,18 +52,20 @@ let navTools = { conversion: { title: '转换', list: { + 'encode-decode': { + title: '编码转换', + desc: 'HTML / URI 编码、解码', + component: 'ConvertEncodeDecode', + update: '2021-11-10', + version: '1', + enabled: true + }, 'text-structure': { title: '文本结构转换', desc: '横排、竖排、倒序等', component: 'ConvertTextStructure', enabled: false }, - 'uri': { - title: 'URI 编码转换', - desc: 'URI 编码、解码', - component: 'ConvertURI', - enabled: false - }, 'timestamp': { title: 'Unix 时间戳转换', desc: 'Unix 时间戳转时间 / 时间转 Unix 时间戳', @@ -100,14 +102,14 @@ let navTools = { 'new-window': { title: '新窗口(小窗)中打开', component: 'OtherNewWindow', - update: '20210503', + update: '2021-05-03', version: '1', enabled: true }, 'run-js': { title: '执行 JavaScript', component: 'OtherRunJS', - update: '20210614', + update: '2021-06-14', version: '2', enabled: true }, @@ -115,7 +117,7 @@ let navTools = { title: 'WebSocket', desc: 'WebSocket 测试工具', component: 'OtherWebSocket', - update: '20211108', + update: '2021-11-08', version: '2', enabled: true }, diff --git a/src/components/tools/ConvertEncodeDecode.vue b/src/components/tools/ConvertEncodeDecode.vue new file mode 100644 index 0000000..f760813 --- /dev/null +++ b/src/components/tools/ConvertEncodeDecode.vue @@ -0,0 +1,294 @@ + + + + + diff --git a/src/views/Tools.vue b/src/views/Tools.vue index 8aa0f20..9bf7561 100644 --- a/src/views/Tools.vue +++ b/src/views/Tools.vue @@ -98,15 +98,18 @@ export default { * @param {string} toolName 工具名称 */ detailOpen(toolCatrgory, toolName) { - var vm = this; // 当前工具信息 - var info = {}; + var info = { + title: '', + update: '', + version: '', + }; // 错误提示 var errMsg = `无法打开该工具(分类:${toolCatrgory} 名称:${toolName})`; try { - info = vm.toolList[toolCatrgory]['list'][toolName]; + info = this.toolList[toolCatrgory]['list'][toolName]; if (info === undefined) { throw new Error(errMsg); @@ -115,7 +118,7 @@ export default { } catch (err) { console.warn('[打开工具]', err); - vm.$message({ + this.$message({ message: errMsg, type: 'warning' }); @@ -125,7 +128,7 @@ export default { // 禁用 if (!info.enabled) { - vm.$message({ + this.$message({ message: '该工具未启用', type: 'warning' }); @@ -133,12 +136,12 @@ export default { } // 更新页面标题 - vm.utils.changeTitle(info.title); + this.utils.changeTitle(info.title); // 更新 drawer 标题 - vm.detail.title = `${info.title} [${info.version}][${info.update}]`; + this.detail.title = `${info.title} [${info.version || '未知'}][${info.update || '未知'}]`; // 路由跳转 // 注:当前路由相同时也进行跳转,以更新 query - vm.$router.push({ + this.$router.push({ name: 'ToolsDetail', params: { category: toolCatrgory, @@ -148,15 +151,14 @@ export default { console.log('[路由跳转]', err.name); }); // 显示 drawer - vm.detail.show = true; + this.detail.show = true; }, /** * 打开工具(新标签页) */ detailOpenNewTab() { - var url = window.location.href; - + const url = window.location.href; window.open(url, '_blank'); },