Files
Yi.Framework/Yi.Ai.Vue3
2026-02-02 22:03:48 +08:00
..
2026-02-01 00:52:10 +08:00
2026-02-01 19:32:46 +08:00
2025-06-17 22:37:37 +08:00
2025-06-19 23:45:22 +08:00
2025-06-30 17:53:59 +08:00
2025-06-20 00:06:10 +08:00
2026-02-02 22:03:48 +08:00
2026-02-02 21:33:53 +08:00
2025-06-17 22:37:37 +08:00
2025-06-17 22:37:37 +08:00
2025-12-14 13:07:44 +08:00
2025-06-17 22:37:37 +08:00
2025-06-17 22:37:37 +08:00
2025-06-17 22:37:37 +08:00
2026-02-01 19:32:46 +08:00
2025-06-17 22:37:37 +08:00
2026-02-01 00:52:10 +08:00
2025-06-17 22:37:37 +08:00
2026-02-01 00:52:10 +08:00
2026-02-01 00:52:10 +08:00
2025-07-18 21:08:51 +08:00
2025-07-04 19:17:45 +08:00
2026-01-13 22:55:43 +08:00
2025-06-17 22:37:37 +08:00
2025-06-17 22:37:37 +08:00
2025-06-17 22:37:37 +08:00
2026-02-01 21:12:47 +08:00

🚀 项目亮点

基于 Vue3.5 + Element-Plus-X + hook-fetch + TypeScript + Eslint9 开发的企业级AI应用模板快速构建仿豆包/通义的全栈AI项目。

💡 核心优势

  • 最新技术栈Vue3.5+/Vite6/Pinia3/TypeScript5
  • 流式交互Hook-Fetch支持Server-Sent Events插件化写法优雅的一批
  • 企业级规范ESLint/Stylelint/husky/commitlint全链路校验
  • 全栈项目:集成 后端服务,快速开发
  • 开箱即用内置动态路由、状态管理、组件库封装、hooks封装

🎯 开发文档

🔗 关键链接

| 📚 前端文档 | 开发指南/项目说明 | 快速了解项目 |

🧰 核心功能

  • 使用 Vue3.5+ 各种新特性的支持,让开发更有效率
  • 采用 Vite6.3+ 作为项目开发、打包工具
  • 使用 Pinia3.0+ 作为全局状态管理库,轻量、优雅、易用,集成 Pinia 持久化插件
  • 使用 TypeScript5.8+ 增强项目的代码规范和可读性
  • 使用 Unocss 预设样式,更快书写简单的样式
  • 弃用 Axios (不支持流式请求) 改用 Hook-Fetch (支持流模式,插件化封装,写法极度优雅) 进行全局的请求封装
  • 使用 VueRouter 配置动态路由权限拦截、路由懒加载
  • 使用 KeepAlive 对页面进行缓存
  • 封装了一些好用的组件和Hooks增强用户交互体验
  • 使用 ESLint9+、Stylelint16+ 代码校验规范、同时统一保存格式化代码
  • 使用 husky、lint-staged、commitlint、cz-git 规范提交信息

📦 安装与运行


# 安装依赖推荐pnpm 避免幻影依赖)
pnpm install

# 开发模式
pnpm run dev

# 生产构建
pnpm build

# 代码校验
pnpm lint          # ESLint检测
pnpm lint:stylelint # 样式格式化
pnpm cz            # 规范提交自动执行lint

服务端启动

目录E:\devDemo\Yi\Yi.Abp.Net8\src\Yi.Abp.Web

dotnet run

🧸 即将推出 (含 接口联调)

  • 会话管理
  • 发送消息
  • 登录注册
  • md 渲染
  • 编辑输入框
  • 文件上传
  • 其他...

深色主题样式编写指南

  1. 在 src/styles/dark-theme.scss 中添加样式

所有深色主题样式都使用 [data-theme="dark"] 选择器包裹:

/* ========== 组件名称深色样式 ========== */ [data-theme="dark"] { .your-component-class { background-color: #1f2937 !important; color: #e5e7eb !important; border-color: #374151 !important; } }

  1. 常用深色主题颜色值 ┌─────────────────────────┬───────────────────┐ │ 用途 │ 颜色值 │ ├─────────────────────────┼───────────────────┤ │ 主背景 │ #111827 │ ├─────────────────────────┼───────────────────┤ │ 次级背景(卡片、弹窗) │ #1f2937 │ ├─────────────────────────┼───────────────────┤ │ 三级背景hover、表头 │ #374151 │ ├─────────────────────────┼───────────────────┤ │ 主文字 │ #f3f4f6 / #f9fafb │ ├─────────────────────────┼───────────────────┤ │ 次级文字 │ #e5e7eb │ ├─────────────────────────┼───────────────────┤ │ 三级文字 │ #9ca3af │ ├─────────────────────────┼───────────────────┤ │ 边框浅色 │ #374151 │ ├─────────────────────────┼───────────────────┤ │ 边框深色 │ #4b5563 │ ├─────────────────────────┼───────────────────┤ │ 主色调 │ #60a5fa │ └─────────────────────────┴───────────────────┘
  2. 覆盖 Tailwind 工具类

[data-theme="dark"] { .bg-white { background-color: #374151 !important; }

.text-gray-700 {
  color: #e5e7eb !important;
}

}

  1. 覆盖 Element Plus 组件

[data-theme="dark"] { .el-card { background-color: #1f2937 !important; border-color: #374151 !important; } }

  1. 使用 CSS 变量(推荐)

在 src/styles/var.scss 的 [data-theme="dark"] 块中定义变量,然后在组件中使用:

// var.scss [data-theme="dark"] { --my-component-bg: #1f2937; }

// dark-theme.scss [data-theme="dark"] { .my-component { background-color: var(--my-component-bg) !important; } }

  1. 组件内动态颜色JS 方式)

如果需要在 JS 中动态获取颜色:

<script setup> import { useColorMode } from '@vueuse/core'; const mode = useColorMode(); const bgColor = computed(() => mode.value === 'dark' ? '#1f2937' : '#ffffff'); </script>