Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe129d3f9f | ||
|
|
1dba247410 | ||
|
|
b235935fd3 | ||
|
|
92347aa62d | ||
|
|
49be0ddcbc | ||
|
|
68951056b1 | ||
|
|
4d72590f6f | ||
|
|
4bb328e5f6 | ||
|
|
de2ae48d58 |
@@ -1,12 +1,12 @@
|
|||||||
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
|
# 变量必须以 VITE_ 为前缀才能暴露给外部读取
|
||||||
NODE_ENV = 'development'
|
NODE_ENV = 'development'
|
||||||
# 网站名称
|
# 网站名称
|
||||||
VITE_APP_TITLE = '工具坊'
|
VITE_APP_TITLE = 'Tools-Web'
|
||||||
# 网站域名
|
# 简短描述
|
||||||
VITE_APP_WEBSITE = 'xxx.xxx.com'
|
VITE_APP_DESC = '一个轻量的工具集合站'
|
||||||
# base api
|
# base api
|
||||||
VITE_APP_BASE_API = '/v1'
|
VITE_APP_BASE_API = '/v1'
|
||||||
# 服务端地址: https://xxx.xxx.com
|
# 服务端地址: https://xxx.xxx.com; 使用mock时不需要填写
|
||||||
VITE_SERVE = ''
|
VITE_SERVE = ''
|
||||||
# 自定义启动host
|
# 自定义启动host
|
||||||
VITE_HOST = '127.0.0.1'
|
VITE_HOST = '127.0.0.1'
|
||||||
|
|||||||
@@ -8,32 +8,7 @@
|
|||||||
|
|
||||||
免费开源的工具站,目前已开发数十种工具,对平板和手机适配进行了响应式设计,同时为了让seo更为友好做了ssr处理,搭建简单使用方便
|
免费开源的工具站,目前已开发数十种工具,对平板和手机适配进行了响应式设计,同时为了让seo更为友好做了ssr处理,搭建简单使用方便
|
||||||
|
|
||||||
已有工具:
|

