Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce3df800d3 | ||
|
|
6d471fef84 | ||
|
|
b45580dfdc | ||
|
|
dd38597204 | ||
|
|
4fa19c1aed | ||
|
|
d984af3ebe | ||
|
|
f289facdba | ||
|
|
3604407dd7 | ||
|
|
a5233c55c6 | ||
|
|
ae62d59fa3 | ||
|
|
ba71938f01 | ||
|
|
84f42c6825 | ||
|
|
c90524bac1 |
@@ -25,3 +25,5 @@ dist-ssr
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
public/sitemap.txt
|
||||
@@ -14,7 +14,7 @@
|
||||
[](vue)
|
||||
[](tailwindcss)
|
||||
[](elementplus)
|
||||
[](LICENSE)
|
||||
[](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
|
||||
```
|
||||
|
||||
安装
|
||||
|
||||
+2
-1
@@ -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="">
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 3.8 KiB |
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
@@ -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"
|
||||
@@ -163,7 +162,7 @@ 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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
@@ -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
@@ -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: {
|
||||
|
||||
Reference in New Issue
Block a user