Files
frost-navigation/src/assets/js/toolbox-data.js

291 lines
7.3 KiB
JavaScript
Raw Normal View History

2024-09-01 23:39:51 +08:00
// 工具箱
const MODULES = import.meta.glob('../../views/ToolboxView/**/*.vue');
2024-09-01 23:39:51 +08:00
/**
* @desc 工具列表
* @type {ToolboxCategory[]}
*/
export const toolList = [
{
id: 'calculation-tools',
title: '计算',
enabled: true,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'calc-download-time',
component: 'Calculation/CalcDownloadTime',
title: '下载用时计算',
iconClass: 'mdi mdi-calculator-variant-outline',
2024-09-01 23:39:51 +08:00
desc: '根据设定的文件大小和下载速度简单计算大约下载完成所需的时间。',
createdAt: '2024-09-08',
updatedAt: '2024-09-08',
version: '1',
enabled: true,
2024-09-01 23:39:51 +08:00
},
{
id: 'calc-ratio',
component: 'Calculation/CalcRatio',
title: '比例计算',
iconClass: 'mdi mdi-calculator-variant-outline',
2024-09-01 23:39:51 +08:00
desc: '按设定的比例计算给出的数值所对应的数值。',
createdAt: '2024-09-08',
updatedAt: '2024-09-08',
version: '1',
enabled: true,
2024-09-01 23:39:51 +08:00
},
]
},
{
id: 'conversion-tools',
title: '转换',
enabled: false,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'convert-html-entities',
component: 'Conversion/ConvertHtmlEntities',
title: '转换 HTML 实体',
iconClass: 'mdi mdi-swap-horizontal',
2024-09-01 23:39:51 +08:00
desc: '',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'url-encode-decode',
component: 'Conversion/UrlEncodeDecode',
title: 'URL 编码 / 解码',
iconClass: 'mdi mdi-swap-horizontal',
2024-09-01 23:39:51 +08:00
desc: '',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'convert-text-structure',
component: 'Conversion/ConvertTextStructure',
title: '文本结构转换',
iconClass: 'mdi mdi-swap-horizontal',
2024-09-01 23:39:51 +08:00
desc: '倒序、横竖互换等',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'convert-timestamp',
component: 'Conversion/ConvertTimestamp',
title: 'Unix 时间戳转换',
iconClass: 'mdi mdi-swap-horizontal',
2024-09-01 23:39:51 +08:00
desc: '时间戳转时间 / 时间转时间戳',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
]
},
{
id: 'edit-tools',
title: '编辑',
enabled: false,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'csv-editor',
component: 'Edit/CsvEditor',
title: 'CSV 编辑工具',
iconClass: 'mdi mdi-table-edit',
2024-09-01 23:39:51 +08:00
desc: '查看或编辑 CSV 文件',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
],
},
{
id: 'generator-tools',
title: '生成',
enabled: true,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'generate-urls',
component: 'Generator/GenerateUrls',
title: '生成批量下载链接',
iconClass: 'mdi mdi-link-variant',
2024-09-01 23:39:51 +08:00
desc: '根据设置,生成有一定规律的用于批量下载的链接。',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'generate-random-string',
component: 'Generator/GenerateRandomString',
title: '生成随机字符串',
iconClass: 'mdi mdi-format-text',
2024-09-01 23:39:51 +08:00
desc: '生成随机组合的字符串,可用于密码。',
createdAt: '2024-09-08',
updatedAt: '2024-09-08',
version: '1',
enabled: true,
2024-09-01 23:39:51 +08:00
},
]
},
{
id: 'minecraft-tools',
title: 'Minecraft',
enabled: false,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'calc-minecraft-chunk-location',
component: 'Minecraft/CalcChunkLocation',
title: 'Minecraft 区块位置计算',
iconClass: 'mdi mdi-calculator-variant-outline',
2024-09-01 23:39:51 +08:00
desc: '',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'generate-minecraft-dynmap-renderdata',
component: 'Minecraft/GenerateDynmapRenderdata',
title: '生成 Dynmap renderdata',
iconClass: 'mdi mdi-file-outline',
2024-09-01 23:39:51 +08:00
desc: '生成用于 Minecraft Dynmap 插件或模组的 renderdata 数据。',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'minecraft-uuid-converter',
component: 'Minecraft/UuidConverter',
title: 'Minecraft UUID 转换',
iconClass: 'mdi mdi-identifier',
2024-09-01 23:39:51 +08:00
desc: '随机生成或转换 Minecraft 的 UUID。',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
]
},
{
id: 'network-tools',
title: '网络',
enabled: false,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'websocket-test-tool',
component: 'Network/WebSocketTestTool',
title: 'WebSocket',
iconClass: 'mdi mdi-connection',
2024-09-01 23:39:51 +08:00
desc: 'WebSocket 测试工具',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
],
},
{
id: 'other-tools',
title: '其他',
enabled: true,
2024-09-01 23:39:51 +08:00
items: [
{
id: 'genshin-impact-clock',
component: 'Other/GenshinImpactClock/GenshinImpactClock',
title: '《原神》时钟',
iconClass: 'mdi mdi-clock-outline',
desc: '在网页上实现的《原神》时钟效果',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'keep-screen-on',
component: 'Other/KeepScreenOn',
title: '保持亮屏',
iconClass: 'mdi mdi-monitor',
desc: '保持屏幕开启,不息屏,不休眠',
createdAt: '2024-10-11',
updatedAt: '2024-10-13',
version: '2',
enabled: true,
},
2024-09-01 23:39:51 +08:00
{
id: 'open-new-window',
component: 'Other/OpenNewWindow',
title: '新窗口(小窗)中打开',
iconClass: 'mdi mdi-window-maximize',
2024-09-01 23:39:51 +08:00
desc: '从新的小窗口中打开指定的链接(仅支持 PC 端浏览器)',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
{
id: 'run-javascript',
component: 'Other/RunJavaScript',
title: '执行 JavaScript',
iconClass: 'mdi mdi-code-braces',
2024-09-01 23:39:51 +08:00
desc: '执行简单的 JavaScript 代码片段',
createdAt: '',
updatedAt: '',
version: '0',
enabled: false,
},
],
},
];
/**
* @description 获取动态组件
* @param {string} path 工具页面相对路径
*/
function getDynamicComponent(path) {
let key = `../../views/ToolboxView/${path}.vue`;
let component = MODULES[key];
return component;
}
/** 生成工具箱页面路由 */
export function getToolboxRoutes() {
/** @type {VueRouteRecordRaw[]} */
let routes = [];
toolList.forEach((categoryItem) => {
categoryItem.items.forEach((toolItem) => {
// // 跳过未启用的工具
// if (!toolItem.enabled) {
// return;
// }
routes.push({
path: `/toolbox-view/${toolItem.id}`,
name: `Toolbox/${toolItem.component}`,
component: getDynamicComponent(toolItem.component),
meta: {
isToolDetail: true,
title: toolItem.title,
},
});
});
});
return routes;
}