|
||||||
- 时间戳转换
|
|
||||||
- MD5在线加密
|
|
||||||
- Json在线转换
|
|
||||||
- 正则测试工具
|
|
||||||
- Unicode转中文
|
|
||||||
- IP查询
|
|
||||||
- 常用进制转换
|
|
||||||
- 在线图片处理
|
|
||||||
- 字数统计
|
|
||||||
- 随机密码生成
|
|
||||||
- URL编码/解码
|
|
||||||
- UUID生成器
|
|
||||||
- 手持弹幕
|
|
||||||
- ASCII码表
|
|
||||||
- 单位换算
|
|
||||||
- 色板
|
|
||||||
- 二维码生成
|
|
||||||
- 帮我决定
|
|
||||||
- 摩斯电码
|
|
||||||
- 生成随机数
|
|
||||||
- 数字转金额大写
|
|
||||||
- 文本对比
|
|
||||||
- markdown编辑器
|
|
||||||
- 文本转图片
|
|
||||||
- 网站favicon获取
|
|
||||||
|
|
||||||
# 快速使用
|
# 快速使用
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
})();
|
})();
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
<body style="background-color: var(--base-gray)">
|
<body class="bg-[--base-gray]">
|
||||||
<!--[if lt IE 9]>
|
<!--[if lt IE 9]>
|
||||||
<div class="notice chromeframe">您的浏览器版本<strong>很旧很旧</strong>,为了正常地访问网站,请升级您的浏览器</div>
|
<div class="notice chromeframe">您的浏览器版本<strong>很旧很旧</strong>,为了正常地访问网站,请升级您的浏览器</div>
|
||||||
<![endif]-->
|
<![endif]-->
|
||||||
|
|||||||
@@ -1,307 +1,16 @@
|
|||||||
//获取tools
|
//获取tools
|
||||||
function getTools() {
|
function getTools() {
|
||||||
return [
|
let tools = [] as any[]
|
||||||
{
|
let toolsCate = getToolsCate()
|
||||||
id: 1,
|
for (let item in toolsCate) {
|
||||||
title: '时间戳转换',
|
for (let _item in toolsCate[item].list) {
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/Time.png',
|
tools.push(toolsCate[item].list[_item])
|
||||||
desc: '在线时间戳转换工具以及获取当前时间戳',
|
}
|
||||||
url: '/timetran',
|
}
|
||||||
cateId: 2,
|
return tools
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'MD5在线加密',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/Password%20fishing.png',
|
|
||||||
desc: 'MD5在线加密,长度包含32位、16位',
|
|
||||||
url: '/MD5',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'Json在线转换',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/json.png',
|
|
||||||
desc: '在线编辑json, 语法检查',
|
|
||||||
url: '/json',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '正则测试工具',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/reg.png',
|
|
||||||
desc: '正则表达式测试工具, 常用正则表达式',
|
|
||||||
url: '/reg',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'Unicode转中文',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/union.png',
|
|
||||||
desc: 'Unicode和中文的相互转换',
|
|
||||||
url: '/unicode',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '字数统计',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/ico_%E6%95%B0%E6%8D%AE%E7%BB%9F%E8%AE%A1_%E5%B7%A5%E4%BD%9C%E9%87%8F%E7%BB%9F%E8%AE%A1.png',
|
|
||||||
desc: '在线统计字符串的字数、段落、标点符号数量',
|
|
||||||
url: '/wordCount',
|
|
||||||
cateId: 3,
|
|
||||||
cate: '文本处理',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'IP查询',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/IP.png',
|
|
||||||
desc: '在线查询ip地址、ip归属地',
|
|
||||||
url: '/ip',
|
|
||||||
cateId: 6,
|
|
||||||
cate: '查询相关',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '常用进制转换',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2.png',
|
|
||||||
desc: '在线进制转换工具,可在2到64进制之间相互转换',
|
|
||||||
url: '/scaletran',
|
|
||||||
cateId: 4,
|
|
||||||
cate: '教育学术',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '在线图片处理',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/img.png',
|
|
||||||
desc: '在线图片裁剪,标注,滤镜,画等操作',
|
|
||||||
url: '/signimage',
|
|
||||||
cateId: 5,
|
|
||||||
cate: '图片处理',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '随机密码生成',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/keywords.png',
|
|
||||||
desc: '密码生成器、随机字符串生成,批量生成',
|
|
||||||
url: '/random_password',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'URL编码/解码',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/url.png',
|
|
||||||
desc: 'URL在线编码解码工具(UrlEncode编码 和 UrlDecode解码)',
|
|
||||||
url: '/urlencode',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'UUID生成器',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E7%BA%BF%E6%80%A7-%E7%94%9F%E6%88%90.png',
|
|
||||||
desc: '批量生成UUID',
|
|
||||||
url: '/uuid',
|
|
||||||
cateId: 2,
|
|
||||||
cate: '开发运维',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '手持弹幕',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E5%BC%B9%E5%B9%95.png',
|
|
||||||
desc: '手持滚动弹幕',
|
|
||||||
url: '/barrage',
|
|
||||||
cateId: 7,
|
|
||||||
cate: '其他',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'ASCII码表',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/icon_%E7%BC%96%E7%A0%81%E5%AF%B9%E7%85%A7.png',
|
|
||||||
desc: 'ASCII码表,控制代码、标准ASCII字符和非标准ASCII字符对照表',
|
|
||||||
url: '/ascii',
|
|
||||||
cateId: 4,
|
|
||||||
cate: '教育学术'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '单位换算',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E5%8D%95%E4%BD%8D%E6%8D%A2%E7%AE%97.png',
|
|
||||||
desc: '在线重量、长度、面积、时间、角度、速度、温度、压力、热量、功率等换算',
|
|
||||||
url: '/unit',
|
|
||||||
cateId: 4,
|
|
||||||
cate: '教育学术'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '色板',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E8%B0%83%E8%89%B2%E6%9D%BF.png',
|
|
||||||
desc: '包含纯色、渐变与阶梯色和常用色彩组合',
|
|
||||||
url: '/palettes',
|
|
||||||
cateId: 7,
|
|
||||||
cate: '其他工具'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '二维码生成',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E4%BA%8C%E7%BB%B4%E7%A0%81.png',
|
|
||||||
desc: '在线生成带logo、透明、艺术的二维码',
|
|
||||||
url: '/qrcode',
|
|
||||||
cateId: 5,
|
|
||||||
cate: '图片处理'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '帮我决定',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/choose.png',
|
|
||||||
desc: '选择困难,难以决定,今天吃什么,现在做什么,自定义选项都给你安排的明明白白',
|
|
||||||
url: '/decision',
|
|
||||||
cateId: 9,
|
|
||||||
cate: '选择随机'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '摩斯电码',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/medium.png',
|
|
||||||
desc: '支持中文的摩斯电码编码解码',
|
|
||||||
url: '/morse',
|
|
||||||
cateId: 4,
|
|
||||||
cate: '教育学术'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '生成随机数',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/randomnum.png',
|
|
||||||
desc: '可定制范围内进行随机数字,可用于抽奖、点名等用途',
|
|
||||||
url: '/random',
|
|
||||||
cateId: 9,
|
|
||||||
cate: '选择随机'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '数字转金额大写',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/text%20recognition.png',
|
|
||||||
desc: '在线数字一键转换成人民币大写,中文大写转换数字',
|
|
||||||
url: '/numberToChinese',
|
|
||||||
cateId: 7,
|
|
||||||
cate: '其他工具'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '文本对比',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/diff.png',
|
|
||||||
desc: '文本差异比对支持中文、英文、代码比对',
|
|
||||||
url: '/diff',
|
|
||||||
cateId: 3,
|
|
||||||
cate: '文本处理'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'markdown编辑器',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/file-markdown-fill.png',
|
|
||||||
desc: '在线创建或编辑markdown, 实时预览,导出markdown',
|
|
||||||
url: '/markdown',
|
|
||||||
cateId: 3,
|
|
||||||
cate: '文本处理'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '文本转图片',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/text_to_img.png',
|
|
||||||
desc: '把文本转换成图片,生成长图,具有超多个性文字排版',
|
|
||||||
url: '/textToImg',
|
|
||||||
cateId: 5,
|
|
||||||
cate: '图片处理'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '网站favicon获取',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/IP.png',
|
|
||||||
desc: '获取网站logo、icon、favicon、标题、关键词、描述等信息',
|
|
||||||
url: '/webInfo',
|
|
||||||
cateId: 6,
|
|
||||||
cate: '查询相关',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '柱状图',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线制作柱状图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
|
||||||
url: '/bar',
|
|
||||||
cateId: 8,
|
|
||||||
cate: '数据图表',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '折线图',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线制作柱状图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
|
||||||
url: '/line',
|
|
||||||
cateId: 8,
|
|
||||||
cate: '数据图表',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '饼图',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线制作柱状图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
|
||||||
url: '/pie',
|
|
||||||
cateId: 8,
|
|
||||||
cate: '数据图表',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '散点图',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线制作柱状图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
|
||||||
url: '/scatter',
|
|
||||||
cateId: 8,
|
|
||||||
cate: '数据图表',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '抛硬币',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线抛硬币,选择困难那么交给硬币来帮你选择吧',
|
|
||||||
url: '/coin',
|
|
||||||
cateId: 9,
|
|
||||||
cate: '选择随机',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '投骰子',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '在线投骰子,可自定义骰子数量,简单好用的骰子工具',
|
|
||||||
url: '/dice',
|
|
||||||
cateId: 9,
|
|
||||||
cate: '选择随机',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '文本去重',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '可以删除或去除文本或字符串中的重复行',
|
|
||||||
url: '/textRemoveDuplicate',
|
|
||||||
cateId: 3,
|
|
||||||
cate: '文本处理',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '图片分割',
|
|
||||||
logo: '/images/logo/bar.png',
|
|
||||||
desc: '将图片分割成四宫格、九宫格、十六宫格,支持自定义行与列',
|
|
||||||
url: '/imgCut',
|
|
||||||
cateId: 5,
|
|
||||||
cate: '图片处理',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取tools分类已经对应的工具
|
//获取tools分类与对应的工具
|
||||||
function getToolsCate() {
|
function getToolsCate() {
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@@ -312,7 +21,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '随机密码生成',
|
title: '随机密码生成',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/keywords.png',
|
logo: '/images/logo/keywords.png',
|
||||||
desc: '密码生成器、随机字符串生成,批量生成',
|
desc: '密码生成器、随机字符串生成,批量生成',
|
||||||
url: '/random_password',
|
url: '/random_password',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -321,7 +30,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'URL编码/解码',
|
title: 'URL编码/解码',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/url.png',
|
logo: '/images/logo/url.png',
|
||||||
desc: 'URL在线编码解码工具(UrlEncode编码 和 UrlDecode解码)',
|
desc: 'URL在线编码解码工具(UrlEncode编码 和 UrlDecode解码)',
|
||||||
url: '/urlencode',
|
url: '/urlencode',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -330,7 +39,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'UUID生成器',
|
title: 'UUID生成器',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E7%BA%BF%E6%80%A7-%E7%94%9F%E6%88%90.png',
|
logo: '/images/logo/uuid.png',
|
||||||
desc: '批量生成UUID',
|
desc: '批量生成UUID',
|
||||||
url: '/uuid',
|
url: '/uuid',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -339,7 +48,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '时间戳转换',
|
title: '时间戳转换',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/Time.png',
|
logo: '/images/logo/Time.png',
|
||||||
desc: '在线时间戳转换工具以及获取当前时间戳',
|
desc: '在线时间戳转换工具以及获取当前时间戳',
|
||||||
url: '/timetran',
|
url: '/timetran',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -348,7 +57,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'MD5在线加密',
|
title: 'MD5在线加密',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/Password%20fishing.png',
|
logo: '/images/logo/md5.png',
|
||||||
desc: 'MD5在线加密,长度包含32位、16位',
|
desc: 'MD5在线加密,长度包含32位、16位',
|
||||||
url: '/MD5',
|
url: '/MD5',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -357,7 +66,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'Json在线转换',
|
title: 'Json在线转换',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/json.png',
|
logo: '/images/logo/json.png',
|
||||||
desc: '在线编辑json, 语法检查',
|
desc: '在线编辑json, 语法检查',
|
||||||
url: '/json',
|
url: '/json',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -366,7 +75,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '正则测试工具',
|
title: '正则测试工具',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/reg.png',
|
logo: '/images/logo/reg.png',
|
||||||
desc: '正则表达式测试工具, 常用正则表达式',
|
desc: '正则表达式测试工具, 常用正则表达式',
|
||||||
url: '/reg',
|
url: '/reg',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -375,7 +84,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'Unicode转中文',
|
title: 'Unicode转中文',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/union.png',
|
logo: '/images/logo/union.png',
|
||||||
desc: 'Unicode和中文的相互转换',
|
desc: 'Unicode和中文的相互转换',
|
||||||
url: '/unicode',
|
url: '/unicode',
|
||||||
cateId: 2,
|
cateId: 2,
|
||||||
@@ -391,7 +100,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '文本对比',
|
title: '文本对比',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/diff.png',
|
logo: '/images/logo/diff.png',
|
||||||
desc: '文本差异比对支持中文、英文、代码比对',
|
desc: '文本差异比对支持中文、英文、代码比对',
|
||||||
url: '/diff',
|
url: '/diff',
|
||||||
cateId: 3,
|
cateId: 3,
|
||||||
@@ -400,7 +109,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'markdown编辑器',
|
title: 'markdown编辑器',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/file-markdown-fill.png',
|
logo: '/images/logo/file-markdown-fill.png',
|
||||||
desc: '在线创建或编辑markdown, 实时预览,导出markdown',
|
desc: '在线创建或编辑markdown, 实时预览,导出markdown',
|
||||||
url: '/markdown',
|
url: '/markdown',
|
||||||
cateId: 3,
|
cateId: 3,
|
||||||
@@ -409,7 +118,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '字数统计',
|
title: '字数统计',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/ico_%E6%95%B0%E6%8D%AE%E7%BB%9F%E8%AE%A1_%E5%B7%A5%E4%BD%9C%E9%87%8F%E7%BB%9F%E8%AE%A1.png',
|
logo: '/images/logo/wordCount.png',
|
||||||
desc: '在线统计字符串的字数、段落、标点符号数量',
|
desc: '在线统计字符串的字数、段落、标点符号数量',
|
||||||
url: '/wordCount',
|
url: '/wordCount',
|
||||||
cateId: 3,
|
cateId: 3,
|
||||||
@@ -418,7 +127,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '文本去重',
|
title: '文本去重',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/textRemoveDuplicate.png',
|
||||||
desc: '可以删除或去除文本或字符串中的重复行',
|
desc: '可以删除或去除文本或字符串中的重复行',
|
||||||
url: '/textRemoveDuplicate',
|
url: '/textRemoveDuplicate',
|
||||||
cateId: 3,
|
cateId: 3,
|
||||||
@@ -434,7 +143,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '单位换算',
|
title: '单位换算',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E5%8D%95%E4%BD%8D%E6%8D%A2%E7%AE%97.png',
|
logo: '/images/logo/unit.png',
|
||||||
desc: '在线重量、长度、面积、时间、角度、速度、温度、压力、热量、功率等换算',
|
desc: '在线重量、长度、面积、时间、角度、速度、温度、压力、热量、功率等换算',
|
||||||
url: '/unit',
|
url: '/unit',
|
||||||
cateId: 4,
|
cateId: 4,
|
||||||
@@ -443,7 +152,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '摩斯电码',
|
title: '摩斯电码',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/medium.png',
|
logo: '/images/logo/medium.png',
|
||||||
desc: '支持中文的摩斯电码编码解码',
|
desc: '支持中文的摩斯电码编码解码',
|
||||||
url: '/morse',
|
url: '/morse',
|
||||||
cateId: 4,
|
cateId: 4,
|
||||||
@@ -452,7 +161,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '常用进制转换',
|
title: '常用进制转换',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E8%BF%9B%E5%88%B6%E8%BD%AC%E6%8D%A2.png',
|
logo: '/images/logo/scaletran.png',
|
||||||
desc: '在线进制转换工具,可在2到64进制之间相互转换',
|
desc: '在线进制转换工具,可在2到64进制之间相互转换',
|
||||||
url: '/scaletran',
|
url: '/scaletran',
|
||||||
cateId: 4,
|
cateId: 4,
|
||||||
@@ -461,7 +170,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: 'ASCII码表',
|
title: 'ASCII码表',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/icon_%E7%BC%96%E7%A0%81%E5%AF%B9%E7%85%A7.png',
|
logo: '/images/logo/ascii.png',
|
||||||
desc: 'ASCII码表,控制代码、标准ASCII字符和非标准ASCII字符对照表',
|
desc: 'ASCII码表,控制代码、标准ASCII字符和非标准ASCII字符对照表',
|
||||||
url: '/ascii',
|
url: '/ascii',
|
||||||
cateId: 4,
|
cateId: 4,
|
||||||
@@ -477,7 +186,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '二维码生成',
|
title: '二维码生成',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E4%BA%8C%E7%BB%B4%E7%A0%81.png',
|
logo: '/images/logo/qrcode.png',
|
||||||
desc: '在线生成带logo、透明、艺术的二维码',
|
desc: '在线生成带logo、透明、艺术的二维码',
|
||||||
url: '/qrcode',
|
url: '/qrcode',
|
||||||
cateId: 5,
|
cateId: 5,
|
||||||
@@ -486,7 +195,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '在线图片处理',
|
title: '在线图片处理',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/img.png',
|
logo: '/images/logo/img.png',
|
||||||
desc: '在线图片裁剪,标注,滤镜,画等操作',
|
desc: '在线图片裁剪,标注,滤镜,画等操作',
|
||||||
url: '/signimage',
|
url: '/signimage',
|
||||||
cateId: 5,
|
cateId: 5,
|
||||||
@@ -495,7 +204,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '文本转图片',
|
title: '文本转图片',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/text_to_img.png',
|
logo: '/images/logo/text_to_img.png',
|
||||||
desc: '把文本转换成图片,生成长图,具有超多个性文字排版',
|
desc: '把文本转换成图片,生成长图,具有超多个性文字排版',
|
||||||
url: '/textToImg',
|
url: '/textToImg',
|
||||||
cateId: 5,
|
cateId: 5,
|
||||||
@@ -504,7 +213,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '图片分割',
|
title: '图片分割',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/imgCut.png',
|
||||||
desc: '将图片分割成四宫格、九宫格、十六宫格,支持自定义行与列',
|
desc: '将图片分割成四宫格、九宫格、十六宫格,支持自定义行与列',
|
||||||
url: '/imgCut',
|
url: '/imgCut',
|
||||||
cateId: 5,
|
cateId: 5,
|
||||||
@@ -512,31 +221,6 @@ function getToolsCate() {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
|
||||||
id: 6,
|
|
||||||
title: '查询相关',
|
|
||||||
icon: '',
|
|
||||||
list: [
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: 'IP查询',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/IP.png',
|
|
||||||
desc: '在线查询ip地址、ip归属地',
|
|
||||||
url: '/ip',
|
|
||||||
cateId: 6,
|
|
||||||
cate: '查询相关',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
id: 1,
|
|
||||||
title: '网站favicon获取',
|
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/text_to_img.png',
|
|
||||||
desc: '获取网站logo、icon、favicon、标题、关键词、描述等信息',
|
|
||||||
url: '/webInfo',
|
|
||||||
cateId: 6,
|
|
||||||
cate: '查询相关',
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
id: 8,
|
id: 8,
|
||||||
title: '数据图表',
|
title: '数据图表',
|
||||||
@@ -553,7 +237,7 @@ function getToolsCate() {
|
|||||||
},{
|
},{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '折线图',
|
title: '折线图',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/line.png',
|
||||||
desc: '在线制作折线图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
desc: '在线制作折线图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
||||||
url: '/line',
|
url: '/line',
|
||||||
cateId: 8,
|
cateId: 8,
|
||||||
@@ -562,7 +246,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '饼图',
|
title: '饼图',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/pie.png',
|
||||||
desc: '在线制作饼图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
desc: '在线制作饼图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
||||||
url: '/pie',
|
url: '/pie',
|
||||||
cateId: 8,
|
cateId: 8,
|
||||||
@@ -571,7 +255,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '散点图',
|
title: '散点图',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/scatter.png',
|
||||||
desc: '在线制作散点图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
desc: '在线制作散点图,像做表格一样制作可视化图表,支持导出静态或动态图表',
|
||||||
url: '/scatter',
|
url: '/scatter',
|
||||||
cateId: 8,
|
cateId: 8,
|
||||||
@@ -587,7 +271,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '生成随机数',
|
title: '生成随机数',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/randomnum.png',
|
logo: '/images/logo/random.png',
|
||||||
desc: '可定制范围内进行随机数字,可用于抽奖、点名等用途',
|
desc: '可定制范围内进行随机数字,可用于抽奖、点名等用途',
|
||||||
url: '/random',
|
url: '/random',
|
||||||
cateId: 9,
|
cateId: 9,
|
||||||
@@ -596,7 +280,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '帮我决定',
|
title: '帮我决定',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/choose.png',
|
logo: '/images/logo/choose.png',
|
||||||
desc: '选择困难,难以决定,今天吃什么,现在做什么,自定义选项都给你安排的明明白白',
|
desc: '选择困难,难以决定,今天吃什么,现在做什么,自定义选项都给你安排的明明白白',
|
||||||
url: '/decision',
|
url: '/decision',
|
||||||
cateId: 9,
|
cateId: 9,
|
||||||
@@ -605,7 +289,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '抛硬币',
|
title: '抛硬币',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/coin.png',
|
||||||
desc: '在线抛硬币,选择困难那么交给硬币来帮你选择吧',
|
desc: '在线抛硬币,选择困难那么交给硬币来帮你选择吧',
|
||||||
url: '/coin',
|
url: '/coin',
|
||||||
cateId: 9,
|
cateId: 9,
|
||||||
@@ -614,7 +298,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '投骰子',
|
title: '投骰子',
|
||||||
logo: '/images/logo/bar.png',
|
logo: '/images/logo/dice.png',
|
||||||
desc: '在线投骰子,可自定义骰子数量,简单好用的骰子工具',
|
desc: '在线投骰子,可自定义骰子数量,简单好用的骰子工具',
|
||||||
url: '/dice',
|
url: '/dice',
|
||||||
cateId: 9,
|
cateId: 9,
|
||||||
@@ -622,6 +306,31 @@ function getToolsCate() {
|
|||||||
},
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 6,
|
||||||
|
title: '查询相关',
|
||||||
|
icon: '',
|
||||||
|
list: [
|
||||||
|
// {
|
||||||
|
// id: 1,
|
||||||
|
// title: 'IP查询',
|
||||||
|
// logo: '/images/logo/IP.png',
|
||||||
|
// desc: '在线查询ip地址、ip归属地',
|
||||||
|
// url: '/ip',
|
||||||
|
// cateId: 6,
|
||||||
|
// cate: '查询相关',
|
||||||
|
// },
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: '网站favicon获取',
|
||||||
|
logo: '/images/logo/text_to_img.png',
|
||||||
|
desc: '获取网站logo、icon、favicon、标题、关键词、描述等信息',
|
||||||
|
url: '/webInfo',
|
||||||
|
cateId: 6,
|
||||||
|
cate: '查询相关',
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: 7,
|
id: 7,
|
||||||
title: '其他工具',
|
title: '其他工具',
|
||||||
@@ -630,7 +339,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '数字转金额大写',
|
title: '数字转金额大写',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/text%20recognition.png',
|
logo: '/images/logo/numberToChinese.png',
|
||||||
desc: '在线数字一键转换成人民币大写,中文大写转换数字',
|
desc: '在线数字一键转换成人民币大写,中文大写转换数字',
|
||||||
url: '/numberToChinese',
|
url: '/numberToChinese',
|
||||||
cateId: 7,
|
cateId: 7,
|
||||||
@@ -639,7 +348,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '手持弹幕',
|
title: '手持弹幕',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E5%BC%B9%E5%B9%95.png',
|
logo: '/images/logo/dm.png',
|
||||||
desc: '手持滚动弹幕',
|
desc: '手持滚动弹幕',
|
||||||
url: '/barrage',
|
url: '/barrage',
|
||||||
cateId: 7,
|
cateId: 7,
|
||||||
@@ -648,7 +357,7 @@ function getToolsCate() {
|
|||||||
{
|
{
|
||||||
id: 1,
|
id: 1,
|
||||||
title: '色板',
|
title: '色板',
|
||||||
logo: 'https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/icon/%E8%B0%83%E8%89%B2%E6%9D%BF.png',
|
logo: '/images/logo/palettes.png',
|
||||||
desc: '包含纯色、渐变与阶梯色和常用色彩组合',
|
desc: '包含纯色、渐变与阶梯色和常用色彩组合',
|
||||||
url: '/palettes',
|
url: '/palettes',
|
||||||
cateId: 7,
|
cateId: 7,
|
||||||
@@ -672,7 +381,8 @@ export default [
|
|||||||
if (title != '') {
|
if (title != '') {
|
||||||
list = list.filter(item => {
|
list = list.filter(item => {
|
||||||
let tmpValue = item.title.toLowerCase()
|
let tmpValue = item.title.toLowerCase()
|
||||||
return tmpValue.indexOf(title.toLowerCase()) !== -1;
|
let tmpDesc = item.desc.toLowerCase()
|
||||||
|
return tmpValue.indexOf(title.toLowerCase()) !== -1 || tmpDesc.indexOf(title.toLowerCase()) !== -1;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
//分类筛选
|
//分类筛选
|
||||||
|
|||||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 3.7 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 7.1 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 4.8 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 3.5 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 987 KiB |
@@ -23,7 +23,7 @@ const componentStore = useComponentStore()
|
|||||||
v-model="componentStore.leftComDrawer"
|
v-model="componentStore.leftComDrawer"
|
||||||
direction="ltr"
|
direction="ltr"
|
||||||
>
|
>
|
||||||
<Left bgColor="#fff"></Left>
|
<Left></Left>
|
||||||
</el-drawer>
|
</el-drawer>
|
||||||
|
|
||||||
<!-- right -->
|
<!-- right -->
|
||||||
|
|||||||
@@ -1,34 +1,28 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
// import { ref } from 'vue'
|
|
||||||
// import { copy } from '@/utils/string'
|
|
||||||
// const info = reactive({
|
|
||||||
// title: "关于本站",
|
|
||||||
// })
|
|
||||||
const feedBackUrl = import.meta.env.VITE_FEEDBACK_URL
|
|
||||||
//copy
|
|
||||||
// const copyRes = async (resStr: string) => {
|
|
||||||
// copy(resStr)
|
|
||||||
// }
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="flex flex-col mt-3 flex-1">
|
<div class="flex flex-col mt-8 flex-1 items-center bg-white rounded-md p-10">
|
||||||
<div class="bg-white rounded-md p-5">
|
<div class="p-5 w-2/3">
|
||||||
<br>
|
<h1 class="text-2xl font-bold">关于 Tools-Web</h1>
|
||||||
<p>本项目基于 <el-link class="" href="https://github.com/taoran1401/tools-web" target="_blank" type="primary">tools-web</el-link> 构建</p>
|
<p class="mt-6">
|
||||||
<br>
|
<el-text><el-link href="https://github.com/taoran1401/tools-web" target="_blank" type="primary">Tools-Web</el-link> 是一款免费开源的轻量工具集合站,包含开发、文本、媒体、图表、生活、查询等实用工具;如果对您有帮助,请将其分享给您的朋友,并且添加到收藏夹中!顺便再点个⭐️吧!</el-text>
|
||||||
<p class=""><span class="bg-gray-200 p-1">ctrl + D</span>收藏本站,以便以后使用</p>
|
</p>
|
||||||
<br>
|
|
||||||
<p class="font-bold">联系作者/问题反馈</p>
|
<h1 class="text-2xl font-bold mt-6 mb-6">技术</h1>
|
||||||
<br>
|
<p>
|
||||||
<p>反馈中心:<el-link :href="feedBackUrl">{{ feedBackUrl }}</el-link></p>
|
<el-text>主要基于Vite + Vue + ElementPlus + Typescript + TailwindCss开发,某些工具使用了第三方开源库,您可以在仓库的 <el-link href="https://github.com/taoran1401/tools-web/blob/master/package.json" target="_blank" type="primary">package.json</el-link> 文件中找到完整的列表。</el-text>
|
||||||
<br>
|
</p>
|
||||||
<p>邮箱:taoran0796@163.com</p>
|
<h1 class="text-2xl font-bold mt-6 mb-6">发现了 Bug?</h1>
|
||||||
<br>
|
<p>
|
||||||
|
<el-text>如果您发现了 Bug,或者某些功能未能按预期工作,请在 GitHub 仓库的 <el-link type="primary" target="_blank" href="https://github.com/taoran1401/tools-web/issues/new" class="">issues</el-link> 中提交错误报告。</el-text>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
.title{
|
||||||
|
/* rgb(51, 54, 57) */
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -1,12 +1,12 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref } from 'vue'
|
import { ref } from 'vue'
|
||||||
const beianNo = ref('粤ICP备19038804号-1')
|
const beianNo = ref('粤ICP备19038804号-1')
|
||||||
const copyright = ref('ranblogs.com')
|
const appDesc = ref(import.meta.env.VITE_APP_DESC || '')
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<div class="bg-white w-full rounded-2xl z-10 p-5 text-center">
|
<div class="w-full rounded-2xl z-10 p-5 text-center">
|
||||||
Copyright © 2023 · {{ copyright }} <a href="https://beian.miit.gov.cn/" target="_blank">{{ beianNo }}</a>
|
{{ appDesc }} © 2024 <a href="https://github.com/taoran1401/tools-web" target="_blank" class="text-blue-700">Tools-Web</a> <a href="https://xy.ranblogs.com/tools_web.html" target="_blank">隐私权政策</a> <a href="https://beian.miit.gov.cn/" target="_blank">{{ beianNo }}</a>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ const options = ref<ToolsInfo[]>([])
|
|||||||
const loginRef = ref()
|
const loginRef = ref()
|
||||||
const userPopRef = ref()
|
const userPopRef = ref()
|
||||||
const defAvatar = ref(defaultAvatar)
|
const defAvatar = ref(defaultAvatar)
|
||||||
const feedBackUrl = import.meta.env.VITE_FEEDBACK_URL
|
// const feedBackUrl = import.meta.env.VITE_FEEDBACK_URL
|
||||||
//store
|
//store
|
||||||
const toolsStore = useToolsStore()
|
const toolsStore = useToolsStore()
|
||||||
const componentStore = useComponentStore()
|
const componentStore = useComponentStore()
|
||||||
@@ -112,7 +112,7 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<header class="h-20 w-full flex justify-between pt-2 pb-2 c-xs:h-16 c-xs:border-b-[1px] items-center">
|
<header class="h-24 w-full flex justify-between pt-2 pb-2 c-xs:h-16 c-xs:border-b-[1px] items-center">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<Transition name="fold" class="hidden c-sm:block c-md:hidden c-xs:block">
|
<Transition name="fold" class="hidden c-sm:block c-md:hidden c-xs:block">
|
||||||
<svg v-if="!componentStore.leftComDrawer" @click="componentStore.setleftComDrawerStatus(true)" t="1702978210636" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7618" width="30" height="30">
|
<svg v-if="!componentStore.leftComDrawer" @click="componentStore.setleftComDrawerStatus(true)" t="1702978210636" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7618" width="30" height="30">
|
||||||
@@ -133,7 +133,15 @@ onMounted(() => {
|
|||||||
</svg>
|
</svg>
|
||||||
</Transition>
|
</Transition>
|
||||||
|
|
||||||
<div class="md:w-80 c-xs:72">
|
<div class="ml-3 mr-1">
|
||||||
|
<router-link to="/">
|
||||||
|
<svg t="1715590310537" class="icon" viewBox="0 0 1053 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4287" width="25" height="25">
|
||||||
|
<path d="M526.63454 58.067422a21.503527 21.503527 0 0 1-27.501109 0.175539l474.979265 381.50475a31.538506 31.538506 0 1 0 39.496274-49.150919L538.629705 9.004273a41.602742 41.602742 0 0 0-51.988799 0.234052L11.573871 398.671586a31.538506 31.538506 0 1 0 39.993635 48.79984L526.63454 58.067422z" fill="#2c2c2c" p-id="4288"></path><path d="M1013.60897 564.087832L538.629705 182.583083a41.602742 41.602742 0 0 0-51.988799 0.204795L11.573871 572.191883a31.538506 31.538506 0 1 0 39.993635 48.79984l66.763331-54.709653v361.61033A94.644775 94.644775 0 0 0 213.004869 1022.537175H441.732179v-247.275931a15.79851 15.79851 0 0 1 15.739997-15.79851h110.472541c8.68918 0 15.769253 7.080073 15.769253 15.79851v247.275931H812.441281a94.615518 94.615518 0 0 0 94.644775-94.615518V559.465305l66.997383 53.831959a31.538506 31.538506 0 1 0 39.525531-49.209432z m-169.629183 363.804568c0 17.436874-14.101633 31.538506-31.567763 31.538506h-165.591785v-184.198919a78.875522 78.875522 0 0 0-78.875522-78.904778h-110.472541a78.875522 78.875522 0 0 0-78.846265 78.904778v184.198919h-165.591786c-17.46613 0-31.597019-14.130889-31.597019-31.538506V514.527323L512.883986 242.851471l331.095801 265.941578v419.128608z" fill="#2c2c2c" p-id="4289" stroke="black" stroke-width="10"></path>
|
||||||
|
</svg>
|
||||||
|
</router-link>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
<!-- <el-input
|
<!-- <el-input
|
||||||
v-model="searchParam.title"
|
v-model="searchParam.title"
|
||||||
placeholder="搜索工具"
|
placeholder="搜索工具"
|
||||||
@@ -154,12 +162,13 @@ onMounted(() => {
|
|||||||
placeholder="输入关键词搜索,如文本、json、图片等"
|
placeholder="输入关键词搜索,如文本、json、图片等"
|
||||||
:remote-method="searchTools"
|
:remote-method="searchTools"
|
||||||
:loading="loading"
|
:loading="loading"
|
||||||
class="ml-3 mr-3 md:w-80 c-xs:w-60"
|
class="ml-3 mr-3 md:w-[45rem] c-xs:w-60"
|
||||||
|
size="large"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in toolsStore.list"
|
v-for="item in toolsStore.list"
|
||||||
:key="item.id"
|
:key="item.id"
|
||||||
:label="item.title"
|
:label="item.title + ' - ' + item.desc"
|
||||||
:value="item.id"
|
:value="item.id"
|
||||||
@click="optionClick(item.url)"
|
@click="optionClick(item.url)"
|
||||||
>
|
>
|
||||||
@@ -170,9 +179,27 @@ onMounted(() => {
|
|||||||
|
|
||||||
<div class=" w-full md:w-auto flex md:block c-xs:w-auto">
|
<div class=" w-full md:w-auto flex md:block c-xs:w-auto">
|
||||||
<ul class="flex mt-4 flex-col md:flex-row md:mt-0 justify-end items-center c-xs:mt-0">
|
<ul class="flex mt-4 flex-col md:flex-row md:mt-0 justify-end items-center c-xs:mt-0">
|
||||||
<li class="hover:text-blue-500">
|
<li class="ml-3">
|
||||||
<el-link :href="feedBackUrl" size="large" target="_blank">建议/问题</el-link>
|
<router-link to="/about">
|
||||||
|
<el-tooltip
|
||||||
|
class="box-item"
|
||||||
|
effect="dark"
|
||||||
|
content="关于tools-web"
|
||||||
|
placement="bottom"
|
||||||
|
>
|
||||||
|
<svg t="1715594765484" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5578" width="33" height="33"><path d="M511.899716 948.506609c-241.310951 0-437.636339-196.318224-437.636339-437.636339 0-241.323231 196.325387-437.639408 437.636339-437.639408s437.636339 196.316178 437.636339 437.639408C949.536055 752.188384 753.210667 948.506609 511.899716 948.506609zM511.899716 113.944122c-218.866776 0-396.926148 178.064488-396.926148 396.926148 0 218.856543 178.059372 396.926148 396.926148 396.926148 218.868823 0 396.926148-178.069605 396.926148-396.926148C908.825864 292.00861 730.768539 113.944122 511.899716 113.944122zM561.15656 335.324138c-29.853935 0-54.03773-24.189935-54.03773-54.047963 0-29.855982 24.184819-54.047963 54.03773-54.047963 29.838585 0 54.0408 24.191982 54.0408 54.047963C615.19736 311.134203 590.995145 335.324138 561.15656 335.324138zM424.962691 430.321746c0-4.394077 0-8.806573 0-13.19758 42.878576-17.016559 108.943224-10.793834 153.201218-26.418696 1.75804 0 3.510964 0 5.27719 0-21.329794 108.134813-66.391083 206.496028-76.599585 316.955792 2.425236 1.850138 2.086521 1.473561 5.287423 2.623757 33.247218 11.155061 52.320623-66.110697 73.948199-60.727083 21.644973 5.38873-13.548574 43.733037-18.47784 50.193169-19.400862 25.362644-56.465013 68.439742-100.376105 68.657706-31.008224 0.181125-63.159482-19.378349-58.101279-71.301929 5.056156-51.981908 34.219359-124.319423 50.172703-182.263114C472.184179 468.050022 488.801648 429.049776 424.962691 430.321746z" fill="#515151" p-id="5579"></path></svg>
|
||||||
|
</el-tooltip>
|
||||||
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
<li class="ml-3">
|
||||||
|
<a href="https://github.com/taoran1401/tools-web" target="_blank">
|
||||||
|
<svg t="1715594665374" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4334" width="33" height="33"><path d="M512 85.333333C276.266667 85.333333 85.333333 276.266667 85.333333 512a426.410667 426.410667 0 0 0 291.754667 404.821333c21.333333 3.712 29.312-9.088 29.312-20.309333 0-10.112-0.554667-43.690667-0.554667-79.445333-107.178667 19.754667-134.912-26.112-143.445333-50.133334-4.821333-12.288-25.6-50.133333-43.733333-60.288-14.933333-7.978667-36.266667-27.733333-0.554667-28.245333 33.621333-0.554667 57.6 30.933333 65.621333 43.733333 38.4 64.512 99.754667 46.378667 124.245334 35.2 3.754667-27.733333 14.933333-46.378667 27.221333-57.045333-94.933333-10.666667-194.133333-47.488-194.133333-210.688 0-46.421333 16.512-84.778667 43.733333-114.688-4.266667-10.666667-19.2-54.4 4.266667-113.066667 0 0 35.712-11.178667 117.333333 43.776a395.946667 395.946667 0 0 1 106.666667-14.421333c36.266667 0 72.533333 4.778667 106.666666 14.378667 81.578667-55.466667 117.333333-43.690667 117.333334-43.690667 23.466667 58.666667 8.533333 102.4 4.266666 113.066667 27.178667 29.866667 43.733333 67.712 43.733334 114.645333 0 163.754667-99.712 200.021333-194.645334 210.688 15.445333 13.312 28.8 38.912 28.8 78.933333 0 57.045333-0.554667 102.912-0.554666 117.333334 0 11.178667 8.021333 24.490667 29.354666 20.224A427.349333 427.349333 0 0 0 938.666667 512c0-235.733333-190.933333-426.666667-426.666667-426.666667z" fill="#000000" p-id="4335"></path></svg>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<!-- <li class="hover:text-blue-500">
|
||||||
|
<el-link :href="feedBackUrl" size="large" target="_blank">建议/问题</el-link>
|
||||||
|
</li> -->
|
||||||
<li class="ml-3" v-if="userStore.isLogin()">
|
<li class="ml-3" v-if="userStore.isLogin()">
|
||||||
<!-- userStore.avatar -->
|
<!-- userStore.avatar -->
|
||||||
<el-image class="w-10 h-10 cursor-pointer" fit="cover" :src="(userStore.avatar == '' || userStore.avatar == null || userStore.avatar == undefined) ? defAvatar : userStore.avatar" v-popover="userPopRef"></el-image>
|
<el-image class="w-10 h-10 cursor-pointer" fit="cover" :src="(userStore.avatar == '' || userStore.avatar == null || userStore.avatar == undefined) ? defAvatar : userStore.avatar" v-popover="userPopRef"></el-image>
|
||||||
@@ -207,4 +234,17 @@ onMounted(() => {
|
|||||||
transform: translateX(20px);
|
transform: translateX(20px);
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:deep(.el-input__wrapper) {
|
||||||
|
box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
:deep(.el-input__wrapper) {
|
||||||
|
box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
.el-select :deep(.el-input__wrapper){
|
||||||
|
background-color: rgba(46, 51, 56, 0.05);
|
||||||
|
background-color: rgb(255, 255, 255);
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
@@ -3,14 +3,11 @@
|
|||||||
import { onMounted, ref, reactive } from 'vue';
|
import { onMounted, ref, reactive } from 'vue';
|
||||||
import { useToolsStore } from '@/store/modules/tools'
|
import { useToolsStore } from '@/store/modules/tools'
|
||||||
import { useRouter, useRoute } from "vue-router"
|
import { useRouter, useRoute } from "vue-router"
|
||||||
const props = defineProps({
|
|
||||||
bgColor: String,
|
|
||||||
})
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const route = useRoute()
|
const route = useRoute()
|
||||||
|
|
||||||
const appName = ref(import.meta.env.VITE_APP_TITLE || '工具坊')
|
const appName = ref(import.meta.env.VITE_APP_TITLE || '工具坊')
|
||||||
const appNet = ref(import.meta.env.VITE_APP_WEBSITE || '')
|
const appNet = ref(import.meta.env.VITE_APP_DESC || '')
|
||||||
//菜单选中
|
//菜单选中
|
||||||
const defaultActive = ref('collect')
|
const defaultActive = ref('collect')
|
||||||
//默认展开的菜单
|
//默认展开的菜单
|
||||||
@@ -56,8 +53,8 @@ const gotoAbout = () => {
|
|||||||
router.push('about')
|
router.push('about')
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(async () => {
|
||||||
getToolCates()
|
await getToolCates()
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@@ -66,7 +63,7 @@ onMounted(() => {
|
|||||||
<el-scrollbar>
|
<el-scrollbar>
|
||||||
<!-- logo -->
|
<!-- logo -->
|
||||||
<div class="flex justify-center">
|
<div class="flex justify-center">
|
||||||
<router-link class="flex flex-row h-20" to="/">
|
<router-link class="flex flex-row h-24" to="/">
|
||||||
<img class="h-12 w-auto rounded-lg mr-2 mt-auto mb-auto" src="@/assets/logo.png" :alt="appNet">
|
<img class="h-12 w-auto rounded-lg mr-2 mt-auto mb-auto" src="@/assets/logo.png" :alt="appNet">
|
||||||
<div class="flex flex-col mt-auto mb-auto">
|
<div class="flex flex-col mt-auto mb-auto">
|
||||||
<div class="text-2xl">{{ appName }}</div>
|
<div class="text-2xl">{{ appName }}</div>
|
||||||
@@ -81,7 +78,7 @@ onMounted(() => {
|
|||||||
class="w-[200px]"
|
class="w-[200px]"
|
||||||
:default-active="defaultActive"
|
:default-active="defaultActive"
|
||||||
:default-openeds="defaultOpeneds"
|
:default-openeds="defaultOpeneds"
|
||||||
:background-color="props.bgColor ?? '#f5f5fb'"
|
background-color="transparent"
|
||||||
@open="handleOpen"
|
@open="handleOpen"
|
||||||
@close="handleClose"
|
@close="handleClose"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ const attrColor = ref('#5470c6')
|
|||||||
//标题位置
|
//标题位置
|
||||||
const titlePos = ref('center')
|
const titlePos = ref('center')
|
||||||
//标题
|
//标题
|
||||||
const title = ref('然部落在线工具')
|
const title = ref('Tools-Web')
|
||||||
//副标题
|
//副标题
|
||||||
const subTitle = ref('在线图表制作工具')
|
const subTitle = ref('在线图表制作工具')
|
||||||
//显示标题 - 开关
|
//显示标题 - 开关
|
||||||
@@ -39,7 +39,7 @@ const subTitleSwitch = ref(true)
|
|||||||
|
|
||||||
/** 水印 */
|
/** 水印 */
|
||||||
const watermarkSwitch = ref(false) //开关
|
const watermarkSwitch = ref(false) //开关
|
||||||
const waterMarkText = ref('然部落工具');
|
const waterMarkText = ref('Tools-Web');
|
||||||
|
|
||||||
//创建水印
|
//创建水印
|
||||||
const createWatermark = () => {
|
const createWatermark = () => {
|
||||||
@@ -29,7 +29,7 @@ const attrColor = ref('#5470c6')
|
|||||||
//标题位置
|
//标题位置
|
||||||
const titlePos = ref('center')
|
const titlePos = ref('center')
|
||||||
//标题
|
//标题
|
||||||
const title = ref('然部落在线工具')
|
const title = ref('Tools-Web')
|
||||||
//副标题
|
//副标题
|
||||||
const subTitle = ref('在线图表制作工具')
|
const subTitle = ref('在线图表制作工具')
|
||||||
//显示标题 - 开关
|
//显示标题 - 开关
|
||||||
@@ -39,7 +39,7 @@ const subTitleSwitch = ref(true)
|
|||||||
|
|
||||||
/** 水印 */
|
/** 水印 */
|
||||||
const watermarkSwitch = ref(false) //开关
|
const watermarkSwitch = ref(false) //开关
|
||||||
const waterMarkText = ref('然部落工具');
|
const waterMarkText = ref('Tools-Web');
|
||||||
|
|
||||||
//创建水印
|
//创建水印
|
||||||
const createWatermark = () => {
|
const createWatermark = () => {
|
||||||
@@ -29,7 +29,7 @@ const attrColor = ref('#5470c6')
|
|||||||
//标题位置
|
//标题位置
|
||||||
const titlePos = ref('center')
|
const titlePos = ref('center')
|
||||||
//标题
|
//标题
|
||||||
const title = ref('然部落在线工具')
|
const title = ref('Tools-Web')
|
||||||
//副标题
|
//副标题
|
||||||
const subTitle = ref('在线图表制作工具')
|
const subTitle = ref('在线图表制作工具')
|
||||||
//显示标题 - 开关
|
//显示标题 - 开关
|
||||||
@@ -39,7 +39,7 @@ const subTitleSwitch = ref(true)
|
|||||||
|
|
||||||
/** 水印 */
|
/** 水印 */
|
||||||
const watermarkSwitch = ref(false) //开关
|
const watermarkSwitch = ref(false) //开关
|
||||||
const waterMarkText = ref('然部落工具');
|
const waterMarkText = ref('Tools-Web');
|
||||||
|
|
||||||
//创建水印
|
//创建水印
|
||||||
const createWatermark = () => {
|
const createWatermark = () => {
|
||||||
@@ -29,7 +29,7 @@ const attrColor = ref('#5470c6')
|
|||||||
//标题位置
|
//标题位置
|
||||||
const titlePos = ref('center')
|
const titlePos = ref('center')
|
||||||
//标题
|
//标题
|
||||||
const title = ref('然部落在线工具')
|
const title = ref('Tools-Web')
|
||||||
//副标题
|
//副标题
|
||||||
const subTitle = ref('在线图表制作工具')
|
const subTitle = ref('在线图表制作工具')
|
||||||
//显示标题 - 开关
|
//显示标题 - 开关
|
||||||
@@ -39,7 +39,7 @@ const subTitleSwitch = ref(true)
|
|||||||
|
|
||||||
/** 水印 */
|
/** 水印 */
|
||||||
const watermarkSwitch = ref(false) //开关
|
const watermarkSwitch = ref(false) //开关
|
||||||
const waterMarkText = ref('然部落工具');
|
const waterMarkText = ref('Tools-Web');
|
||||||
|
|
||||||
//创建水印
|
//创建水印
|
||||||
const createWatermark = () => {
|
const createWatermark = () => {
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { ref,reactive } from 'vue'
|
import { ref,reactive } from 'vue'
|
||||||
import DetailHeader from '@/components/Layout/DetailHeader/DetailHeader.vue'
|
import DetailHeader from '@/components/Layout/DetailHeader/DetailHeader.vue'
|
||||||
import DiceCore from "@/components/Dice/DiceCore.vue"
|
import DiceCore from "@/components/Tools/Dice/DiceCore.vue"
|
||||||
// import { copy } from '@/utils/string'
|
// import { copy } from '@/utils/string'
|
||||||
const info = reactive({
|
const info = reactive({
|
||||||
title: "投骰子",
|
title: "投骰子",
|
||||||
@@ -21,6 +21,13 @@ router.beforeEach((to, _from, next) => {
|
|||||||
let oldTitle = document.title
|
let oldTitle = document.title
|
||||||
document.title = <string>to.meta.title + '-' + oldTitle
|
document.title = <string>to.meta.title + '-' + oldTitle
|
||||||
}
|
}
|
||||||
|
// console.log(to,_from)
|
||||||
|
// if (window.location.hostname == 'ascii.ranblogs.com') {
|
||||||
|
// if (to.fullPath != '/ascii' && window.location.hostname == 'mshop.io') {
|
||||||
|
// next('/ascii')
|
||||||
|
// } else {
|
||||||
|
// next()
|
||||||
|
// }
|
||||||
next()
|
next()
|
||||||
})
|
})
|
||||||
//路由后置卫士
|
//路由后置卫士
|
||||||
|
|||||||
@@ -6,14 +6,14 @@ export const constantRoute = [
|
|||||||
component: () => import('@/components/Home/Home.vue'),
|
component: () => import('@/components/Home/Home.vue'),
|
||||||
name: 'home',
|
name: 'home',
|
||||||
meta: {
|
meta: {
|
||||||
keywords: '然部落,在线工具,开发人员工具,时间戳转换,加密,解密,md5,进制转换,二维码,正则表达式,json格式化,照片处理,字数统计',
|
keywords: 'Tools-Web,在线工具,开发人员工具,时间戳转换,加密,解密,md5,进制转换,二维码,正则表达式,json格式化,照片处理,字数统计',
|
||||||
description: '然部落,在线工具,在线工具大全,开发人员工具,日常生活工具,办公助手,时间戳转换,加密,解密,md5,进制转换,二维码,正则表达式,json格式化,照片处理,字数统计',
|
description: 'Tools-Web,在线工具,在线工具大全,开发人员工具,日常生活工具,办公助手,时间戳转换,加密,解密,md5,进制转换,二维码,正则表达式,json格式化,照片处理,字数统计',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
//工具
|
//工具
|
||||||
{
|
{
|
||||||
path: '/timetran',
|
path: '/timetran',
|
||||||
component: () => import('@/components/TimeTran/TimeTran.vue'),
|
component: () => import('@/components/Tools/TimeTran/TimeTran.vue'),
|
||||||
name: 'timetran',
|
name: 'timetran',
|
||||||
meta: {
|
meta: {
|
||||||
title: "时间戳转换",
|
title: "时间戳转换",
|
||||||
@@ -23,7 +23,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/MD5',
|
path: '/MD5',
|
||||||
component: () => import('@/components/MD5/MD5.vue'),
|
component: () => import('@/components/Tools/MD5/MD5.vue'),
|
||||||
name: 'MD5',
|
name: 'MD5',
|
||||||
meta: {
|
meta: {
|
||||||
title: "MD5在线加密",
|
title: "MD5在线加密",
|
||||||
@@ -33,7 +33,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/json',
|
path: '/json',
|
||||||
component: () => import('@/components/JsonTran/JsonTran.vue'),
|
component: () => import('@/components/Tools/JsonTran/JsonTran.vue'),
|
||||||
name: 'json',
|
name: 'json',
|
||||||
meta: {
|
meta: {
|
||||||
title: "Json在线转换",
|
title: "Json在线转换",
|
||||||
@@ -43,7 +43,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/reg',
|
path: '/reg',
|
||||||
component: () => import('@/components/RegTest/RegTest.vue'),
|
component: () => import('@/components/Tools/RegTest/RegTest.vue'),
|
||||||
name: 'reg',
|
name: 'reg',
|
||||||
meta: {
|
meta: {
|
||||||
title: "正则表达式测试",
|
title: "正则表达式测试",
|
||||||
@@ -53,7 +53,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/unicode',
|
path: '/unicode',
|
||||||
component: () => import('@/components/Unicode/Unicode.vue'),
|
component: () => import('@/components/Tools/Unicode/Unicode.vue'),
|
||||||
name: 'unicode',
|
name: 'unicode',
|
||||||
meta: {
|
meta: {
|
||||||
title: "Unicode转中文",
|
title: "Unicode转中文",
|
||||||
@@ -63,7 +63,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/wordcount',
|
path: '/wordcount',
|
||||||
component: () => import('@/components/WordCount/WordCount.vue'),
|
component: () => import('@/components/Tools/WordCount/WordCount.vue'),
|
||||||
name: 'wordcount',
|
name: 'wordcount',
|
||||||
meta: {
|
meta: {
|
||||||
title: "在线字数统计",
|
title: "在线字数统计",
|
||||||
@@ -73,7 +73,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/ip',
|
path: '/ip',
|
||||||
component: () => import('@/components/Ip/Ip.vue'),
|
component: () => import('@/components/Tools/Ip/Ip.vue'),
|
||||||
name: 'ip',
|
name: 'ip',
|
||||||
meta: {
|
meta: {
|
||||||
title: "IP查询",
|
title: "IP查询",
|
||||||
@@ -83,7 +83,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/scaletran',
|
path: '/scaletran',
|
||||||
component: () => import('@/components/ScaleTran/ScaleTran.vue'),
|
component: () => import('@/components/Tools/ScaleTran/ScaleTran.vue'),
|
||||||
name: 'scaletran',
|
name: 'scaletran',
|
||||||
meta: {
|
meta: {
|
||||||
title: "常用进制转换",
|
title: "常用进制转换",
|
||||||
@@ -93,7 +93,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/signimage',
|
path: '/signimage',
|
||||||
component: () => import('@/components/SignImage/SignImage.vue'),
|
component: () => import('@/components/Tools/SignImage/SignImage.vue'),
|
||||||
name: 'signimage',
|
name: 'signimage',
|
||||||
meta: {
|
meta: {
|
||||||
title: "在线编辑图片",
|
title: "在线编辑图片",
|
||||||
@@ -103,7 +103,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/random_password',
|
path: '/random_password',
|
||||||
component: () => import('@/components/RandomPassword/RandomPassword.vue'),
|
component: () => import('@/components/Tools/RandomPassword/RandomPassword.vue'),
|
||||||
name: 'random_password',
|
name: 'random_password',
|
||||||
meta: {
|
meta: {
|
||||||
title: "随机密码生成",
|
title: "随机密码生成",
|
||||||
@@ -113,7 +113,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/urlencode',
|
path: '/urlencode',
|
||||||
component: () => import('@/components/UrlEncode/UrlEncode.vue'),
|
component: () => import('@/components/Tools/UrlEncode/UrlEncode.vue'),
|
||||||
name: 'urlencode',
|
name: 'urlencode',
|
||||||
meta: {
|
meta: {
|
||||||
title: "URL编码/解码",
|
title: "URL编码/解码",
|
||||||
@@ -123,7 +123,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/ascii',
|
path: '/ascii',
|
||||||
component: () => import('@/components/ASCII/ASCII.vue'),
|
component: () => import('@/components/Tools/ASCII/ASCII.vue'),
|
||||||
name: 'ascii',
|
name: 'ascii',
|
||||||
meta: {
|
meta: {
|
||||||
title: "ASCII码表",
|
title: "ASCII码表",
|
||||||
@@ -133,7 +133,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/uuid',
|
path: '/uuid',
|
||||||
component: () => import('@/components/UUID/UUID.vue'),
|
component: () => import('@/components/Tools/UUID/UUID.vue'),
|
||||||
name: 'uuid',
|
name: 'uuid',
|
||||||
meta: {
|
meta: {
|
||||||
title: "UUID生成器",
|
title: "UUID生成器",
|
||||||
@@ -143,7 +143,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/barrage',
|
path: '/barrage',
|
||||||
component: () => import('@/components/Barrage/Barrage.vue'),
|
component: () => import('@/components/Tools/Barrage/Barrage.vue'),
|
||||||
name: 'barrage',
|
name: 'barrage',
|
||||||
meta: {
|
meta: {
|
||||||
title: "手持弹幕",
|
title: "手持弹幕",
|
||||||
@@ -153,7 +153,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/palettes',
|
path: '/palettes',
|
||||||
component: () => import('@/components/Palettes/Palettes.vue'),
|
component: () => import('@/components/Tools/Palettes/Palettes.vue'),
|
||||||
name: 'palettes',
|
name: 'palettes',
|
||||||
meta: {
|
meta: {
|
||||||
title: "色板",
|
title: "色板",
|
||||||
@@ -163,7 +163,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/unit',
|
path: '/unit',
|
||||||
component: () => import('@/components/Unit/Unit.vue'),
|
component: () => import('@/components/Tools/Unit/Unit.vue'),
|
||||||
name: 'unit',
|
name: 'unit',
|
||||||
meta: {
|
meta: {
|
||||||
title: "单位转换",
|
title: "单位转换",
|
||||||
@@ -173,7 +173,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/qrcode',
|
path: '/qrcode',
|
||||||
component: () => import('@/components/Qrcode/Qrcode.vue'),
|
component: () => import('@/components/Tools/Qrcode/Qrcode.vue'),
|
||||||
name: 'qrcode',
|
name: 'qrcode',
|
||||||
meta: {
|
meta: {
|
||||||
title: "二维码生成",
|
title: "二维码生成",
|
||||||
@@ -183,7 +183,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/decision',
|
path: '/decision',
|
||||||
component: () => import('@/components/Decision/Decision.vue'),
|
component: () => import('@/components/Tools/Decision/Decision.vue'),
|
||||||
name: 'decision',
|
name: 'decision',
|
||||||
meta: {
|
meta: {
|
||||||
title: "帮我决定",
|
title: "帮我决定",
|
||||||
@@ -193,7 +193,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/morse',
|
path: '/morse',
|
||||||
component: () => import('@/components/Morse/Morse.vue'),
|
component: () => import('@/components/Tools/Morse/Morse.vue'),
|
||||||
name: 'morse',
|
name: 'morse',
|
||||||
meta: {
|
meta: {
|
||||||
title: "摩斯电码",
|
title: "摩斯电码",
|
||||||
@@ -203,7 +203,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/random',
|
path: '/random',
|
||||||
component: () => import('@/components/Random/Random.vue'),
|
component: () => import('@/components/Tools/Random/Random.vue'),
|
||||||
name: 'random',
|
name: 'random',
|
||||||
meta: {
|
meta: {
|
||||||
title: "生成随机数",
|
title: "生成随机数",
|
||||||
@@ -213,7 +213,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/numberToChinese',
|
path: '/numberToChinese',
|
||||||
component: () => import('@/components/NumberToChinese/NumberToChinese.vue'),
|
component: () => import('@/components/Tools/NumberToChinese/NumberToChinese.vue'),
|
||||||
name: 'numberToChinese',
|
name: 'numberToChinese',
|
||||||
meta: {
|
meta: {
|
||||||
title: "数字转金额大写",
|
title: "数字转金额大写",
|
||||||
@@ -223,7 +223,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/diff',
|
path: '/diff',
|
||||||
component: () => import('@/components/Diff/Diff.vue'),
|
component: () => import('@/components/Tools/Diff/Diff.vue'),
|
||||||
name: 'diff',
|
name: 'diff',
|
||||||
meta: {
|
meta: {
|
||||||
title: "文本对比",
|
title: "文本对比",
|
||||||
@@ -233,7 +233,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/markdown',
|
path: '/markdown',
|
||||||
component: () => import('@/components/Markdown/Markdown.vue'),
|
component: () => import('@/components/Tools/Markdown/Markdown.vue'),
|
||||||
name: 'markdown',
|
name: 'markdown',
|
||||||
meta: {
|
meta: {
|
||||||
title: "markdown编辑器",
|
title: "markdown编辑器",
|
||||||
@@ -243,7 +243,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/textToImg',
|
path: '/textToImg',
|
||||||
component: () => import('@/components/TextToImg/TextToImg.vue'),
|
component: () => import('@/components/Tools/TextToImg/TextToImg.vue'),
|
||||||
name: 'textToImg',
|
name: 'textToImg',
|
||||||
meta: {
|
meta: {
|
||||||
title: "文本转图片",
|
title: "文本转图片",
|
||||||
@@ -253,7 +253,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/webInfo',
|
path: '/webInfo',
|
||||||
component: () => import('@/components/WebInfo/WebInfo.vue'),
|
component: () => import('@/components/Tools/WebInfo/WebInfo.vue'),
|
||||||
name: 'webInfo',
|
name: 'webInfo',
|
||||||
meta: {
|
meta: {
|
||||||
title: "网站favicon获取",
|
title: "网站favicon获取",
|
||||||
@@ -263,7 +263,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/bar',
|
path: '/bar',
|
||||||
component: () => import('@/components/Chart/Bar/Bar.vue'),
|
component: () => import('@/components/Tools/Chart/Bar/Bar.vue'),
|
||||||
name: 'bar',
|
name: 'bar',
|
||||||
meta: {
|
meta: {
|
||||||
title: "柱状图",
|
title: "柱状图",
|
||||||
@@ -273,7 +273,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/line',
|
path: '/line',
|
||||||
component: () => import('@/components/Chart/Line/Line.vue'),
|
component: () => import('@/components/Tools/Chart/Line/Line.vue'),
|
||||||
name: 'line',
|
name: 'line',
|
||||||
meta: {
|
meta: {
|
||||||
title: "折线图",
|
title: "折线图",
|
||||||
@@ -283,7 +283,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/Pie',
|
path: '/Pie',
|
||||||
component: () => import('@/components/Chart/Pie/Pie.vue'),
|
component: () => import('@/components/Tools/Chart/Pie/Pie.vue'),
|
||||||
name: 'pie',
|
name: 'pie',
|
||||||
meta: {
|
meta: {
|
||||||
title: "饼图",
|
title: "饼图",
|
||||||
@@ -293,7 +293,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/Scatter',
|
path: '/Scatter',
|
||||||
component: () => import('@/components/Chart/Scatter/Scatter.vue'),
|
component: () => import('@/components/Tools/Chart/Scatter/Scatter.vue'),
|
||||||
name: 'scatter',
|
name: 'scatter',
|
||||||
meta: {
|
meta: {
|
||||||
title: "散点图",
|
title: "散点图",
|
||||||
@@ -303,7 +303,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/Coin',
|
path: '/Coin',
|
||||||
component: () => import('@/components/Coin/Coin.vue'),
|
component: () => import('@/components/Tools/Coin/Coin.vue'),
|
||||||
name: 'coin',
|
name: 'coin',
|
||||||
meta: {
|
meta: {
|
||||||
title: "抛硬币",
|
title: "抛硬币",
|
||||||
@@ -313,7 +313,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/Dice',
|
path: '/Dice',
|
||||||
component: () => import('@/components/Dice/Dice.vue'),
|
component: () => import('@/components/Tools/Dice/Dice.vue'),
|
||||||
name: 'dice',
|
name: 'dice',
|
||||||
meta: {
|
meta: {
|
||||||
title: "投骰子",
|
title: "投骰子",
|
||||||
@@ -323,7 +323,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/TextRemoveDuplicate',
|
path: '/TextRemoveDuplicate',
|
||||||
component: () => import('@/components/TextRemoveDuplicate/TextRemoveDuplicate.vue'),
|
component: () => import('@/components/Tools/TextRemoveDuplicate/TextRemoveDuplicate.vue'),
|
||||||
name: 'textRemoveDuplicate',
|
name: 'textRemoveDuplicate',
|
||||||
meta: {
|
meta: {
|
||||||
title: "文本去重",
|
title: "文本去重",
|
||||||
@@ -333,7 +333,7 @@ export const constantRoute = [
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/ImgCut',
|
path: '/ImgCut',
|
||||||
component: () => import('@/components/ImgCut/ImgCut.vue'),
|
component: () => import('@/components/Tools/ImgCut/ImgCut.vue'),
|
||||||
name: 'imgCut',
|
name: 'imgCut',
|
||||||
meta: {
|
meta: {
|
||||||
title: "图片分割",
|
title: "图片分割",
|
||||||
|
|||||||