201 lines
4.8 KiB
Markdown
201 lines
4.8 KiB
Markdown
# Vue 工具集 - Vue Tools Kit
|
||
|
||
这是一个基于 Vue 3 + TypeScript + Tailwind CSS 开发的在线工具集合,移植自 jisuxiang-master 项目。
|
||
|
||
## 特性
|
||
|
||
- 🚀 Vue 3 + Composition API + `<script setup>` 语法糖
|
||
- 📱 响应式设计,支持移动端
|
||
- 🎨 深色/浅色主题切换
|
||
- 🌐 中英文双语支持
|
||
- ⚡ Vite 构建工具,开发体验优秀
|
||
- 🎯 TypeScript 类型安全
|
||
- 💻 包含 28+ 实用开发工具
|
||
|
||
## 工具列表
|
||
|
||
### 常用工具
|
||
- JSON 格式化器 - JSON格式化、美化、压缩和验证
|
||
- HTTP 测试器 - API接口测试工具
|
||
- 时间戳转换器 - 时间戳与日期时间相互转换
|
||
- 编码转换器 - Base64、URL编码、Unicode转换
|
||
- IP 查询工具 - IP地址归属地查询
|
||
|
||
### JSON 工具
|
||
- JSON 编辑器 - 可视化JSON编辑
|
||
- JSON 转换器 - JSON与XML、CSV、YAML互转
|
||
|
||
### 编码工具
|
||
- 正则表达式测试器 - 正则表达式测试和验证
|
||
- 加密解密工具 - MD5、SHA、AES、DES等
|
||
- URL 编码器 - URL编码解码
|
||
- Unicode 转换器 - Unicode与中文互转
|
||
- JWT 解码器 - JWT令牌解析
|
||
- 进制转换器 - 二进制、八进制、十进制、十六进制转换
|
||
|
||
### 文本工具
|
||
- 字数统计器 - 字符、词数、行数统计
|
||
- 文本处理器 - 去空格、去换行等
|
||
|
||
### 代码工具
|
||
- 代码格式化器 - HTML、CSS、JS、SQL格式化
|
||
- HTML/Markdown 转换器 - HTML与Markdown互转
|
||
- YAML/Properties 转换器 - 配置文件格式转换
|
||
|
||
### 图片工具
|
||
- 图片压缩器 - 在线图片压缩
|
||
- 二维码生成器 - 文本转二维码
|
||
- Base64图片转换器 - 图片与Base64互转
|
||
- 图片水印工具 - 添加文字或图片水印
|
||
- ICO图标生成器 - 图片转ICO格式
|
||
|
||
### 前端工具
|
||
- 颜色工具 - 颜色选择器和转换
|
||
- CSS渐变生成器 - 可视化CSS渐变生成
|
||
|
||
### 时间工具
|
||
- 日期计算器 - 日期差值计算
|
||
- 时区转换器 - 不同时区时间转换
|
||
- Cron表达式生成器 - 定时任务表达式生成
|
||
|
||
## 技术栈
|
||
|
||
- **前端**: Vue 3, TypeScript, Tailwind CSS, Vite
|
||
- **图标**: FontAwesome
|
||
- **HTTP客户端**: Axios
|
||
- **后端**: Node.js, Express
|
||
- **工具库**:
|
||
- marked (Markdown解析)
|
||
- turndown (HTML转Markdown)
|
||
- crypto-js (加密解密)
|
||
- qrcode (二维码生成)
|
||
- fabric.js (图片处理)
|
||
- compressor.js (图片压缩)
|
||
|
||
## 快速开始
|
||
|
||
### 安装依赖
|
||
|
||
```bash
|
||
npm install
|
||
```
|
||
|
||
### 开发模式
|
||
|
||
```bash
|
||
# 启动前端开发服务器
|
||
npm run dev
|
||
|
||
# 启动后端API服务器(新终端)
|
||
npm run server
|
||
```
|
||
|
||
访问 `http://localhost:8080` 查看应用
|
||
|
||
### 生产构建
|
||
|
||
```bash
|
||
# 构建前端
|
||
npm run build
|
||
|
||
# 启动生产服务器(包含前端和API)
|
||
npm run server
|
||
```
|
||
|
||
## 项目结构
|
||
|
||
```
|
||
src/
|
||
├── components/ # 通用组件
|
||
│ ├── tools/ # 工具组件
|
||
│ ├── BackToTop.vue # 返回顶部
|
||
│ ├── ThemeToggle.vue # 主题切换
|
||
│ └── LanguageToggle.vue # 语言切换
|
||
├── composables/ # 组合式API
|
||
│ ├── useLanguage.ts # 语言管理
|
||
│ └── useTheme.ts # 主题管理
|
||
├── config/ # 配置文件
|
||
│ ├── tools.ts # 工具配置
|
||
│ ├── categories.ts # 分类配置
|
||
│ └── i18n/ # 国际化
|
||
├── router/ # 路由配置
|
||
├── types/ # TypeScript类型
|
||
├── utils/ # 工具函数
|
||
├── views/ # 页面组件
|
||
└── style.css # 全局样式
|
||
|
||
server/
|
||
├── index.js # 服务器入口
|
||
└── routes/
|
||
└── api.js # API路由
|
||
```
|
||
|
||
## 开发指南
|
||
|
||
### 添加新工具
|
||
|
||
1. 在 `src/config/tools.ts` 中添加工具配置
|
||
2. 在 `src/config/i18n/` 中添加多语言支持
|
||
3. 在 `src/components/tools/` 中创建工具组件
|
||
4. 在 `src/views/ToolView.vue` 的映射表中注册组件
|
||
|
||
### 组件开发规范
|
||
|
||
- 使用 `<script setup>` 语法糖
|
||
- 使用箭头函数
|
||
- 使用 Composition API
|
||
- 遵循 TypeScript 类型约束
|
||
- 使用 Tailwind CSS 进行样式开发
|
||
|
||
### 主题和样式
|
||
|
||
项目使用 CSS 变量实现主题切换,主要颜色变量定义在 `src/style.css` 中。
|
||
|
||
### 国际化
|
||
|
||
使用自定义的国际化系统,配置文件在 `src/config/i18n/` 目录下。
|
||
|
||
## API 服务
|
||
|
||
项目包含 Node.js 后端,提供以下API:
|
||
|
||
- `GET /api/ip/:ip?` - IP地址查询
|
||
- `GET /api/myip` - 获取当前IP
|
||
- `POST /api/proxy` - HTTP代理请求
|
||
- `POST /api/markdown/convert` - Markdown转换
|
||
- `POST /api/format/code` - 代码格式化
|
||
|
||
## 部署
|
||
|
||
### 使用 Node.js
|
||
|
||
```bash
|
||
npm run build
|
||
npm run server
|
||
```
|
||
|
||
### 使用 Docker
|
||
|
||
```dockerfile
|
||
FROM node:18-alpine
|
||
WORKDIR /app
|
||
COPY package*.json ./
|
||
RUN npm install
|
||
COPY . .
|
||
RUN npm run build
|
||
EXPOSE 3001
|
||
CMD ["npm", "run", "server"]
|
||
```
|
||
|
||
## 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
## 许可证
|
||
|
||
MIT License
|
||
|
||
## 致谢
|
||
|
||
本项目移植自 [jisuxiang-master](https://github.com/star7th/jisuxiang),感谢原作者的开源贡献。
|