17 Commits
Author SHA1 Message Date
taoran ce3df800d3 Merge branch 'feature/06' 2024-08-21 18:09:02 +08:00
taoran 6d471fef84 fix: 搜索工具异常 2024-08-21 18:08:54 +08:00
taoran b45580dfdc Merge branch 'feature/06' 2024-08-21 12:02:41 +08:00
taoran dd38597204 docs 2024-08-21 12:02:33 +08:00
taoran 4fa19c1aed Merge branch 'feature/06' 2024-07-27 00:24:45 +08:00
taoran d984af3ebe fix: 修复多次搜索后无结果问题,修复骰子工具骰子图片丢失问题 2024-07-27 00:24:12 +08:00
taoran f289facdba Merge branch 'feature/06' 2024-07-09 18:25:43 +08:00
taoran 3604407dd7 fix: 路由名称seo优化 2024-07-09 18:25:17 +08:00
taoran a5233c55c6 Merge branch 'feature/06' 2024-07-05 18:29:43 +08:00
taoran ae62d59fa3 docs 2024-07-05 18:29:18 +08:00
taoran ba71938f01 fix 2024-07-04 10:38:48 +08:00
taoran 84f42c6825 Merge branch 'feature/06' 2024-06-28 12:12:57 +08:00
taoran c90524bac1 feat: add favicon 2024-06-28 12:12:50 +08:00
taoran c53bda5706 Merge branch 'feature/06' 2024-06-21 11:47:55 +08:00
taoran 4e1354e5d2 fix: 首页小屏错位样式修复 2024-06-21 11:47:48 +08:00
taoran f822d17e6e fix: 清除百度统计 2024-06-21 11:22:52 +08:00
taoran 9e9176fb68 fix 2024-06-21 11:16:48 +08:00
11 changed files with 67 additions and 76 deletions
+2
View File
@@ -25,3 +25,5 @@ dist-ssr
*.njsproj
*.sln
*.sw?
public/sitemap.txt
+2 -2
View File
@@ -14,7 +14,7 @@
[![vue](https://img.shields.io/badge/any_text-3.3.10-origin?label=vue)](vue)
[![tailwindcss](https://img.shields.io/badge/any_text-3.3.5-yellow?label=tailwindcss)](tailwindcss)
[![elementplus](https://img.shields.io/badge/any_text-2.7-blue?label=element-plus)](elementplus)
[![license](https://img.shields.io/github/license/taoran1401/tools-web)](LICENSE)
[![license](https://img.shields.io/github/license/naroat/tools-web)](LICENSE)
</div>
@@ -51,7 +51,7 @@ npm install pnpm -g
克隆
```
git clone --depth=1 https://github.com/taoran1401/tools-web.git
git clone --depth=1 https://github.com/naroat/tools-web.git
```
安装
+4 -13
View File
@@ -3,7 +3,8 @@
<head>
<meta charset="UTF-8" />
<link rel="icon" type="image/svg+xml" href="/src/assets/logo.png" />
<link rel="shortcut icon" type="image/svg+xml" href="/src/assets/logo.png" />
<link rel="shortcut icon" type="image/svg+xml" href="/public/favicon.ico" />
<link rel="canonical" href="https://tools.ranblogs.com/">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="renderer" content="webkit">
<meta name="keywords" content="">
@@ -13,19 +14,9 @@
<meta property="og:site_name" content="">
<meta property="og:description" content="">
<meta property="og:type" content="website">
<meta property="og:image" content="https://baseran2.oss-cn-shenzhen.aliyuncs.com/toools-web/logo.png">
<meta property="og:url" content="https://tools.ranblogs.com/">
<meta property="og:image" content="/src/assets/logo.png">
<meta property="og:url" content=""><!-- 可选:这里填写自己的访问地址 -->
<title></title>
<!-- 百度统计 -->
<script>
var _hmt = _hmt || [];
(function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?a94ed52bb5ed2bd9fdbad5b7468a9338";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();
</script>
</head>
<body class="bg-[--base-gray]">
<body>
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

+3 -3
View File
@@ -6,16 +6,16 @@
<div class="p-5 w-2/3">
<h1 class="text-2xl font-bold">关于 Tools-Web</h1>
<p class="mt-6">
<el-text><el-link href="https://github.com/taoran1401/tools-web" target="_blank" type="primary">Tools-Web</el-link> 是一款免费开源的轻量在线工具箱包含开发文本媒体图表生活查询等实用工具如果对您有帮助请将其分享给您的朋友并且添加到收藏夹中顺便再点个</el-text>
<el-text><el-link href="https://github.com/naroat/tools-web" target="_blank" type="primary">Tools-Web</el-link> 是一款免费开源的轻量在线工具箱包含开发文本媒体图表生活查询等实用工具如果对您有帮助请将其分享给您的朋友并且添加到收藏夹中顺便再点个</el-text>
</p>
<h1 class="text-2xl font-bold mt-6 mb-6">技术</h1>
<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>
<el-text>主要基于Vite + Vue + ElementPlus + Typescript + TailwindCss开发某些工具使用了第三方开源库您可以在仓库的 <el-link href="https://github.com/naroat/tools-web/blob/master/package.json" target="_blank" type="primary">package.json</el-link> 文件中找到完整的列表</el-text>
</p>
<h1 class="text-2xl font-bold mt-6 mb-6">发现了 Bug</h1>
<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>
<el-text>如果您发现了 Bug或者某些功能未能按预期工作请在 GitHub 仓库的 <el-link type="primary" target="_blank" href="https://github.com/naroat/tools-web/issues/new" class="">issues</el-link> 中提交错误报告</el-text>
</p>
</div>
</div>
+1 -1
View File
@@ -5,7 +5,7 @@ const appDesc = ref(import.meta.env.VITE_APP_DESC || '')
<template>
<div class="w-full rounded-2xl z-10 p-5 text-center">
<el-text>{{ appDesc }} © 2024 <a href="https://github.com/taoran1401/tools-web" target="_blank" class="text-blue-700">Tools-Web</a></el-text>
<el-text>{{ appDesc }} © 2024 <a href="https://github.com/naroat/tools-web" target="_blank" class="text-blue-700">Tools-Web</a></el-text>
</div>
</template>
+9 -10
View File
@@ -40,11 +40,10 @@ const searchParam = reactive({
//搜索工具
const searchTools = async (query: string) => {
loading.value = true
options.value = []
if (query) {
searchParam.title = query
await toolsStore.getTools(searchParam)
} else {
options.value = []
options.value = await toolsStore.getTools(searchParam)
}
loading.value = false
}
@@ -75,7 +74,7 @@ onMounted(() => {
<template>
<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 w-full">
<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">
<path fill="#444" fill-opacity=".9" d="M895.936 256l-768-0.896 0.128-64L896 192l-0.064 64zM179.2 689.152l202.688-152a32 32 0 0 0 0-51.2L179.2 333.952a32 32 0 0 0-51.2 25.6v304a32 32 0 0 0 51.2 25.6z m12.8-89.6v-176l117.312 88L192 599.552zM896 544H480v-64H896v64z m-0.064 288l-768-0.896 0.128-64L896 768l-0.064 64z" p-id="7619"></path>
@@ -104,7 +103,7 @@ onMounted(() => {
</div>
<div>
<div class="c-xs:w-[85%] w-full mr-3">
<!-- <el-input
v-model="searchParam.title"
placeholder="搜索工具"
@@ -129,7 +128,7 @@ onMounted(() => {
size="large"
>
<el-option
v-for="item in toolsStore.list"
v-for="item in options"
:key="item.id"
:label="item.title + ' - ' + item.desc"
:value="item.id"
@@ -143,7 +142,7 @@ onMounted(() => {
<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">
<!-- about -->
<li class="ml-3">
<li class="ml-3 c-xs:hidden">
<router-link to="/about">
<el-tooltip
class="box-item"
@@ -163,13 +162,13 @@ onMounted(() => {
content="GitHub仓库"
placement="bottom"
>
<a href="https://github.com/taoran1401/tools-web" target="_blank">
<a href="https://github.com/naroat/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>
</el-tooltip>
</li>
<li class="hover:text-blue-500">
<li class="hover:text-blue-500 c-xs:hidden">
<el-button type="primary" class="ml-3 bg-gradient-to-r from-cyan-500 to-blue-500" @click="createUrlShortcut">保存到桌面</el-button>
</li>
</ul>
@@ -192,7 +191,7 @@ onMounted(() => {
:deep(.el-select__wrapper) {
box-shadow: 0 0 0 0px var(--el-input-border-color, var(--el-border-color)) inset;
cursor: default;
@apply md:w-[40rem] c-xs:w-60;
@apply md:w-full;
}
.el-select :deep(.el-select__wrapper){
+10 -10
View File
@@ -9,25 +9,25 @@ const isDicing = ref(false)
const aniIndex = ref(0)
//掷筛子动画所用到的图片(4张骰子旋转过程中的图)
const diceAnimationImages = ref([
'/public/images/dice/dice_run1.png',
'/public/images/dice/dice_run2.png',
'/public/images/dice/dice_run3.png',
'/public/images/dice/dice_run4.png'
'/images/dice/dice_run1.png',
'/images/dice/dice_run2.png',
'/images/dice/dice_run3.png',
'/images/dice/dice_run4.png'
])
//骰子每一个点的对应的图片
const diceImages = ref({
//1点的图片
1: '/public/images/dice/dice1.png',
1: '/images/dice/dice1.png',
//2点的图片
2: '/public/images/dice/dice2.png',
2: '/images/dice/dice2.png',
//3点的图片
3: '/public/images/dice/dice3.png',
3: '/images/dice/dice3.png',
//4点的图片
4: '/public/images/dice/dice4.png',
4: '/images/dice/dice4.png',
//5点的图片
5: '/public/images/dice/dice5.png',
5: '/images/dice/dice5.png',
//6点的图片
6: '/public/images/dice/dice6.png'
6: '/images/dice/dice6.png'
})
//当前掷筛子掷到的点数(默认1点)
const currentPoint = ref(1)
+16 -17
View File
@@ -13,7 +13,7 @@ export function getToolsCate() {
title: '随机密码生成',
logo: '/images/logo/keywords.png',
desc: '密码生成器、随机字符串生成,批量生成',
url: '/random_password/',
url: '/randompassword/',
cateId: 2,
cate: '开发运维',
},
@@ -49,7 +49,7 @@ export function getToolsCate() {
title: 'MD5在线加密',
logo: '/images/logo/md5.png',
desc: 'MD5在线加密,长度包含32位、16位',
url: '/MD5/',
url: '/md5/',
cateId: 2,
cate: '开发运维',
},
@@ -85,7 +85,7 @@ export function getToolsCate() {
title: 'HTTP状态码',
logo: '/images/logo/http_code.png',
desc: 'http状态对应的名称和含义解释',
url: '/HttpStatusCode/',
url: '/httpstatuscode/',
cateId: 2,
cate: '开发运维',
},
@@ -103,7 +103,7 @@ export function getToolsCate() {
title: 'html实体转义',
logo: '/images/logo/HtmlEntity.png',
desc: 'html实体转义,实体转义成html',
url: '/HtmlEntity/',
url: '/htmlentity/',
cateId: 2,
cate: '开发运维',
},
@@ -112,7 +112,7 @@ export function getToolsCate() {
title: 'js代码格式化/压缩',
logo: '/images/logo/JSForamt.png',
desc: 'JS格式化/压缩工具,提供在线JS格式化、JS压缩、JS混淆、JS解密',
url: '/JSForamt/',
url: '/jsforamt/',
cateId: 2,
cate: '开发运维',
},
@@ -121,7 +121,7 @@ export function getToolsCate() {
title: 'Html代码格式化',
logo: '/images/logo/HtmlFormat.png',
desc: '提供在线html、xml格式化',
url: '/HtmlFormat/',
url: '/htmlformat/',
cateId: 2,
cate: '开发运维',
},
@@ -130,7 +130,7 @@ export function getToolsCate() {
title: 'Css代码格式化/压缩',
logo: '/images/logo/CssFormat.png',
desc: 'css格式化/压缩工具,提供在线css格式化、css压缩',
url: '/CssFormat/',
url: '/cssformat/',
cateId: 2,
cate: '开发运维',
}
@@ -164,7 +164,7 @@ export function getToolsCate() {
title: '字数统计',
logo: '/images/logo/wordCount.png',
desc: '在线统计字符串的字数、段落、标点符号数量',
url: '/wordCount/',
url: '/wordcount/',
cateId: 3,
cate: '文本处理',
},
@@ -173,7 +173,7 @@ export function getToolsCate() {
title: '文本去重',
logo: '/images/logo/textRemoveDuplicate.png',
desc: '可以删除或去除文本或字符串中的重复行',
url: '/textRemoveDuplicate/',
url: '/textremoveduplicate/',
cateId: 3,
cate: '文本处理',
},
@@ -182,7 +182,7 @@ export function getToolsCate() {
title: 'ASCII字形生成器',
logo: '/images/logo/ascii_word_pic.png',
desc: '在线生成字形ASCII画',
url: '/asciiWordPic/',
url: '/asciiwordpic/',
cateId: 3,
cate: '文本处理',
},
@@ -191,7 +191,7 @@ export function getToolsCate() {
title: '在线文本编辑/HTML获取',
logo: '/images/logo/richtextEditor.png',
desc: '在线富文本编辑, html实时预览,在线编辑文本,文本编辑获取html',
url: '/textEdit/',
url: '/textedit/',
cateId: 3,
cate: '文本处理'
},
@@ -340,7 +340,7 @@ export function getToolsCate() {
title: '文本转图片',
logo: '/images/logo/text_to_img.png',
desc: '把文本转换成图片,生成长图,具有超多个性文字排版',
url: '/textToImg/',
url: '/texttoimg/',
cateId: 5,
cate: '图片处理'
},
@@ -349,7 +349,7 @@ export function getToolsCate() {
title: '图片分割',
logo: '/images/logo/imgCut.png',
desc: '将图片分割成四宫格、九宫格、十六宫格,支持自定义行与列',
url: '/imgCut/',
url: '/imgcut/',
cateId: 5,
cate: '图片处理',
},
@@ -475,7 +475,7 @@ export function getToolsCate() {
title: '数字转金额大写',
logo: '/images/logo/numberToChinese.png',
desc: '在线数字一键转换成人民币大写,中文大写转换数字',
url: '/numberToChinese/',
url: '/numbertochinese/',
cateId: 7,
cate: '其他工具'
},
@@ -502,7 +502,7 @@ export function getToolsCate() {
title: 'Color选择器',
logo: '/images/logo/color_picker.png',
desc: '颜色选择器、在各种颜色空间如十六进制、rgb、hsl、css等等之间转换颜色',
url: '/ColorPicker/',
url: '/colorpicker/',
cateId: 7,
cate: '其他工具'
}
@@ -542,13 +542,12 @@ export function getTools(data: ToolsReqData) {
const { cateId, title } = data
//获取工具list
let list = toolsList()
//标题筛选
if (title != '') {
list = list.filter(item => {
let tmpValue = item.title.toLowerCase()
let tmpDesc = item.desc.toLowerCase()
console.log(tmpValue.indexOf(title.toLowerCase()))
// console.log(tmpValue.indexOf(title.toLowerCase()))
return tmpValue.indexOf(title.toLowerCase()) !== -1 || tmpDesc.indexOf(title.toLowerCase()) !== -1;
});
}
+1 -1
View File
@@ -33,7 +33,7 @@ router.afterEach((to) => {
if (detailTitle) {
document.title = detailTitle + '-' + import.meta.env.VITE_APP_TITLE
} else {
document.title = import.meta.env.VITE_APP_TITLE
document.title = import.meta.env.VITE_APP_TITLE + '-' + import.meta.env.VITE_APP_DESC
}
//设置meta
+19 -19
View File
@@ -22,7 +22,7 @@ export const constantRoute = [
}
},
{
path: '/MD5',
path: '/md5',
component: () => import('@/components/Tools/MD5/MD5.vue'),
name: 'MD5',
meta: {
@@ -102,7 +102,7 @@ export const constantRoute = [
}
},
{
path: '/random_password',
path: '/randompassword',
component: () => import('@/components/Tools/RandomPassword/RandomPassword.vue'),
name: 'random_password',
meta: {
@@ -212,7 +212,7 @@ export const constantRoute = [
}
},
{
path: '/numberToChinese',
path: '/numbertochinese',
component: () => import('@/components/Tools/NumberToChinese/NumberToChinese.vue'),
name: 'numberToChinese',
meta: {
@@ -242,7 +242,7 @@ export const constantRoute = [
}
},
{
path: '/textToImg',
path: '/texttoimg',
component: () => import('@/components/Tools/TextToImg/TextToImg.vue'),
name: 'textToImg',
meta: {
@@ -252,7 +252,7 @@ export const constantRoute = [
}
},
{
path: '/webInfo',
path: '/webinfo',
component: () => import('@/components/Tools/WebInfo/WebInfo.vue'),
name: 'webInfo',
meta: {
@@ -282,7 +282,7 @@ export const constantRoute = [
}
},
{
path: '/Pie',
path: '/pie',
component: () => import('@/components/Tools/Chart/Pie/Pie.vue'),
name: 'pie',
meta: {
@@ -292,7 +292,7 @@ export const constantRoute = [
}
},
{
path: '/Scatter',
path: '/scatter',
component: () => import('@/components/Tools/Chart/Scatter/Scatter.vue'),
name: 'scatter',
meta: {
@@ -302,7 +302,7 @@ export const constantRoute = [
}
},
{
path: '/Coin',
path: '/coin',
component: () => import('@/components/Tools/Coin/Coin.vue'),
name: 'coin',
meta: {
@@ -312,7 +312,7 @@ export const constantRoute = [
}
},
{
path: '/Dice',
path: '/dice',
component: () => import('@/components/Tools/Dice/Dice.vue'),
name: 'dice',
meta: {
@@ -322,7 +322,7 @@ export const constantRoute = [
}
},
{
path: '/TextRemoveDuplicate',
path: '/textremoveduplicate',
component: () => import('@/components/Tools/TextRemoveDuplicate/TextRemoveDuplicate.vue'),
name: 'textRemoveDuplicate',
meta: {
@@ -332,7 +332,7 @@ export const constantRoute = [
}
},
{
path: '/ImgCut',
path: '/imgcut',
component: () => import('@/components/Tools/ImgCut/ImgCut.vue'),
name: 'imgCut',
meta: {
@@ -342,7 +342,7 @@ export const constantRoute = [
}
},
{
path: '/HttpStatusCode',
path: '/httpstatuscode',
component: () => import('@/components/Tools/HttpStatusCode/HttpStatusCode.vue'),
name: 'HttpStatusCode',
meta: {
@@ -362,7 +362,7 @@ export const constantRoute = [
}
},
{
path: '/HtmlEntity',
path: '/htmlentity',
component: () => import('@/components/Tools/HtmlEntity/HtmlEntity.vue'),
name: 'HtmlEntity',
meta: {
@@ -372,7 +372,7 @@ export const constantRoute = [
}
},
{
path: '/ColorPicker',
path: '/colorpicker',
component: () => import('@/components/Tools/ColorPicker/ColorPicker.vue'),
name: 'ColorPicker',
meta: {
@@ -382,7 +382,7 @@ export const constantRoute = [
}
},
{
path: '/asciiWordPic',
path: '/asciiwordpic',
component: () => import('@/components/Tools/ASCIIWordPic/ASCIIWordPic.vue'),
name: 'asciiWordPic',
meta: {
@@ -392,7 +392,7 @@ export const constantRoute = [
}
},
{
path: '/JSForamt',
path: '/jsforamt',
component: () => import('@/components/Tools/JSFormat/JSFormat.vue'),
name: 'JSForamt',
meta: {
@@ -402,7 +402,7 @@ export const constantRoute = [
}
},
{
path: '/HtmlFormat',
path: '/htmlformat',
component: () => import('@/components/Tools/HtmlFormat/HtmlFormat.vue'),
name: 'HtmlFormat',
meta: {
@@ -412,7 +412,7 @@ export const constantRoute = [
}
},
{
path: '/CssFormat',
path: '/cssformat',
component: () => import('@/components/Tools/CssFormat/CssFormat.vue'),
name: 'CssFormat',
meta: {
@@ -422,7 +422,7 @@ export const constantRoute = [
}
},
{
path: '/TextEdit',
path: '/textedit',
component: () => import('@/components/Tools/TextEdit/TextEdit.vue'),
name: 'TextEdit',
meta: {