Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4fa19c1aed | ||
|
|
d984af3ebe | ||
|
|
f289facdba | ||
|
|
3604407dd7 | ||
|
|
a5233c55c6 | ||
|
|
ae62d59fa3 | ||
|
|
ba71938f01 | ||
|
|
84f42c6825 | ||
|
|
c90524bac1 | ||
|
|
c53bda5706 | ||
|
|
4e1354e5d2 | ||
|
|
f822d17e6e | ||
|
|
9e9176fb68 |
@@ -25,3 +25,5 @@ dist-ssr
|
||||
*.njsproj
|
||||
*.sln
|
||||
*.sw?
|
||||
|
||||
public/sitemap.txt
|
||||
+4
-13
@@ -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 |
@@ -42,7 +42,7 @@ const searchTools = async (query: string) => {
|
||||
loading.value = true
|
||||
if (query) {
|
||||
searchParam.title = query
|
||||
await toolsStore.getTools(searchParam)
|
||||
options.value = await toolsStore.getTools(searchParam)
|
||||
} else {
|
||||
options.value = []
|
||||
}
|
||||
@@ -75,7 +75,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 +104,7 @@ onMounted(() => {
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<div class="c-xs:w-[85%] w-full mr-3">
|
||||
<!-- <el-input
|
||||
v-model="searchParam.title"
|
||||
placeholder="搜索工具"
|
||||
@@ -129,7 +129,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 +143,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"
|
||||
@@ -169,7 +169,7 @@ onMounted(() => {
|
||||
</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 +192,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){
|
||||
|
||||
@@ -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