我开源了一个免费在线工具!UIED Tools

news2025/5/17 5:14:50

UIED Tools - 免费在线工具集合

最近更新:修改了文档说明,优化了项目结构介绍

这是设计师转开发的第一个开源项目,bug和代码规范可能有些欠缺。

这是一个功能丰富的免费在线工具集合网站,集成了多种实用工具,包括 AI 工具、设计工具、开发工具等。该项目旨在为设计师、开发者和普通用户提供一站式工具解决方案,提高工作效率。

在线站点:UIED免费在线工具集 

开源地址

https://github.com/Tomccc520/UIED-tools

UIED-Tools: UIED Tools在线免费工具箱,纯AI二次开发。

输入图片说明

更新日志

更新日志2025.5.11

项目亮点

  • 丰富多样的工具:提供超过80种常用工具,覆盖设计、开发、文本处理、图片处理等多个领域,持续更新中。
  • 简洁易用的界面:采用直观的UI设计,让用户快速找到并使用所需工具
  • 完全免费:所有工具完全免费使用,无需注册和付费
  • 持续更新:定期添加新工具,不断优化已有功能
  • 开源共享:项目代码完全开源,欢迎社区贡献和改进
  • 中文优化:专为中文用户设计,提供本地化的使用体验

UIED Tools 基于 Vue3、TypeScript 和 Element Plus 开发,支持响应式布局,能够在桌面端和移动端提供良好的使用体验。

快速开始

环境要求

  • Node.js 版本: >= 16.0.0
  • npm 版本: >= 8.0.0

安装步骤

方法一:从源码安装(推荐开发者使用)
  1. 克隆仓库到本地
# 从Gitee克隆
git clone https://gitee.com/tomdac/uied-tools.git

# 或从GitHub克隆
git clone https://github.com/Tomccc520/UIED-tools.git

# 进入项目目录
cd uied-tools
  1. 安装依赖
# 使用npm安装(推荐)
npm install

# 或使用yarn
yarn install

# 或使用pnpm
pnpm install
  1. 启动开发服务器
# 开发模式启动
npm run dev

# 指定端口启动
npm run dev -- --port 3000
  1. 构建生产版本
# 标准构建
npm run build

# 包含SEO优化的构建(推荐生产环境使用)
npm run build:pro

# 预览构建结果
npm run preview
方法二:使用Docker部署(推荐运维人员使用)
# 拉取镜像
docker pull docker0796/tools-web:latest

# 运行容器
docker run -d --name tools-web --restart unless-stopped -p 8080:80 docker0796/tools-web:latest

# 访问服务
# 浏览器打开 http://localhost:8080

项目结构说明

uied-tools/
├── src/                      # 源代码目录
│   ├── components/          # 组件目录
│   │   ├── Common/         # 公共组件
│   │   │   └── ToolsRecommend.vue  # 工具推荐组件
│   │   ├── Home/           # 首页相关组件
│   │   ├── Layout/         # 布局组件
│   │   │   ├── Left/      # 左侧菜单
│   │   │   └── Right/     # 右侧推荐栏
│   │   └── Tools/          # 工具组件目录
│   │       ├── AI/        # AI相关工具
│   │       ├── Avatar/    # 头像相关工具
│   │       ├── Copywriting/ # 文案相关工具
│   │       ├── Design/    # 设计相关工具
│   │       ├── Dev/       # 开发相关工具
│   │       ├── tools.ts   # 工具配置文件
│   │       └── ToolIcon.vue # 工具图标组件
│   ├── router/             # 路由配置
│   │   └── router.ts      # 主路由文件
│   ├── store/              # 状态管理
│   │   └── modules/       # 状态模块
│   ├── assets/             # 静态资源
│   │   ├── icons/         # SVG图标
│   │   └── styles/        # 全局样式
│   ├── utils/              # 工具函数
│   └── App.vue             # 根组件
├── public/                 # 公共资源目录
├── docs/                   # 文档目录
├── scripts/                # 脚本目录
├── dist/                   # 构建输出目录
├── .env.development        # 开发环境配置
├── .env.production         # 生产环境配置
├── vite.config.ts          # Vite配置
├── tailwind.config.js      # Tailwind CSS配置
├── tsconfig.json           # TypeScript配置
├── package.json            # 项目依赖配置
└── README.md               # 项目说明文档

