- 🏠 简介
- 📥 源码下载
- 🚀 安装指南
- 🔧 niucloud (服务端)
- 🖥️ admin (后台管理端)
- 📱 uni-app(手机端前端)
- 🌐 web端(PC前端)
- ⚙️ 代码生成器
- ⚙️ 配置手册
- 📚 使用手册
- 🔄 版本更新
-
❓ 常见问题
- 服务器问题
- 安装问题
- 使用问题
- 版本问题
-
其他问题
- 怎么添加菜单,添加了菜单不出现怎么回事
- 站点site端(租户端、商家端)和saas管理端(平台端)究竟啥意思,有啥区别
- 框架中是有订单表order,假如开发一个商城插件,请问商城的订单数据是不是重新搞一个订单表shop_order
- 有些支付平台是绑定回调唯一网址或目录,如果有几个开发者开发插件都有支付那这块怎么解决?
- 站点过期,可以登录,这样对吗?
- 计划任务怎么启动啊
- Git多分支开发,切换分支
- 安装应用出现is_dir()报错处理方案
- 绑定授权时出现“请求来源产品与授权产品不一致”解决方案
- “未找到admin源码所在目录”的解决方案
- 页面装修本地开发环境配置
- 接口请求错误处理方案
- 未获取到授权信息问题处理方案
- 腾讯地图配置
- 请求超时问题处理方案
- 下载应用时提示找不到zip解决方案
- 怎么关闭开发调试模式
- 获取数据失败问题处理方案
- 框架安装后,访问域名无法进入admin端(多数发生在本地)
- 底部导航失效问题
- 开放平台小程序审核通过发布失败问题
- 先升级插件后升级框架,导致云编译报debounce的错误
- 微信公众号自动回复不通
- 如何修改访问域名默认跳转端口
- 插件与框架的版本兼容问题处理方案
- 升级提示mkdir()处理方案
- 云编译时node.js内存不足导致内存溢出处理方案
- 报错Allowed memory size of ** bytes exhausted (tried to allocate ** bytes)处理方法
- Mysql修改sql_mode模式
- 框架1.0.2之前升级最新版错误Undefined array key "content"
- 安装插件提示不适配框架版本的处理
接口
API模块结构
API按业务领域划分为多个模块,位于app/api/目录下:
├── app/
│ ├── api/
│ │ ├── article.ts # 文章相关接口
│ │ ├── auth.ts # 认证相关接口
│ │ ├── member.ts # 会员相关接口
│ │ └── system.ts # 系统相关接口
文章接口模块 (article.ts)
提供文章相关的数据获取功能:
// 获取文章列表
export function getArticleList(params: Record<string, any>) {
return request.get('article/article', params)
}
// 获取所有文章(可能用于下拉选择等场景)
export function getArticleAll(params: Record<string, any>) {
return request.get('article/article/all', params)
}
// 获取文章详情
export function getArticleDetail(id: number) {
return request.get(`article/article/${id}`)
}
// 获取文章分类
export function getArticleCategory() {
return request.get('article/category')
}
认证接口模块 (auth.ts)
处理用户登录、注册、退出等认证相关功能:
// 用户名密码登录
export function usernameLogin(data: AnyObject) {
return request.get('login', data)
}
// 手机验证码登录
export function mobileLogin(data: AnyObject) {
return request.post('login/mobile', data)
}
// 获取登录配置
export function getConfig() {
return request.get('login/config')
}
// 退出登录
export function logout() {
return request.put('auth/logout')
}
// 用户名注册
export function usernameRegister(data: AnyObject) {
let url = 'register'
data.pid && (url += `?pid=${data.pid}`) // 支持推荐人ID
return request.post(url, data)
}
// 手机号注册
export function mobileRegister(data: AnyObject) { /*...*/ }
// 微信登录相关接口
export function wechatLogin(data: AnyObject) { /*...*/ }
export function weappLogin(data: AnyObject) { /*...*/ }
export function scanlogin() { /*...*/ }
// 绑定手机号
export function bind(data: AnyObject) { /*...*/ }
会员接口模块 (member.ts)
提供会员信息查询和管理功能:
// 获取会员信息
export function getMemberInfo() {
return request.get('member/member')
}
// 修改会员信息
export function modifyMember(data: AnyObject) {
return request.put(`member/modify/${data.field}`, data)
}
// 获取积分流水
export function getPointList(data: AnyObject) {
return request.get('member/account/point', data)
}
// 获取余额流水
export function getBalanceList(data: AnyObject) {
return request.get('member/account/balance', data)
}
// 绑定手机号
export function bindMobile(data: AnyObject) {
return request.put('member/mobile', data)
}
系统接口模块 (system.ts)
提供系统功能相关的接口,如验证码、配置、文件处理等:
// 获取验证码
export function getCaptcha() {
return request.get('captcha', { time: (new Date().getTime()) })
}
// 发送短信验证码
export function sendSms(data: AnyObject) {
return request.post(`send/mobile/${data.type}`, data)
}
// 获取协议信息
export function getAgreementInfo(key: string) {
return request.get(`agreement/${key}`)
}
// 重置密码
export function resetPassword(data: AnyObject) {
return request.post(`password/reset`, data)
}
// 获取站点信息
export function getSiteInfo() {
return request.get('site')
}
// 获取版权信息
export function getCopyRight() {
return request.get('copyright')
}
// 微信相关接口
export function getWechatAuthCode(data: AnyObject) { /*...*/ }
export function getWechatSkdConfig(data: AnyObject) { /*...*/ }
// 文件处理接口
export function fetchImage(data: AnyObject) { /*...*/ }
export function fetchBase64Image(data: AnyObject) { /*...*/ }
接口使用示例
导入并使用API:
// 在组件中导入并使用API
import { getArticleList, getArticleDetail } from '@/app/api/article'
export default {
setup() {
// 获取文章列表
const fetchArticles = async () => {
try {
const params = { page: 1, size: 10, category_id: 1 }
const result = await getArticleList(params)
console.log('文章列表:', result)
} catch (error) {
console.error('获取文章列表失败:', error)
}
}
// 获取文章详情
const fetchArticleDetail = async (id: number) => {
try {
const result = await getArticleDetail(id)
console.log('文章详情:', result)
} catch (error) {
console.error('获取文章详情失败:', error)
}
}
return {
fetchArticles,
fetchArticleDetail
}
}
}