mps-platform/cds-fontend-2025.V1
2025-09-01 11:17:09 +08:00
..
.cursor 前端init 2025-07-14 10:47:35 +08:00
build 前端init 2025-07-14 10:47:35 +08:00
packages 前端init 2025-07-14 10:47:35 +08:00
public 解决老旧浏览器(火狐)流式下载问题 2025-09-01 11:16:18 +08:00
src Merge remote-tracking branch 'origin/main' into main 2025-09-01 11:17:09 +08:00
.drone.yml 前端init 2025-07-14 10:47:35 +08:00
.editorconfig 前端init 2025-07-14 10:47:35 +08:00
.env 代码工具优化 2025-07-16 10:31:51 +08:00
.env.dev 版本规整V4 2025-08-29 16:14:30 +08:00
.env.prod 版本规整V3 2025-08-29 14:32:59 +08:00
.env.test 前端init 2025-07-14 10:47:35 +08:00
.gitattributes 前端init 2025-07-14 10:47:35 +08:00
.gitignore 前端init 2025-07-14 10:47:35 +08:00
.npmrc 前端init 2025-07-14 10:47:35 +08:00
cds-fontend-2025.V1.iml 前端init 2025-07-14 10:47:35 +08:00
eslint.config.js 前端init 2025-07-14 10:47:35 +08:00
index.html 1、信创改造V2,适配、兼容性等 2025-08-13 15:00:33 +08:00
package.json 解决老旧浏览器(火狐)流式下载问题 2025-09-01 11:16:18 +08:00
pnpm_run_dev.bat 前端init 2025-07-14 10:47:35 +08:00
pnpm-lock.yaml 解决老旧浏览器(火狐)流式下载问题 2025-09-01 11:16:18 +08:00
pnpm-workspace.yaml 前端init 2025-07-14 10:47:35 +08:00
readme 1、信创改造V2,适配、兼容性等 2025-08-13 15:00:33 +08:00
README.md 版本规整V2 2025-08-29 11:19:15 +08:00
readme.txt 优化导入效率 2025-08-26 16:40:33 +08:00
start_cds_fontend.bat 前端init 2025-07-14 10:47:35 +08:00
tsconfig.json 前端init 2025-07-14 10:47:35 +08:00
uno.config.ts 前端init 2025-07-14 10:47:35 +08:00
vite.config.ts 前端init 2025-07-14 10:47:35 +08:00

  • 核心框架Vue 3.5.x
  • 开发语言TypeScript 5.8.x
  • 构建工具Vite 6.2.x
  • UI组件库Naive UI 2.41.x
  • 状态管理Pinia 3.0.x
  • 路由Vue Router 4.5.x
  • HTTP客户端Axios/Alova
  • CSSUnoCSS
  • 包管理器pnpm 8.x+

🏗️ 项目结构

root
├── build                    # 构建配置和插件
│   ├── config               # 构建配置文件
│   └── plugins              # Vite 插件
├── docs                     # 文档和模板
│   ├── java                 # 代码生成工具类
│   └── template             # 代码生成模板
├── packages                 # Monorepo包
│   ├── alova                # 使用Alova的HTTP客户端实现
│   ├── axios                # 使用Axios的HTTP客户端实现
│   ├── color                # 颜色管理工具
│   ├── hooks                # 可复用的Vue组合函数
│   ├── materials            # UI组件和材料
│   ├── ofetch               # 使用ofetch的HTTP客户端实现
│   ├── scripts              # 构建和开发脚本
│   ├── uno-preset           # UnoCSS预设配置
│   └── utils                # 通用工具函数
├── public                   # 静态资源
├── src                      # 主应用源代码
│   ├── assets               # 静态资源(图片、图标)
│   ├── components           # 可复用的 Vue 组件
│   ├── constants            # 应用常量
│   ├── enum                 # TypeScript 枚举
│   ├── hooks                # Vue 组合函数
│   ├── layouts              # 页面布局
│   ├── locales              # 国际化
│   ├── plugins              # Vue 插件
│   ├── router               # Vue Router 配置
│   ├── service              # API 服务
│   ├── store                # Pinia 存储模块
│   ├── styles               # 全局样式
│   ├── theme                # 主题配置
│   ├── typings              # TypeScript 类型定义
│   ├── utils                # 工具函数
│   └── views                # 页面组件
└── vite.config.ts           # Vite 配置

🚀 环境要求与安装

环境要求

  • Node.js >= 18.20.0
  • pnpm >= 8.7.0
  • Git

安装步骤及说明

  1. 初始化版本

  2. 安装 pnpm (如果未安装)

npm install pnpm -g

设置淘宝镜像

pnpm config set registry https://registry.npmmirror.com
  1. 安装依赖
pnpm install
  1. 运行开发服务器
pnpm dev
  1. 构建生产版本
pnpm build

可用的脚本命令

# 开发环境
pnpm dev

# 测试环境
pnpm dev:test

# 生产环境
pnpm dev:prod

# 构建生产版本
pnpm build

# 构建开发版本
pnpm build:dev

# 构建测试版本
pnpm build:test

# 预览构建
pnpm preview

# 类型检查
pnpm typecheck

# 代码规范检查并修复
pnpm lint

# 路由生成
pnpm gen-route

# 提交代码
pnpm commit

# 中文提交信息
pnpm commit:zh

# 依赖包更新
pnpm update-pkg

# 清理项目
pnpm cleanup

# 发布新版本
pnpm release

核心开发模式

状态管理

使用Pinia进行状态管理模块位于src/store/modules目录:

  • app: 应用全局状态
  • theme: 主题配置
  • route: 路由信息
  • tab: 标签页管理
  • auth: 认证信息
  • dict: 字典管理
  • notice: 通知管理

API交互

  • Axios:
import { useRequest } from '@/hooks/common/request';

const { data, loading, error } = useRequest(() => api.getData(params));
  • Hooks使用:
// 布尔值管理
import { useBoolean } from '@sa/hooks';
const { bool, setTrue, setFalse } = useBoolean();

// 加载状态管理
import { useLoading } from '@sa/hooks';
const { loading, startLoading, endLoading } = useLoading();

// 表格管理
import { useTable } from '@/hooks/common/table';
const { tableData, loading, getPaginationData } = useTable(fetchTableData);