开发指南

添加新工具

添加新工具需要完成以下四个步骤:

  1. 创建工具组件

在 src/components/Tools 对应分类目录下创建新的组件文件。例如要创建一个新的AI工具,可以在 src/components/Tools/AI/ 目录下创建:

<!-- NewAITool.vue -->
<template>
  <div class="p-6 bg-white rounded-lg shadow-sm">
    <h2 class="text-xl font-bold mb-4">新AI工具</h2>

    <!-- 工具主体内容 -->
    <div class="mb-4">
      <el-input v-model="inputText" placeholder="请输入内容" />
    </div>

    <!-- 操作按钮 -->
    <div class="flex justify-between">
      <el-button type="primary" @click="processData">处理</el-button>
      <el-button @click="resetForm">重置</el-button>
    </div>

    <!-- 结果展示区域 -->
    <div v-if="result" class="mt-4 p-4 bg-gray-50 rounded">
      <p>{{ result }}</p>
    </div>

    <!-- 底部推荐工具 -->
    <ToolsRecommend :currentPath="route.path" />
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue'
import { useRoute } from 'vue-router'
import ToolsRecommend from '@/components/Common/ToolsRecommend.vue'

const route = useRoute()
const inputText = ref('')
const result = ref('')

// 处理数据函数
const processData = () => {
  // 实现工具核心逻辑
  result.value = `处理结果: ${inputText.value}`
}

// 重置表单函数
const resetForm = () => {
  inputText.value = ''
  result.value = ''
}
</script>
  1. 添加路由配置

在 src/router/router.ts 文件中添加新工具的路由配置:

// router.ts
{
  path: '/tools/ai/new-tool',
  component: () => import('@/components/Tools/AI/NewAITool.vue'),
  name: 'newAITool',
  meta: {
    title: "新AI工具",
    keywords: 'AI工具,人工智能,新工具',
    description: '这是一个强大的AI新工具,可以帮助用户快速处理数据',
  }
}
  1. 注册工具信息

在 src/components/Tools/tools.ts 中的合适位置添加工具信息:

// tools.ts
// 在AI工具分类中添加
{
  id: 123,
  title: "新AI工具",
  logo: { type: 'svg', name: 'newAITool' }, // 使用SVG图标
  desc: "强大的AI工具,可快速处理数据",
  url: "/tools/ai/new-tool",
  cateId: 1,
  cate: 'AI工具',
  tags: ['新品']  // 可选:添加标签
}
  1. 添加SVG图标(可选)

如果使用SVG图标,将图标文件放入 src/assets/icons/ 目录下,命名为 newAITool.svg

完成以上步骤后,刷新页面即可看到新添加的工具。

注意事项

1. 环境配置

  • 开发环境:使用 .env.development 配置文件
    NODE_ENV=development
    VITE_API_BASE_URL=http://localhost:8080/api
    
  • 生产环境:使用 .env.production 配置文件
    NODE_ENV=production
    VITE_API_BASE_URL=https://api.example.com
    
  • 本地配置:可创建 .env.local 进行本地覆盖(不会提交到代码库)

2. 代码规范

  • TypeScript:所有新代码必须使用TypeScript编写
    • 开启严格模式:"strict": true
    • 使用类型标注:const name: string = 'value'
  • Vue 规范
    • 使用 Vue 3 Composition API
    • 使用 <script setup> 语法糖
    • 保持组件单一职责
  • 样式规范
    • 使用 Tailwind CSS 实用类优先
    • 自定义样式使用 scoped CSS
    • 遵循 Element Plus 的设计规范

3. 性能优化准则

  • 路由懒加载:所有页面组件使用动态导入
    {
      path: '/tools/example',
      component: () => import('@/components/Tools/Example.vue') // 懒加载
    }
    
  • 组件按需导入:使用 Element Plus 的按需导入
    import { ElButton, ElInput } from 'element-plus'
    
  • 资源优化
    • 图片使用WebP格式
    • SVG图标使用单色线性风格
    • 大型资源使用CDN加载

