🎉 限时特惠活动公告、获取优惠码、最高立减3200元
| 技术 | 版本 | 说明 |
|---|---|---|
| 框架 | Nuxt 3 | ^3.5.1 |
| UI 库 | Element Plus | ^2.3.6 |
| 状态管理 | Pinia | ^2.0.23 |
| 样式 | Tailwind CSS | ^6.7.0 |
| 语言 | TypeScript | ^4.8.4 |
| 包管理 | pnpm | 9.15.4 |
| Markdown | markdown-it | ^13.0.1 |
| 代码高亮 | highlight.js | ^11.8.0 |
| 思维导图 | markmap | ^0.15.x |
pc/
├── api/ # API 接口层
│ ├── account.ts # 账户相关接口
│ ├── chat.ts # 聊天相关接口
│ ├── drawing.ts # 绘画相关接口
│ ├── user.ts # 用户相关接口
│ ├── pay.ts # 支付相关接口
│ ├── skill.ts # 技能相关接口
│ └── ...
├── assets/ # 静态资源
│ ├── icons/ # SVG 图标
│ ├── images/ # 图片资源
│ └── styles/ # 全局样式
│ ├── index.scss # 样式入口
│ ├── element.scss # Element 覆盖
│ ├── public.scss # 公共样式
│ └── var.css # CSS 变量
├── components/ # 公共组件
│ ├── chat-content/ # 聊天内容组件
│ ├── chatting/ # 聊天输入组件
│ ├── markdown/ # Markdown 渲染组件
│ ├── the-session/ # 会话列表组件
│ └── ...
├── composables/ # 组合式函数
│ ├── useAudioPlay.ts # 音频播放
│ ├── useCopy.ts # 复制功能
│ ├── useLockFn.ts # 函数防抖节流
│ ├── useMenu.ts # 菜单逻辑
│ ├── usePaging.ts # 分页逻辑
│ ├── usePolling.ts # 轮询逻辑
│ └── useSessionList.ts # 会话列表逻辑
├── config/ # 配置文件
├── constants/ # 常量定义
│ └── menu.ts # 菜单常量
├── enums/ # TypeScript 枚举
│ ├── appEnums.ts # 应用枚举
│ ├── cacheEnums.ts # 缓存键枚举
│ ├── pageEnum.ts # 页面枚举
│ └── requestEnums.ts # 请求枚举
├── layouts/ # 布局组件
│ └── default.vue # 默认布局
├── middleware/ # 路由中间件
├── pages/ # 页面组件
│ ├── app/ # 应用页面
│ │ ├── drawing/ # AI 绘画
│ │ ├── mind_map/ # 思维导图
│ │ ├── qrcode/ # 二维码生成
│ │ └── square/ # 应用广场
│ ├── chat/ # 聊天页面
│ ├── create/ # 创作页面
│ ├── skill/ # 技能页面
│ ├── user/ # 用户中心
│ ├── recharge/ # 充值页面
│ └── ...
├── plugins/ # 插件
│ ├── element-plus.ts # Element Plus 配置
│ ├── fetch.ts # 请求插件
│ └── icons.ts # 图标插件
├── stores/ # Pinia 状态管理
│ ├── app.ts # 应用状态
│ ├── setting.ts # 设置状态
│ ├── theme.ts # 主题状态
│ └── user.ts # 用户状态
├── typings/ # 类型定义
├── utils/ # 工具函数
│ ├── http/ # HTTP 请求封装
│ │ ├── index.ts # 请求配置
│ │ └── request.ts # 请求类
│ ├── feedback.ts # 消息反馈
│ ├── validate.ts # 验证工具
│ ├── util.ts # 通用工具
│ └── env.ts # 环境配置
├── nuxt/ # Nuxt 配置
│ └── env.ts # 环境变量处理
├── scripts/ # 构建脚本
│ └── build.mjs # 构建后处理
├── .env # 环境变量
├── .env.development # 开发环境变量
├── .env.production # 生产环境变量
├── nuxt.config.ts # Nuxt 配置
├── package.json # 项目依赖
├── tailwind.config.js # Tailwind 配置
└── tsconfig.json # TypeScript 配置.env.development:/pages/chat)components/chat-content/ 添加新的消息组件enums/appEnums.ts 添加消息类型枚举chatting.vue 中注册新组件pages/chat/index.vue 中的 contentPost 函数/pages/app/drawing)api/drawing.ts 的 drawingModel() 返回新模型components/drawing-control/ 添加模型选择 UIpages/app/drawing/component/drawing-control/index.vue/pages/skill)skill/
├── index.vue # 技能列表页
└── _components/ # 技能组件api/skill.ts 获取pages/skill/index.vue 的 handleselected 函数中添加逻辑/stores/user.ts)1. 选择套餐 → /pages/recharge
2. 选择支付方式 → getPayWayList()
3. 创建订单 → prepay()
4. 调起支付
5. 轮询订单状态 → OrderStatus()
6. 支付成功回调utils/http/request.ts)utils/http/index.ts)<template>
<div class="component-name">
<!-- 内容 -->
</div>
</template>
<script setup lang="ts">
// 类型定义
interface Props {
modelValue?: string
disabled?: boolean
}
// Props
const props = withDefaults(defineProps<Props>(), {
modelValue: '',
disabled: false
})
// Emits
const emit = defineEmits<{
'update:modelValue': [value: string]
'change': [value: string]
}>()
// 逻辑代码
</script>
<style lang="scss" scoped>
.component-name {
// 样式
}
</style>| 组件 | 路径 | 说明 |
|---|---|---|
| Chatting | components/chatting/ | 聊天输入框 |
| ChatContent | components/chat-content/ | 聊天内容渲染 |
| Markdown | components/markdown/ | Markdown 渲染 |
| TheSession | components/the-session/ | 会话列表 |
| Popup | components/popup/ | 弹窗组件 |
| Upload | components/upload/ | 上传组件 |
| Payment | components/payment/ | 支付组件 |
<template>
<div class="flex items-center justify-center h-full bg-white rounded-[15px]">
<div class="text-[16px] text-[#333] font-medium">
内容
</div>
</div>
</template>