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');
},