Skip to content

案例项目

sunlight-admin 项目结构 📚

GitHub 仓库地址

https://github.com/sunlight-ui/sunlight-admin

获取代码步骤

  1. 克隆仓库
bash
git clone https://github.com/sunlight-ui/sunlight-admin.git
  1. 进入项目目录
bash
cd sunlight-admin
  1. 安装依赖
bash
npm install

运行启动项目步骤

  1. 开发环境启动
bash
# 使用 dev 命令启动(推荐)
npm run dev

# 或使用 serve 命令启动
npm run serve
  1. 生产环境构建
bash
npm run build
  1. 预览生产环境构建结果
bash
npm run preview

项目结构

text
├─ public/                        # 静态资源文件
│ ├─ smoke.mp4                    # 示例视频资源
│ ├─ vite.svg                     # Vite 图标
│ └─ vue.svg                      # Vue 图标
├─ src/                           # 源代码目录
│ ├─ api/                         # API 接口管理
│ │ ├─ modules/                   # 接口模块
│ │ │ ├─ RetrieveInputApi.ts      # 输入检索接口
│ │ │ ├─ UploadApi.ts             # 上传接口
│ │ │ └─ UserApi.ts               # 用户接口
│ │ ├─ apiTypes.ts                # API 类型定义
│ │ └─ index.ts                   # API 入口文件
│ ├─ assets/                      # 静态资源
│ │ ├─ icons/                     # SVG 图标
│ │ ├─ image/                     # 图片资源
│ │ │ ├─ error_images/            # 错误页面图片
│ │ │ └─ gif/                     # GIF 动图
│ │ └─ mock/                      # 模拟数据
│ ├─ components/                  # 自定义组件
│ │ ├─ RetrieveInput/             # 检索输入组件
│ │ ├─ SvgIcon/                   # SVG 图标组件
│ │ ├─ WangEditor/                # 富文本编辑器组件
│ │ └─ YiInput/                   # 输入组件
│ ├─ directives/                  # 自定义指令
│ │ ├─ modules/                   # 指令模块
│ │ │ ├─ debounce.ts              # 防抖指令
│ │ │ ├─ throttle.ts              # 节流指令
│ │ │ └─ waterMarker.ts           # 水印指令
│ │ └─ index.ts                   # 指令入口文件
│ ├─ hooks/                       # 组合式函数
│ │ ├─ useEcharts.ts              # ECharts 钩子
│ │ └─ useTheme.ts                # 主题切换钩子
│ ├─ languages/                   # 国际化配置
│ │ ├─ modules/                   # 语言模块
│ │ │ ├─ en.ts                    # 英文配置
│ │ │ └─ zh.ts                    # 中文配置
│ │ └─ index.ts                   # 语言入口文件
│ ├─ layout/                      # 页面布局
│ │ ├─ components/                # 布局组件
│ │ │ ├─ Breadcrumb/              # 面包屑组件
│ │ │ ├─ Footer/                  # 页脚组件
│ │ │ ├─ Fullscreen/              # 全屏切换组件
│ │ │ ├─ Guide/                   # 引导组件
│ │ │ ├─ Language/                # 语言切换组件
│ │ │ ├─ LayoutHorizontal/        # 横向布局组件
│ │ │ ├─ LayoutVertical/          # 纵向布局组件
│ │ │ ├─ Logo/                    # Logo 组件
│ │ │ ├─ Menu/                    # 菜单组件
│ │ │ ├─ SettingsDrawer/          # 设置抽屉组件
│ │ │ ├─ Tabs/                    # 标签页组件
│ │ │ └─ AppMain.vue              # 主内容组件
│ │ └─ index.vue                  # 布局入口文件
│ ├─ plugins/                     # 插件配置
│ │ ├─ nprogress.ts               # 进度条插件
│ │ ├─ piniaPersist.ts            # Pinia 持久化插件
│ │ └─ request.ts                 # 请求插件
│ ├─ router/                      # 路由配置
│ │ ├─ modules/                   # 路由模块
│ │ │ ├─ asyncRouter.ts           # 异步路由
│ │ │ └─ staticRouter.ts          # 静态路由
│ │ └─ index.ts                   # 路由入口文件
│ ├─ store/                       # 状态管理
│ │ ├─ modules/                   # 状态模块
│ │ │ ├─ auth.ts                  # 权限状态
│ │ │ ├─ global.ts                # 全局状态
│ │ │ ├─ keepAlive.ts             # 页面缓存状态
│ │ │ ├─ tabs.ts                  # 标签页状态
│ │ │ └─ user.ts                  # 用户状态
│ │ └─ index.ts                   # 状态入口文件
│ ├─ styles/                      # 样式文件
│ │ ├─ common.scss                # 通用样式
│ │ ├─ element.scss               # Element Plus 样式
│ │ ├─ index.scss                 # 样式入口
│ │ ├─ initLoading.css            # 初始化加载样式
│ │ ├─ scroll.scss                # 滚动条样式
│ │ ├─ transition.scss            # 过渡动画样式
│ │ └─ variables.module.scss      # 样式变量
│ ├─ typings/                     # TypeScript 类型定义
│ │ ├─ global.d.ts                # 全局类型
│ │ ├─ shims-vue.d.ts             # Vue 类型声明
│ │ └─ vue3-json-viewer.d.ts      # 第三方组件类型声明
│ ├─ utils/                       # 工具函数
│ │ ├─ auth.ts                    # 权限工具
│ │ ├─ color.ts                   # 颜色工具
│ │ ├─ element.ts                 # Element Plus 工具
│ │ ├─ index.ts                   # 工具入口
│ │ └─ mittBus.ts                 # 事件总线
│ ├─ views/                       # 页面组件
│ │ ├─ assembly/                  # 组件演示页面
│ │ ├─ directives/                # 指令演示页面
│ │ ├─ echarts/                   # 图表演示页面
│ │ ├─ error-page/                # 错误页面
│ │ ├─ form/                      # 表单页面
│ │ ├─ home/                      # 首页
│ │ ├─ login/                     # 登录页
│ │ ├─ menuNest/                  # 嵌套菜单示例
│ │ ├─ project/                   # 项目页面
│ │ ├─ sunlightCascader/          # 级联选择器组件示例
│ │ ├─ sunlightCheckbox/          # 复选框组件示例
│ │ ├─ sunlightDatePicker/        # 日期选择器组件示例
│ │ ├─ sunlightForm/              # 表单组件示例
│ │ ├─ sunlightInput/             # 输入框组件示例
│ │ ├─ sunlightRadio/             # 单选框组件示例
│ │ ├─ sunlightSelect/            # 选择器组件示例
│ │ └─ sunlightTable/             # 表格组件示例
│ ├─ App.vue                      # 根组件
│ └─ main.ts                      # 入口文件
├─ .env.development               # 开发环境变量
├─ .env.production                # 生产环境变量
├─ .env.test                      # 测试环境变量
├─ .eslintignore                  # ESLint 忽略配置
├─ .eslintrc.cjs                  # ESLint 配置
├─ .gitignore                     # Git 忽略配置
├─ .prettierignore                # Prettier 忽略配置
├─ .prettierrc.cjs                # Prettier 配置
├─ .stylelintignore               # Stylelint 忽略配置
├─ .stylelintrc.cjs               # Stylelint 配置
├─ README.md                      # 项目说明文档
├─ Vue-ElPlus-Admin-main.rar      # 项目压缩包
├─ index.html                     # HTML 入口文件
├─ package-lock.json              # 依赖锁定文件
├─ package.json                   # 项目配置文件
└─ vite.config.ts                 # Vite 配置文件