4. Git提交规范

  • 提交信息格式<类型>: <描述>
  • 常用类型
    • feat:新功能
    • fix:bug修复
    • docs:文档更新
    • style:代码格式调整
    • refactor:代码重构
    • perf:性能优化
    • test:测试相关
    • chore:构建过程或辅助工具变动

常见问题与解决方案

1. 依赖相关问题

安装依赖失败
# 方法1:清除npm缓存后重试
npm cache clean --force
npm install

# 方法2:使用镜像源
npm config set registry https://registry.npmmirror.com
npm install

# 方法3:尝试使用其他包管理器
yarn install
# 或
pnpm install
依赖版本冲突
# 更新依赖到兼容版本
npm update

# 检查有问题的依赖
npm ls <package-name>

# 强制解决冲突
npm install --force

2. 开发环境问题

开发服务器启动失败
  • 端口占用:修改 vite.config.ts 中的端口
    export default defineConfig({
      server: {
        port: 3000  // 修改为其他端口
      }
    })
    
  • 模块解析错误
    # 删除node_modules和lock文件后重新安装
    rm -rf node_modules package-lock.json
    npm install
    
  • Node.js版本问题:使用 nvm 安装正确版本
    nvm install 16
    nvm use 16
    
热更新不工作
  • 检查 vite.config.ts 中的 server.hmr 配置
  • 确认系统文件监听限制(Linux系统)
  • 重启开发服务器

3. 构建与部署问题

构建失败
  • 语法错误:检查控制台错误信息,修复对应代码
  • 内存不足:增加Node内存限制
    # 增加内存限制
    export NODE_OPTIONS=--max-old-space-size=4096
    npm run build
    
  • 依赖缺失:确认所有依赖正确安装
    npm install --legacy-peer-deps
    
部署问题
  • 静态资源路径错误:检查 vite.config.ts 中的 base 配置
    export default defineConfig({
      base: '/'  // 根据实际部署路径调整
    })
    
  • Docker部署问题:参考前面的Docker部署指南
  • SSR渲染问题:查看SSR构建日志,修复服务端渲染错误

技术栈详解

核心技术

技术版本用途文档链接
Vue3.3.10前端框架Vue文档
TypeScript5.3.3类型检查TS文档
Vite5.0.10构建工具Vite文档
Pinia2.1.7状态管理Pinia文档
Vue Router4.2.5路由管理Router文档

UI框架与样式

技术版本用途文档链接
Element Plus2.7.0UI组件库Element Plus文档
Tailwind CSS3.3.5原子CSS框架Tailwind文档
PostCSS8.4.32CSS处理器PostCSS文档

工具库

技术用途文档链接
AxiosHTTP请求Axios文档
VueUse实用工具集VueUse文档
Day.js日期处理Day.js文档
ECharts数据可视化ECharts文档

开发工具

技术用途推荐配置
VS Code代码编辑器推荐插件:Volar, ESLint, Prettier
ESLint代码检查配置文件:.eslintrc.js
Prettier代码格式化配置文件:.prettierrc
Git版本控制配合Husky进行提交校验

贡献指南

欢迎为 UIED Tools 项目做出贡献!请遵循以下步骤:

贡献流程

  1. Fork 仓库

    • 访问 GitHub仓库 或 Gitee仓库
    • 点击右上角"Fork"按钮创建个人分支
  2. 克隆到本地

    git clone https://github.com/你的用户名/UIED-tools.git
    cd UIED-tools
    
  3. 创建功能分支

    # 以功能命名分支
    git checkout -b feature/新功能名称
    # 或以修复命名分支
    git checkout -b fix/问题名称
    
  4. 开发与测试

    • 进行代码修改和开发
    • 运行测试确保功能正常
    • 遵循代码规范和样式指南
  5. 提交更改

    git add .
    git commit -m "feat: 添加了xxx功能"
    
  6. 推送到GitHub

    git push origin feature/新功能名称
    
  7. 创建 Pull Request

    • 访问你Fork的仓库
    • 点击"New Pull Request"按钮
    • 选择你的功能分支和原仓库的主分支
    • 填写PR描述,说明更改内容和目的

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2377352.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么时候可以开始学习深度学习?

