// 二级菜单 - 项目类型 export const projectTypes = [ { name: "前端", desc: "React/Vue项目" }, { name: "后端", desc: "Node.js服务端" }, { name: "全栈", desc: "前后端一体化" }, ]; // 三级菜单 - 具体框架 export const frameworks = { 前端: [ { name: "React", desc: "Vite + React", value: "react-vite" }, { name: "Vue", desc: "Vite + Vue", value: "vue-vite" }, ], 后端: [ { name: "Bun", desc: "Bun运行时", value: "bun" }, { name: "NestJS", desc: "企业级框架", value: "nestjs" }, { name: "Express", desc: "Express Generator", value: "express" }, { name: "Koa", desc: "Koa Generator", value: "koa" }, { name: "Egg", desc: "阿里Egg.js", value: "egg" }, { name: "Midway", desc: "阿里Midway", value: "midway" }, { name: "Fastify", desc: "高性能框架", value: "fastify" }, { name: "AdonisJS", desc: "全功能MVC", value: "adonisjs" }, ], 全栈: [ { name: "Next.js", desc: "React全栈框架", value: "nextjs" }, { name: "Nuxt", desc: "Vue全栈框架", value: "nuxt" }, ], }; // 前端组件配置步骤 export const frontendSteps = [ { name: "路由", type: "select", message: "选择路由方案", options: [ { value: "none", label: "不需要路由" }, { value: "react-router", label: "React Router(React项目)" }, { value: "vue-router", label: "Vue Router(Vue项目)" }, ], default: "none" }, { name: "状态管理", type: "select", message: "选择状态管理方案", options: [ { value: "none", label: "不需要状态管理" }, { value: "zustand", label: "Zustand(轻量级,React推荐)" }, { value: "pinia", label: "Pinia(Vue官方推荐)" }, { value: "redux", label: "Redux Toolkit(大型项目)" }, { value: "mobx", label: "MobX(响应式状态管理)" }, ], default: "none" }, { name: "HTTP请求", type: "select", message: "选择HTTP请求库", options: [ { value: "none", label: "不需要HTTP库" }, { value: "axios", label: "Axios(功能全面,拦截器支持)" }, { value: "ky", label: "Ky(轻量级,基于Fetch)" }, { value: "ofetch", label: "ofetch(Nuxt团队出品)" }, ], default: "none" }, { name: "UI组件库", type: "select", message: "选择UI组件库", options: [ { value: "none", label: "不需要UI库" }, { value: "antd", label: "Ant Design(企业级,React)" }, { value: "element-plus", label: "Element Plus(饿了么,Vue)" }, { value: "arco", label: "Arco Design(字节跳动)" }, { value: "naive-ui", label: "Naive UI(Vue3原生)" }, { value: "shadcn", label: "shadcn/ui(可定制,React)" }, ], default: "none" }, { name: "CSS方案", type: "select", message: "选择CSS方案", options: [ { value: "none", label: "原生CSS" }, { value: "tailwind", label: "Tailwind CSS(原子化CSS)" }, { value: "unocss", label: "UnoCSS(即时原子化)" }, { value: "sass", label: "Sass/SCSS(预处理器)" }, { value: "less", label: "Less(预处理器)" }, { value: "styled", label: "Styled Components(CSS-in-JS)" }, ], default: "none" }, { name: "工具库", type: "multiselect", message: "选择常用工具库", options: [ { value: "lodash", label: "Lodash(工具函数库)" }, { value: "dayjs", label: "Day.js(日期处理)" }, { value: "iconify", label: "Iconify(图标库)" }, { value: "vueuse", label: "VueUse(Vue组合式工具)" }, { value: "ahooks", label: "ahooks(React Hooks库)" }, ], default: [] }, { name: "表单验证", type: "select", message: "选择表单验证方案", options: [ { value: "none", label: "不需要表单验证" }, { value: "zod", label: "Zod(TypeScript优先)" }, { value: "yup", label: "Yup(声明式验证)" }, { value: "vee-validate", label: "VeeValidate(Vue专用)" }, { value: "react-hook-form", label: "React Hook Form" }, ], default: "none" }, { name: "国际化", type: "select", message: "选择国际化方案", options: [ { value: "none", label: "不需要国际化" }, { value: "i18next", label: "i18next(通用方案)" }, { value: "vue-i18n", label: "Vue I18n(Vue专用)" }, ], default: "none" }, { name: "代码规范", type: "multiselect", message: "选择代码规范工具", options: [ { value: "eslint", label: "ESLint(代码检查)" }, { value: "prettier", label: "Prettier(代码格式化)" }, { value: "husky", label: "Husky(Git Hooks)" }, { value: "lint-staged", label: "lint-staged(暂存区检查)" }, { value: "commitlint", label: "Commitlint(提交信息规范)" }, ], default: [] }, { name: "其他", type: "multiselect", message: "选择其他功能", options: [ { value: "mock", label: "Mock.js(模拟数据)" }, { value: "pwa", label: "PWA支持" }, { value: "storage", label: "持久化存储封装" }, { value: "env", label: "环境变量配置" }, ], default: [] } ];