# office-tools **Repository Path**: tanlay/office-tools ## Basic Information - **Project Name**: office-tools - **Description**: 工作常用的工具集 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-09 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 办公工具箱 · Office Tools 一个现代化风格的纯前端办公工具集合,所有计算均在浏览器本地完成,无需后端、无需联网、可静态部署。 ## 功能 | 工具 | 说明 | |------|------| | 哈希摘要 | MD5 / SHA1 / SHA256 摘要计算,支持大写输出 | | Base64 编解码 | UTF-8 安全的 Base64 编码与解码,含合法性校验 | | 随机密码生成 | 可指定长度、字符类型、排除易混字符、生成数量,并显示强度 | | 时间戳转换 | 秒/毫秒时间戳 ↔ 日期双向转换,实时当前时间戳 | | Crontab 解析 / 生成 | 解析表达式为人类可读描述,或通过表单生成表达式 | ## 技术栈 - Vue 3 + Vite - Naive UI(现代组件库,支持暗色主题) - @vicons/ionicons5 图标 - crypto-js(MD5/SHA1/SHA256/Base64) - 浏览器原生 `crypto.getRandomValues`(安全随机密码) ## 运行 ```bash npm install # 安装依赖 npm run dev # 本地开发,默认 http://localhost:5173 npm run build # 构建生产包到 dist/ npm run preview # 预览构建结果 ``` 构建产物 `dist/` 为纯静态文件,可直接托管到任意静态服务器或 CDN。 ## 目录结构 ``` src/ ├── layouts/MainLayout.vue # 侧边栏 + 顶栏 + 主题切换 ├── router/index.js # 依据注册表生成路由 ├── tools/ │ ├── registry.js # ★ 工具注册表(扩展入口) │ ├── HashTool.vue ... # 各工具页面 ├── utils/ # 纯逻辑函数(与 UI 解耦,便于单测) └── styles/global.css # 全局样式与主题变量 ``` ## 如何扩展新工具 1. 在 `src/tools/` 下新建一个 Vue 组件,例如 `UrlTool.vue`。 2. 在 `src/tools/registry.js` 的 `tools` 数组中追加一项: ```js { path: '/url', name: 'url', title: 'URL 编解码', icon: 'link', group: '编码与哈希', desc: 'URL 编码与解码', component: UrlTool } ``` 侧边栏菜单、路由、顶栏标题会自动更新,无需改动其他文件。 ## Docker 部署 构建产物 `dist/` 为纯静态文件,已提供多阶段 `Dockerfile`(node 构建 → nginx 托管)与 `docker-compose.yml`。 ```bash # 方式一:docker compose(推荐) docker compose up -d --build # 访问 http://localhost:8080 # 方式二:原生 docker docker build -t office-tools:latest . docker run -d -p 8080:80 --name office-tools office-tools:latest ``` - 默认映射宿主机 `8080` 端口,可在 `docker-compose.yml` 中修改。 - 路由为 hash 模式(`/#/hash`),无需额外 SPA 转发配置,刷新不会 404。 - 如需部署到子路径,请在 `vite.config.js` 设置 `base` 并相应调整 `nginx.conf`。