咱们先来聊聊机器学习和深度学习的关系~ 这个问题其实挺常见的&#xff0c;之前我也跟不少同事、同学聊过。最近有好几个同学也聊过。 简单说&#xff0c;深度学习是机器学习的一个子集&#xff0c;两者不是并列关系&#xff0c;而是“包含”关系。 你可以这么理解&#xff…

初学python的我开始Leetcode题8-5

提示&#xff1a;100道LeetCode热题-8-5主要是二叉树相关&#xff0c;包括三题&#xff1a;路径总和 III、二叉树的最近公共祖先、二叉树中的最大路径和。由于初学&#xff0c;所以我的代码部分仅供参考。 前言 二叉树完结撒花~ 下一次的图论会是一些有趣的应用案例~ 提示&am…

构建RAG混合开发---PythonAI+JavaEE+Vue.js前端的实践

写在前文&#xff1a;之所以设计这一套流程&#xff0c;是因为 Python在前沿的科技前沿的生态要比Java好&#xff0c;而Java在企业级应用层开发比较活跃&#xff1b; 毕竟许多企业的后端服务、应用程序均采用Java开发&#xff0c;涵盖权限管理、后台应用、缓存机制、中间件集成…

08.webgl_buffergeometry_attributes_none ,three官方示例+编辑器+AI快速学习

本实例主要讲解内容 这个Three.js示例展示了无属性几何体渲染技术&#xff0c;通过WebGL 2的gl_VertexID特性和伪随机数生成算法&#xff0c;在着色器中动态计算顶点位置和颜色&#xff0c;而不需要在CPU端预先定义几何体数据。 核心技术包括&#xff1a; WebGL 2的顶点ID特…

26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述

26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述 文章目录 26考研 | 王道 | 计算机组成原理 | 一、计算机系统概述1.1 计算机的发展1.2 计算机硬件和软件1.2.1 计算机硬件的基本组成1.2.2 各个硬件的工作原理1.2.3 计算机软件1.2.4 计算机系统的层次结构1.2.5 计算机系统…

LeetCode100.2 字母异位词分组

观察题目&#xff0c;需要把strs中的元素按照字母进行归类&#xff0c;一个朴素的思路是&#xff1a;遍历strs&#xff0c;对每个元素排序后插入哈希表中&#xff0c;随后再遍历一遍表将其转化为vector<vector<string>>。 class Solution { public:vector<vect…

显示的图标跟UI界面对应不上。

图片跟UI界面不符合。 要找到对应dp的值。UI的dp要跟代码里的xml文件里的dp要对应起来。 蓝湖里设置一个宽度给对应上。然后把对应的值填入xml. 一个屏幕上的图片到底是用topmarin来设置&#xff0c;还是用bottommarin来设置。 因为第一节&#xff0c;5&#xff0c;7 车厢的…

高并发内存池(三):TLS无锁访问以及Central Cache结构设计

目录 前言&#xff1a; 一&#xff0c;thread cache线程局部存储的实现 问题引入 概念说明 基本使用 thread cache TLS的实现 二&#xff0c;Central Cache整体的结构框架 大致结构 span结构 span结构的实现 三&#xff0c;Central Cache大致结构的实现 单例模式 thr…

在Taro中开发一个跨端Svg组件,同时支持小程序、H5、React Native

Taro系列中一直没有跨端的绘图工具&#xff0c;小程序端支持canvas但是不支持svg&#xff0c;RN端有 react-native-svg 支持svg&#xff0c;但是没有很好原生的canvas插件&#xff0c;社区的canvas都是基于WebView实现的&#xff0c;或者skia&#xff0c;这个插件的书写方式和c…

【办公类-100-01】20250515手机导出教学照片,自动上传csdn+最大化、最小化Vs界面

