From 24520bcf0ff59c0f6c9417735255c63a36962a35 Mon Sep 17 00:00:00 2001 From: Frost-ZX <30585462+Frost-ZX@users.noreply.github.com> Date: Tue, 6 Apr 2021 20:51:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E5=B0=8F=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/Tools.vue | 149 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 147 insertions(+), 2 deletions(-) diff --git a/src/views/Tools.vue b/src/views/Tools.vue index 1ca6849..b0f9d49 100644 --- a/src/views/Tools.vue +++ b/src/views/Tools.vue @@ -1,6 +1,25 @@ @@ -9,17 +28,143 @@ export default { name: 'Tools', data() { return { - utils: this.$root.utils + utils: this.$root.utils, + detail: { + show: false, + title: '' + }, + toolList: { + 'calcDownloadTime': { + title: '计算下载用时', + desc: '根据设定的文件大小和下载速度简单计算大约下载完成所需的时间' + }, + 'genLinks': { + title: '生成批量下载链接', + desc: '根据设置,生成有一定规律的用于批量下载的链接' + }, + 'genRandomStr': { + title: '生成随机字符串', + desc: '生成随机组合的字符串,可用于密码' + }, + 'newWindow': { + title: '新窗口(小窗)中打开' + }, + 'runjs': { + title: '执行 JavaScript' + }, + 'simpleCalc': { + title: '简易计算' + }, + 'timestampConvert': { + title: 'Unix 时间戳转换', + desc: 'Unix 时间戳转时间 / 时间转 Unix 时间戳' + }, + } }; }, + methods: { + // 打开工具 + openDetail(toolName) { + // 当前工具信息 + var info = this.toolList[toolName]; + + // 若不存在 + if (info === undefined) { + console.log('[打开工具] 不存在该工具:' + toolName); + return; + } + + // 更新页面标题 + this.utils.changeTitle(info.title); + // 更新 drawer 标题 + this.detail.title = info.title; + // 路由跳转 + this.$router.push({ + name: 'ToolsDetail', + query: { + name: toolName, + title: info.title + } + }); + // 显示 drawer + this.detail.show = true; + }, + // 关闭工具 + closeDetail(done) { + this.$confirm('是否关闭?').then(() => { + // 关闭 drawer + done(); + // 路由跳转 + this.$router.push({ + name: 'Tools' + }); + // 更新页面标题 + this.utils.changeTitle('小工具'); + }).catch(() => { }); + } + }, beforeRouteEnter(to, from, next) { next(vm => { - vm.utils.changeTitle('小工具'); + // 判断进入的路由 + if (vm.$route.name == 'ToolsDetail') { + // 进入:工具内容页面 + vm.openDetail(vm.$route.query.name); + } else { + // 进入:工具列表页面 + vm.utils.changeTitle('小工具'); + } }); } }