- 🏠 简介
- 🔌 api接口
-
🔧 插件开发
- 介绍
- 插件优势
- 新建插件
- 技术栈
- 插件开发规范
- 插件目录结构
- model 层开发
- service 层开发
- api 接口开发
- menu 菜单开发
-
event 事件钩子开发
- 开发指南
- 常用事件
- SiteInit 站点初始化事件
- AddSiteAfter 站点创建后事件
- MemberRegister 会员注册后事件
- MemberLogin 会员登录后事件
- PayCreate 支付创建事件
- PaySuccess 支付成功事件
- RefundSuccess 退款成功事件
- TransferSuccess 转账成功事件
- BottomNavigation 底部导航事件
- NoticeData 消息模板数据内容事件
- GetQrcodeOfChannel 创建二维码事件
- ExportDataType 导出数据类型事件
- ExportData 导出数据源事件
- GetPosterType 海报类型事件
- GetPosterData 海报数据事件
- ShowCustomer 应用管理加载事件
- GetWechatTransferTradeScene 微信支付转账场景事件
- ThemeColor 主题风格事件
- initWap 手机端初始化加载事件
- dict 数据字典开发
- layout 自定义布局开发
- job 消息队列和计划任务开发
- notice 消息发送开发
- printer 小票打印模板开发
- export 数据导出开发
- diy 自定义组件/页面装修开发
- diy 自定义表单组件开发
- poster 自定义海报开发
- icon 引入图标
- 支付方式开发
- upgrade 插件版本升级
- 打包插件
- 授权信息变更回调通知
- 官网上架
- 📝 二次开发须知
- 👨💻 二次开发指导
-
🎬 二次开发应用插件视频教程
- 二次开发安装视频教程
- 准备工作与创建插件
- 插件目录整体说明
- 插件admin目录
- 插件app目录说明(adminapi、api、验证器)
- 插件app目录(dict、job)
- 插件app目录说明(lang、listener)
- 插件app目录说明(model、service)
- 插件uniapp目录说明
- 插件开发之后台功能开发(代码生成器)
- 插件开发之uniapp功能开发(api)第一节
- 插件开发之uniapp功能开发(api)第二节
- 插件开发之uniapp功能开发(api)第三节
- 插件安装与打包原理
- 消息队列开发
- 计划任务开发
- DIY组件和自定义页面装修开发
- 支付接口开发
- 插件升级包打包流程以及云编译功能
web 端开发规范
组件开发规范
组件命名:
-
目录名使用小写字母和中划线,如: sidebar/
-
组件文件统一使用 index.vue ,便于导入
状态管理规范
Store文件命名:
使用小写字母,如: app.ts 、 member.ts
Store定义规范:
// stores/member.ts
import { defineStore } from 'pinia'
interface MemberState {
token: string
info: MemberInfo | null
}
interface MemberInfo {
id: number
nickname: string
mobile: string
// ... 其他字段
}
export const useMemberStore = defineStore('member', {
state: (): MemberState => ({
token: '',
info: null
}),
getters: {
isLogin: (state) => !!state.token,
memberId: (state) => state.info?.id || 0
},
actions: {
setToken(token: string) {
this.token = token
// 持久化存储
localStorage.setItem('token', token)
},
async getMemberInfo() {
try {
const res = await getMemberInfo()
this.info = res.data
return res
} catch (error) {
console.error('获取会员信息失败:', error)
throw error
}
},
logout() {
this.token = ''
this.info = null
localStorage.removeItem('token')
}
}
})
API调用规范
API文件组织:
-
按业务模块分类,如: member.ts 、 system.ts
-
统一使用TypeScript接口定义返回类型
API定义示例:
// member.ts
import { ApiResponse } from '@/types/api'
import { MemberInfo } from '@/types/member'
export interface GetMemberInfoResponse extends ApiResponse<MemberInfo> {
// 可以添加额外的字段
}
样式开发规范
样式文件结构:
-
全局样式: assets/styles/index.scss
-
公共样式: assets/styles/common.scss
-
组件样式:使用scoped SCSS
国际化规范
语言文件组织:
-
中文: lang/zh-cn/
-
英文: lang/en/
-
按模块分类文件
工具函数规范
工具函数分类:
-
common.ts - 通用工具函数
-
request.ts - 网络请求封装
-
storage.ts - 本地存储封装
-
language.ts - 语言相关工具
性能优化规范
组件优化:
-
使用 v-show 和 v-if 合理控制渲染
-
列表渲染使用 key 属性
-
合理使用 computed 和 watch 图片优化:
-
使用懒加载
-
压缩图片大小
-
使用CDN加速
代码分割:
-
路由懒加载
-
组件异步加载