diff --git a/.gitignore b/.gitignore
index 6f2e1ff..9098747 100644
--- a/.gitignore
+++ b/.gitignore
@@ -25,3 +25,5 @@ dist-ssr
*.njsproj
*.sln
*.sw?
+
+public/sitemap.txt
\ No newline at end of file
diff --git a/README.md b/README.md
index b803a53..01309f7 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
[](vue)
[](tailwindcss)
[](elementplus)
-[](LICENSE)
+[](LICENSE)
@@ -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
```
安装
diff --git a/index.html b/index.html
index f0c1cb4..24f236e 100644
--- a/index.html
+++ b/index.html
@@ -3,7 +3,8 @@
-
+
+
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000..5ccb939
Binary files /dev/null and b/public/favicon.ico differ
diff --git a/src/components/Home/About.vue b/src/components/Home/About.vue
index 5ac6efe..238c082 100644
--- a/src/components/Home/About.vue
+++ b/src/components/Home/About.vue
@@ -6,16 +6,16 @@
关于 Tools-Web
- Tools-Web 是一款免费开源的轻量在线工具箱,包含开发、文本、媒体、图表、生活、查询等实用工具;如果对您有帮助,请将其分享给您的朋友,并且添加到收藏夹中!顺便再点个⭐️吧!
+ Tools-Web 是一款免费开源的轻量在线工具箱,包含开发、文本、媒体、图表、生活、查询等实用工具;如果对您有帮助,请将其分享给您的朋友,并且添加到收藏夹中!顺便再点个⭐️吧!
技术
- 主要基于Vite + Vue + ElementPlus + Typescript + TailwindCss开发,某些工具使用了第三方开源库,您可以在仓库的 package.json 文件中找到完整的列表。
+ 主要基于Vite + Vue + ElementPlus + Typescript + TailwindCss开发,某些工具使用了第三方开源库,您可以在仓库的 package.json 文件中找到完整的列表。
发现了 Bug?
- 如果您发现了 Bug,或者某些功能未能按预期工作,请在 GitHub 仓库的 issues 中提交错误报告。
+ 如果您发现了 Bug,或者某些功能未能按预期工作,请在 GitHub 仓库的 issues 中提交错误报告。
diff --git a/src/components/Layout/Floor/Floor.vue b/src/components/Layout/Floor/Floor.vue
index 95f83a3..7f15877 100644
--- a/src/components/Layout/Floor/Floor.vue
+++ b/src/components/Layout/Floor/Floor.vue
@@ -5,7 +5,7 @@ const appDesc = ref(import.meta.env.VITE_APP_DESC || '')
-
{{ appDesc }} © 2024 Tools-Web
+
{{ appDesc }} © 2024 Tools-Web
diff --git a/src/components/Layout/Header/Header.vue b/src/components/Layout/Header/Header.vue
index c731f23..ca74171 100644
--- a/src/components/Layout/Header/Header.vue
+++ b/src/components/Layout/Header/Header.vue
@@ -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"
>
{
content="GitHub仓库"
placement="bottom"
>
-
+
diff --git a/src/components/Tools/Dice/DiceCore.vue b/src/components/Tools/Dice/DiceCore.vue
index a364078..410dc74 100644
--- a/src/components/Tools/Dice/DiceCore.vue
+++ b/src/components/Tools/Dice/DiceCore.vue
@@ -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)
diff --git a/src/components/Tools/tools.ts b/src/components/Tools/tools.ts
index c548d3d..df9b0d2 100644
--- a/src/components/Tools/tools.ts
+++ b/src/components/Tools/tools.ts
@@ -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;
});
}
diff --git a/src/router/index.ts b/src/router/index.ts
index 18296c3..e1f8074 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -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
diff --git a/src/router/router.ts b/src/router/router.ts
index 0cefa78..2482fae 100644
--- a/src/router/router.ts
+++ b/src/router/router.ts
@@ -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: {