feat: 完善搜索模块内容

This commit is contained in:
2024-08-31 18:39:25 +08:00
parent e4fab491db
commit b63515128b
26 changed files with 487 additions and 5 deletions

View File

@@ -0,0 +1,210 @@
// 搜索引擎
import {
ref,
} from 'vue';
import {
SKEY_SEARCH_ENGINE_NAME,
} from '@/config/storage';
import {
useLocalStorage,
} from '@vueuse/core';
import {
$message,
} from './naive-ui';
/** 打开搜索结果页面 */
export function openSearchResult() {
let engine = searchEngineName.value;
let keyword = searchKeyword.value;
let baseURL = '';
let useURL = '';
// 获取搜索引擎 URL
for (let i = 0; i < searchEngineList.length; i++) {
let category = searchEngineList[i];
let engines = category.list;
for (let j = 0; j < engines.length; j++) {
let item = engines[j];
if (item.name === engine) {
baseURL = item.url;
}
}
if (baseURL) {
break;
}
}
if (baseURL) {
useURL = baseURL.replace(/%keyword%/, keyword);
}
if (useURL) {
window.open(useURL, '_blank');
} else {
$message.error('搜索失败:找不到对应的搜索引擎');
}
}
/** 搜索引擎列表 */
export const searchEngineList = [
{
title: '搜索',
list: [
{
name: '百度',
desc: 'www.baidu.com',
url: 'https://www.baidu.com/s?wd=%keyword%',
icon: 'baidu.svg',
show: true,
},
{
name: '必应',
desc: 'cn.bing.com',
url: 'https://cn.bing.com/search?q=%keyword%',
icon: 'bing.svg',
show: true,
},
{
name: '搜狗',
desc: 'www.sogou.com',
url: 'https://www.sogou.com/web?query=%keyword%',
icon: 'sogou.svg',
show: true,
},
{
name: '360',
desc: 'www.so.com',
url: 'https://www.so.com/s?q=%keyword%',
icon: '360.svg',
show: true,
},
{
name: 'Google',
desc: 'www.google.com',
url: 'https://www.google.com/search?q=%keyword%',
icon: 'google.svg',
show: true,
},
{
name: 'Yandex',
desc: 'yandex.com',
url: 'https://yandex.com/search/?text=%keyword%',
icon: 'yandex.svg',
show: true,
}
]
},
{
title: '多媒体',
list: [
{
name: '网易云音乐',
desc: 'music.163.com',
url: 'https://music.163.com/#/search/m/?s=%keyword%',
icon: 'netease_music.svg',
show: true,
},
{
name: 'AcFun',
desc: 'www.acfun.cn',
url: 'https://www.acfun.cn/search/?keyword=%keyword%',
icon: 'acfun.svg',
show: true,
},
{
name: 'bilibili',
desc: 'search.bilibili.com',
url: 'https://search.bilibili.com/all?keyword=%keyword%',
icon: 'bilibili.svg',
show: true,
},
{
name: 'QQ音乐',
desc: 'y.qq.com',
url: 'https://y.qq.com/n/ryqq/search?w=%keyword%',
icon: 'qq_music.svg',
show: true,
}
]
},
{
title: '技术',
list: [
{
name: '博客园',
desc: 'zzk.cnblogs.co',
url: 'https://zzk.cnblogs.com/s?w=%keyword%',
icon: 'cnblogs.svg',
show: true,
},
{
name: 'CSDN',
desc: 'so.csdn.net',
url: 'https://so.csdn.net/so/search/all?q=%keyword%',
icon: 'csdn.svg',
show: true,
},
{
name: 'GitHub',
desc: 'github.com',
url: 'https://github.com/search?q=%keyword%',
icon: 'github.svg',
show: true,
},
{
name: 'MDN',
desc: 'developer.mozilla.org',
url: 'https://developer.mozilla.org/zh-CN/search?q=%keyword%',
icon: 'mdn.svg',
show: true,
}
]
},
{
title: '设计',
list: [
{
name: '站酷',
desc: 'www.zcool.com.cn',
url: 'https://www.zcool.com.cn/search/content?word=%keyword%',
icon: 'zcool.svg',
show: true,
},
{
name: 'Iconfont',
desc: 'www.iconfont.cn',
url: 'https://www.iconfont.cn/search/index?searchType=icon&q=%keyword%',
icon: 'iconfont.svg',
show: true,
}
]
},
{
title: '社区',
list: [
{
name: '知乎',
desc: 'www.zhihu.com',
url: 'https://www.zhihu.com/search?type=content&q=%keyword%',
icon: 'zhihu.svg',
show: true,
}
]
},
];
/** 搜索引擎名称 */
export const searchEngineName = useLocalStorage(SKEY_SEARCH_ENGINE_NAME, '必应');
/** 搜索关键词 */
export const searchKeyword = ref('');