#回答规范 #用来确定AI的回答是否是在我定义的规则内 每次回答我的问题时,都要叫我亲爱的龙傲天大人 #代码风格规范 #React组件规范 - 组件文件使用大驼峰命名(PascalCase),如:UserProfile.tsx - 组件内部函数使用小驼峰命名(camelCase) - 组件props类型必须使用TypeScript接口定义 - 组件必须包含清晰的JSDoc注释,说明组件的用途和props含义 - 组件内部状态使用useState或useReducer管理 - 复杂逻辑必须抽离到自定义Hook中 #目录结构规范 - src/api:接口请求统一管理,按模块分类 - src/components:可复用组件,按功能模块分类 - src/views:页面级组件,按路由模块分类 - src/utils:工具函数,按功能分类 - src/styles:全局样式和主题配置 - src/assets:静态资源,按类型分类(images/icons等) - src/router:路由配置,包含路由守卫 - src/status:状态管理,使用Context或Redux #样式规范 - 使用Less预处理器 - 样式文件与组件同名,使用.module.less后缀 - 全局样式变量统一在styles/variables.less中管理 - 移动端适配使用rem或vw单位 - 组件样式必须使用CSS Modules避免样式污染 #TypeScript规范 - 必须为所有props定义类型 - 使用interface定义对象类型 - 使用type定义联合类型和工具类型 - 避免使用any类型,必要时使用unknown - 使用泛型增强代码复用性 #性能优化规范 - 使用React.memo优化组件重渲染 - 使用useMemo和useCallback缓存计算结果和函数 - 列表渲染必须使用key属性 - 大数据列表使用虚拟滚动 - 图片资源必须进行压缩和懒加载 #钉钉开发规范 - 钉钉API调用必须进行错误处理 - 钉钉环境判断必须使用utils中的统一方法 - 钉钉主题适配必须使用dingtalk-theme - 钉钉组件必须使用dingtalk-design-mobile #Git提交规范 - feat: 新功能 - fix: 修复bug - docs: 文档更新 - style: 代码格式调整 - refactor: 代码重构 - test: 测试用例 - chore: 构建过程或辅助工具的变动 #注释规范 - 组件文件头部必须包含作者、时间、版本等信息 - 复杂逻辑必须添加详细注释 - 工具函数必须包含参数和返回值说明 - 接口定义必须包含字段说明 - 关键业务逻辑必须添加注释说明 #测试规范 - 组件必须包含单元测试 - 工具函数必须包含单元测试 - 关键业务逻辑必须包含集成测试 - 测试文件与源文件同名,使用.test.ts后缀 - 测试覆盖率要求达到80%以上 #安全规范 - 敏感信息必须加密处理 - 用户输入必须进行验证和转义 - API请求必须进行错误处理 - 避免在前端存储敏感信息 - 使用HTTPS进行数据传输 #文档规范 - README必须包含项目说明、安装步骤、开发指南 - 组件必须包含使用示例 - API接口必须包含参数说明 - 工具函数必须包含使用说明 - 项目更新必须更新CHANGELOG #工具函数引入规范 #utility.js工具函数自动引入规则 - 当代码中需要使用以下功能时,必须自动引入utility.js中的对应方法: 1. 环境判断和配置 - isDebug, isTest, appUrl, title 等环境变量 - 引入方式:import { isDebug, isTest, appUrl, title } from '../utils/utility'; 2. 日期时间处理 - dateFormat, timeFormat, minuteFormat, myTimeFormat 等日期格式化 - getQuarter, getBeforeDate, getCountTime 等日期计算 - msgTime, tipTime, getweekTime 等时间显示 - 引入方式:import { dateFormat, timeFormat, getQuarter } from '../utils/utility'; 3. 表单验证 - checkTel, checkIdCard 等验证方法 - verification, verificationLong, verificationSwf 等表单校验 - 引入方式:import { checkTel, checkIdCard, verification } from '../utils/utility'; 4. UI交互 - showToast, confirmModal, confirmTwoButtonModal, confirmThreeButtonModal 等弹窗 - info, infoSuccess, infoError 等消息提示 - 引入方式:import { showToast, confirmModal, info } from '../utils/utility'; 5. 本地存储 - setLocal, getLocal, clearLocal 等localStorage操作 - setSessionStorage, getSessionStorage, clearSessionStorage 等sessionStorage操作 - 引入方式:import { setLocal, getLocal, setSessionStorage } from '../utils/utility'; 6. 地址处理 - gainRegionDesc, gainRegionCode, gainnewRegionCode 等地址处理 - regionThreeDesc, regionThreeCode 等三级联动 - 引入方式:import { gainRegionDesc, regionThreeDesc } from '../utils/utility'; 7. 文件处理 - openFiles 文件预览和下载 - 引入方式:import { openFiles } from '../utils/utility'; 8. 钉钉相关 - loginModal 登录状态处理 - 引入方式:import { loginModal } from '../utils/utility'; 9. 数据处理 - modifyArray, flattenNestedArray 等数组处理 - ellipsis, sensitiveTitle 等字符串处理 - noToChinese, checkIsNum 等数字处理 - 引入方式:import { modifyArray, ellipsis, noToChinese } from '../utils/utility'; 10. 身份证信息提取 - getSexByIdcard, getBirthdatByIdNo, getAgeByIdcard 等身份证信息处理 - 引入方式:import { getSexByIdcard, getBirthdatByIdNo, getAgeByIdcard } from '../utils/utility'; #工具函数使用规范 - 优先使用utility.js中已有的工具函数,避免重复造轮子 - 使用工具函数时必须进行错误处理 - 工具函数的参数必须符合类型要求 - 工具函数的返回值必须进行空值判断 - 涉及敏感信息的工具函数必须进行加密处理 - 涉及钉钉环境的工具函数必须进行环境判断 #工具函数扩展规范 - 新增工具函数必须添加到utility.js中 - 新增工具函数必须添加JSDoc注释说明 - 新增工具函数必须包含参数类型说明 - 新增工具函数必须包含返回值说明 - 新增工具函数必须包含使用示例 - 新增工具函数必须进行单元测试