背景说明&#xff1a; 每次把教学照片上传csdn&#xff0c;都需要打开相册&#xff0c;一张张截图&#xff0c;然后ctrlV黏贴到CSDN内&#xff0c;我觉得太烦了。 改进思路&#xff1a; 是否可以先把所有照片都上传到csdn&#xff0c;然后再一张张的截图&#xff08;去掉幼儿…

Python零基础入门到高手8.4节: 元组与列表的区别

目录 8.4.1 不可变数据类型 8.4.2 可变数据类型 8.4.3 元组与列表的区别 8.4.4 今天彩票没中奖 8.4.1 不可变数据类型 不可变数据类型是指不可以对该数据类型进行原地修改&#xff0c;即只读的数据类型。迄今为止学过的不可变数据类型有字符串&#xff0c;元组。 在使用[]…

深度学习入门:深度学习(完结)

目录 1、加深网络1.1 向更深的网络出发1.2 进一步提高识别精度1.3 加深层的动机 2、深度学习的小历史2.1 ImageNet2.2 VGG2.3 GoogleNet2.4 ResNet 3、深度学习的高速化3.1 需要努力解决的问题3.2 基于GPU的高速化3.3 分布式学习3.4 运算精度的位数缩减 4、深度学习的应用案例4…

使用Scrapeless Scraping Browser的自动化和网页抓取最佳实践

引言&#xff1a;人工智能时代浏览器自动化和数据收集的新范式 随着生成性人工智能、人工智能代理和数据密集型应用程序的快速崛起&#xff0c;浏览器正在从传统的“用户互动工具”演变为智能系统的“数据执行引擎”。在这一新范式中&#xff0c;许多任务不再依赖单一的API端点…

java数组题(5)

&#xff08;1&#xff09;&#xff1a; 思路&#xff1a; 1.首先要对数组nums排序&#xff0c;这样两数之间的差距最小。 2.题目要求我们通过最多 k 次递增操作&#xff0c;使数组中某个元素的频数&#xff08;出现次数&#xff09;最大化。经过上面的排序&#xff0c;最大数…

物联网无线传感方向专业词汇解释

涡旋电磁波(VEMW)&#xff1a;一种具有轨道角动量的电磁波&#xff0c;其特性在于能够在传播过程中携带额外的相位信息&#xff0c;从而增加通信系统的容量和灵活性。波前&#xff1a;波动传播过程中&#xff0c;同一时刻振动相位相同的所有点构成的几何曲面&#xff0c;代表波…

Maven 插件参数注入与Mojo开发详解

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积

2024年全国青少年信息素养大赛——算法创意实践挑战赛复赛真题(小学组)——玫瑰花地的面积 上面试卷可点下方&#xff0c;支持在线编程&#xff0c;在线测评&#xff5e; 2024年全国信息素养大赛 算法创意实践挑战赛复赛(小学组)_c_少儿编程题库学习中心-嗨信奥 5月17号 全国青…

【补充笔记】修复“NameError: name ‘ZhNormalizer‘ is not defined”的直接方法

#工作记录 一、问题描述 在运行CosyVoice_For_Windows项目时&#xff0c;出现以下报错&#xff1a; File "F:\PythonProjects\CosyVoice_For_Windows\cosyvoice\cli\frontend.py", line 74, in __init__ self.zh_tn_model ZhNormalizer(remove_erhuaFalse, fu…

预训练模型实战手册:用BERT/GPT-2微调实现10倍效率提升,Hugging Face生态下的迁移学习全链路实践

更多AI大模型应用开发学习内容&#xff0c;尽在聚客AI学院。 一. 预训练模型&#xff08;PTM&#xff09;核心概念 1.1 什么是预训练模型&#xff1f; 预训练模型&#xff08;Pre-trained Model, PTM&#xff09;是在大规模通用数据上预先训练的模型&#xff0c;通过自监督学…

mac docker弹窗提示Docker 启动没有响应

一、原因分析 这台笔记电脑是Mac M3操作系统,安装Docker之后,Docker应用程序一直启动不起来。 二、解决办法 sudo rm /Library/PrivilegedHelperTools/com.docker.vmnetd sudo cp /Applications/Docker.app/Contents/Library/LaunchServices/com.docker.vmnetd /Library/Pri…