Initial commit: MSH System\n\n- msh_single_uniapp: Vue 2 + UniApp 前端(微信小程序/H5/App/支付宝小程序)\n- msh_crmeb_22: Spring Boot 2.2 后端(C端API/管理端/业务逻辑)\n- models-integration: AI服务集成(Coze/KieAI/腾讯ASR)\n- docs: 产品文档与设计稿

This commit is contained in:
2026-02-28 05:40:21 +08:00
commit 14d29d51c0
2182 changed files with 482509 additions and 0 deletions

View File

@@ -0,0 +1,231 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
/*
* 所有活动接口 包括:拼团,砍价,秒杀
*
*/
/**
* 拼团列表
*
*/
export function getCombinationList(data) {
return request.get('combination/list', data,{noAuth:true});
}
/**
* 拼团详情
*
*/
export function getCombinationDetail(id) {
return request.get('combination/detail/'+id);
}
/**
* 拼团 开团
*/
export function getCombinationPink(id) {
return request.get("combination/pink/" + id);
}
/**
* 拼团 取消开团
*/
export function postCombinationRemove(data) {
return request.post("combination/remove",data);
}
/**
* 拼团 更多拼团
*/
export function getCombinationMore(data) {
return request.get("combination/more",data,{noAuth:true});
}
/**
* 砍价列表
*/
export function getBargainList(data) {
return request.get("bargain/list", data,{noAuth:true});
}
/**
*
* 砍价列表(已参与)
* @param object data
*/
export function getBargainUserList(data){
return request.get('bargain/record',data);
}
/**
*
* 取消砍价
* @param int bargainId
*/
export function bargainUserCancel(bargainId){
return request.post('bargain/user/cancel', { bargainId: bargainId})
}
/**
* 砍价产品详情
*/
export function getBargainDetail(id) {
return request.get("bargain/detail/" + id);
}
/**
* 用户砍价信息,注意自己的活动和别人的活动的区别
*/
export function getBargainUser(data) {
return request.get("bargain/user", data);
}
/**
* 砍价开启
*/
export function postBargainStart(bargainId) {
return request.post("bargain/start", { bargainId: bargainId});
}
/**
* 砍价 帮助好友砍价
*/
export function postBargainHelp(data) {
return request.post("bargain/help", data);
}
/**
* 砍价 砍掉金额
*/
export function postBargainHelpPrice(data) {
return request.post("bargain/help/price", data);
}
/**
* 砍价 砍价帮
*/
export function postBargainHelpList(params,data) {
return request.get("bargain/help/list?limit="+params.limit+"&page="+params.page, data,{});
}
/**
* 秒杀产品时间区间
*
*/
export function getSeckillIndexTime(){
return request.get('seckill/index',{},{noAuth:true});
}
/**
* 秒杀产品列表
* @param int time
* @param object data
*/
export function getSeckillList(time,data){
return request.get('seckill/list/'+time,data,{noAuth:true});
}
/**
* 秒杀产品详情
* @param int id
*/
export function getSeckillDetail(id){
return request.get('seckill/detail/'+id);
}
/**
* 砍价海报
* @param object data
*
*/
export function getBargainPoster(data){
return request.post('bargain/poster',data)
}
/**
* 拼团海报
* @param object data
*
*/
export function getCombinationPoster(data){
return request.post('combination/poster',data)
}
/**
* 砍价取消
*/
export function getBargainUserCancel(data) {
return request.post("/bargain/user/cancel", data);
}
/**
* 获取秒杀小程序二维码
*/
export function seckillCode(id,data) {
return request.get("seckill/code/"+id,data);
}
/**
* 获取拼团小程序二维码
*/
export function scombinationCode(id) {
return request.get("combination/code/"+id);
}
/**
* 秒杀产品时间区间
* @param int id
*/
export function getSeckillHeaderApi(){
return request.get('seckill/header',{},{noAuth:true});
}
/**
* 首页秒杀产品列表
*/
export function getSeckillIndexApi(){
return request.get('seckill/index',{},{noAuth:true});
}
/**
* 首页拼团产品列表
*/
export function getCombinationIndexApi(){
return request.get('combination/index',{},{noAuth:true});
}
/**
* 首页砍价产品列表
*/
export function getBargainIndexApi(){
return request.get('bargain/index',{},{noAuth:true});
}
/**
* 首页砍价产品列表
*/
export function bargainHeaderApi(){
return request.get('bargain/header');
}
/**
* 拼图列表头部
*/
export function combinationHeaderApi(){
return request.get('combination/header');
}

View File

@@ -0,0 +1,316 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
/**
* 公共接口 ,优惠券接口 , 行业此讯 , 手机号码注册
*
*/
/**
* 获取主页数据 无需授权
*
*/
export function getIndexData()
{
return request.get("index",{},{ noAuth : true});
}
/**
* 获取登录授权login
*
*/
export function getLogo()
{
return request.get('wechat/getLogo', {}, { noAuth : true});
}
/**
* 保存form_id
* @param string formId
*/
export function setFormId(formId) {
return request.post("wechat/set_form_id", { formId: formId});
}
/**
* 领取优惠卷
* @param int couponId
*
*/
export function setCouponReceive(couponId){
return request.post('coupon/receive', { couponId: couponId});
}
/**
* 优惠券列表
* @param object data
*/
export function getCoupons(data){
return request.get('coupons',data,{noAuth:true})
}
/**
* 我的优惠券
* @param int types 0全部 1未使用 2已使用
*/
export function getUserCoupons(data){
return request.get('coupon/list',data)
}
/**
* 文章分类列表
*
*/
export function getArticleCategoryList(){
return request.get('article/category/list',{},{noAuth:true})
}
/**
* 文章列表
* @param int cid
*
*/
export function getArticleList(cid,data){
return request.get('article/list/' + cid, data,{noAuth:true})
}
/**
* 文章 热门列表
*
*/
export function getArticleHotList(){
return request.get('article/hot/list',{},{noAuth:true});
}
/**
* 文章 轮播列表
*
*/
export function getArticleBannerList(){
return request.get('article/banner/list',{},{noAuth:true})
}
/**
* 文章详情
* @param int id
*
*/
export function getArticleDetails(id){
return request.get('article/info',id,{noAuth:true});
}
/**
* 手机号+验证码登录接口
* @param object data
*/
export function loginMobile(data){
return request.post('login/mobile',data,{noAuth:true})
}
/**
* 获取短信KEY
* @param object phone
*/
export function verifyCode(){
return request.get('verify_code', {},{noAuth:true})
}
/**
* 验证码发送
* @param object phone
*/
export function registerVerify(phone){
return request.post('sendCode', { phone: phone },{noAuth:true},1)
}
/**
* 手机号注册
* @param object data
*
*/
export function phoneRegister(data){
return request.post('register',data,{noAuth:true});
}
/**
* 手机号修改密码
* @param object data
*
*/
export function phoneRegisterReset(data){
return request.post('register/reset',data,{noAuth:true})
}
/**
* 手机号+密码登录
* @param object data
*
*/
export function phoneLogin(data){
return request.post('login',data,{noAuth:true})
}
/**
* 切换H5登录
* @param object data
*/
// #ifdef MP
export function switchH5Login(){
return request.post('switch_h5', { 'from':'routine'});
}
// #endif
/*
* h5切换公众号登录
* */
// #ifdef H5
export function switchH5Login() {
return request.post("switch_h5", { 'from': "wechat" });
}
// #endif
/**
* 换绑手机号
*
*/
export function bindingPhone(data){
return request.post('update/binding',data);
}
/**
* 换绑手机号校验
*
*/
export function bindingVerify(data){
return request.post('update/binding/verify',data);
}
/**
* 退出登錄
*
*/
export function logout(){
return request.get('logout');
}
/**
* 获取订阅消息id
*/
export function getTemlIds(data)
{
return request.get('wechat/program/my/temp/list', data , { noAuth:true});
}
/**
* 首页拼团数据
*/
export function pink()
{
return request.get('pink', {}, { noAuth:true});
}
/**
* 获取城市信息
*/
export function getCity() {
return request.get('city/list', { }, { noAuth: true });
}
/**
* 获取小程序直播列表
*/
export function getLiveList(page,limit) {
return request.get('wechat/live', { page, limit}, { noAuth: true });
}
/**
* 获取小程序二维码
*/
export function getQrcode(data) {
return request.post('qrcode/get',data,{ noAuth: true });
}
/**
* 获取主题换色配置
*/
export function getTheme() {
return request.get('index/color/config',{},{noAuth:true});
}
/**
* 获取主题换色配置
*/
export function getAppVersion() {
return request.get('index/get/version',{},{noAuth:true});
}
/**
* 获取全局本地图片域名
*/
export function getImageDomain() {
return request.get('image/domain',{},{noAuth:true});
}
/**
* 商品排行榜
*/
export function productRank(){
return request.get('product/leaderboard',{},{noAuth:true});
}
/**
* 校验token是否有效
*/
export function tokenIsExistApi(){
return request.post(`token/is/exist`,{},{noAuth:true});
}
/**
* 获取登录配置
*/
export function loginConfigApi(){
return request.get(`login/config`,{},{noAuth:true});
}
/**
* 获取底部导航信息
*/
export function getBottomNavigationApi(){
return request.get(`get/bottom/navigation`,{},{noAuth:true});
}
/**
* 协议详情
*/
export function agreementInfo(info){
return request.get(`agreement/${info}`,{},{noAuth:true});
}
/**
* 首页装修
*/
export function pagediyInfoApi(id){
return request.get(`pagediy/info/${id}`,{},{noAuth:true});
}
/**
* 首页 第二级商品分类
*
*/
export function getCategoryTwo(id)
{
return request.get(`categorybypid/${id}`,{},{ noAuth : true});
}
/**
* 获取备案设置
*
*/
export function getConfigCopyright(id)
{
return request.get(`config/get/copyright`,{},{ noAuth : true},{},true);
}

View File

@@ -0,0 +1,464 @@
// API服务工具文件
// 统一访问 crmeb-front 项目,基地址来自 config/app.js
import { domain } from '@/config/app.js'
const API_BASE_URL = domain
/**
* 通用请求方法
* @param {string} url 请求地址
* @param {object} options 请求配置
* @returns {Promise} 请求结果
*/
function request(url, options = {}) {
return new Promise((resolve, reject) => {
uni.request({
url: `${API_BASE_URL}${url}`,
method: options.method || 'GET',
data: options.data || {},
header: {
'Content-Type': 'application/json',
...options.header
},
success: (res) => {
if (res.statusCode === 200) {
resolve(res.data)
} else {
reject(new Error(`请求失败: ${res.statusCode}`))
}
},
fail: (error) => {
reject(error)
}
})
})
}
/**
* 根据ID获取文章详情
* @param {string|number} id 文章ID
* @returns {Promise} 文章详情数据
*/
function getArticleById(id) {
return request(`/api/front/article-models/${id}`)
}
/**
* 获取文章列表
* @param {object} params 查询参数
* @param {number} params.page 页码默认1
* @param {number} params.size 每页数量默认10
* @returns {Promise} 文章列表数据
*/
function getArticleList(params = { page: 1, size: 10 }) {
// 构建查询字符串(兼容小程序环境)
const queryString = Object.keys(params)
.filter(key => params[key] !== undefined && params[key] !== null)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join('&')
const url = queryString ? `/api/front/article-models?${queryString}` : '/api/front/article-models'
return request(url, {
method: 'GET'
})
}
/**
* 根据条件查询文章列表
* @param {object} params 查询参数
* @param {number} params.statusTask 任务状态(可选)
* @param {string} params.uid 用户ID可选
* @param {string} params.tags 标签(可选)
* @param {string} params.type 文章类型(可选)
* @param {number} params.page 页码默认1
* @param {number} params.size 每页数量默认10
* @returns {Promise} 符合条件的文章列表数据
*/
function searchArticles(params = { page: 1, size: 10 }) {
// 构建查询字符串(兼容小程序环境)
const queryString = Object.keys(params)
.filter(key => params[key] !== undefined && params[key] !== null)
.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`)
.join('&')
const url = queryString ? `/api/front/article-models/search?${queryString}` : '/api/front/article-models/search'
return request(url, {
method: 'GET'
})
}
/**
* 创建文生视频任务
* @param {object} params 创建参数
* @param {string} params.prompt 文本描述
* @param {Array} params.image_urls 图片URL数组可选
* @param {string} params.aspect_ratio 视频比例,如 'portrait' 或 '16:9'
* @param {number} params.n_frames 帧数默认5
* @param {string} params.size 视频尺寸,默认 'standard'
* @param {boolean} params.remove_watermark 是否移除水印默认true
* @returns {Promise} 任务创建结果
*/
function createTextToVideoTask(params) {
const requestBody = {
model: "sora-2-text-to-video",
title: params.prompt,
task_id: "",
nickname: params.nickname || "",
uid: params.uid || "",
input: {
prompt: params.prompt,
image_urls: params.image_urls || [],
aspect_ratio: params.aspect_ratio || "portrait",
n_frames: params.n_frames || 5,
size: params.size || "standard",
remove_watermark: params.remove_watermark !== false
}
}
return request('/api/front/kieai/text-to-video', {
method: 'POST',
data: requestBody
})
}
/**
* 创建图生视频任务
* @param {object} params 创建参数
* @param {string} params.imageUrl 图片URL
* @param {string} params.prompt 文本描述(可选)
* @param {string} params.aspect_ratio 视频比例,如 'portrait' 或 '16:9'
* @param {number} params.n_frames 帧数默认5
* @param {string} params.size 视频尺寸,默认 'standard'
* @param {boolean} params.remove_watermark 是否移除水印默认true
* @returns {Promise} 任务创建结果
*/
function createImageToVideoTask(params) {
const requestBody = {
model: "sora-2-image-to-video",
title: params.prompt || "根据图片生成视频",
task_id: "",
nickname: params.nickname || "",
uid: params.uid || "",
input: {
prompt: params.prompt || "根据图片生成视频",
image_urls: [params.imageUrl],
aspect_ratio: params.aspect_ratio || "portrait",
n_frames: params.n_frames || 5,
size: params.size || "standard",
remove_watermark: params.remove_watermark !== false
}
}
return request('/api/front/kieai/image-to-video', {
method: 'POST',
data: requestBody
})
}
/**
* 创建图片编辑任务
* @param {object} params 创建参数
* @param {string} params.prompt 编辑描述,如"改一下"、"去掉背景"
* @param {Array} params.image_urls 图片URL数组
* @param {string} params.output_format 输出格式,默认'png'
* @param {string} params.image_size 图片尺寸,默认'2:3'
* @param {string} params.title 任务标题默认使用prompt
* @param {string} params.task_id 任务ID可选
* @returns {Promise} 任务创建结果
*/
function createImageEditTask(params) {
const requestBody = {
model: "google/nano-banana-edit",
title: params.title || params.prompt || "图片编辑",
task_id: params.task_id || "",
nickname: params.nickname || "",
uid: params.uid || "",
input: {
prompt: params.prompt,
image_urls: params.image_urls || [],
output_format: params.output_format || "png",
image_size: params.image_size || "2:3",
aspect_ratio: params.aspect_ratio || "9:16",
resolution: params.resolution || "2K",
}
}
return request('/api/front/kieai/image-edit', {
method: 'POST',
data: requestBody
})
}
/**
* 创建图片编辑任务
* @param {object} params 创建参数
* @param {string} params.prompt 编辑描述,如"改一下"、"去掉背景"
* @param {Array} params.image_urls 图片URL数组
* @param {string} params.output_format 输出格式,默认'png'
* @param {string} params.aspect_ratio 图片尺寸,默认'2:3'
* @param {string} params.title 任务标题默认使用prompt
* @param {string} params.task_id 任务ID可选
* @returns {Promise} 任务创建结果
*/
function createImageEditTaskPro(params) {
const requestBody = {
model: "nano-banana-pro",
title: params.title || params.prompt || "图片编辑",
task_id: params.task_id || "",
nickname: params.nickname || "",
uid: params.uid || "",
input: {
prompt: params.prompt,
image_urls: params.image_urls || [],
output_format: params.output_format || "png",
aspect_ratio: params.aspect_ratio || "2:3",
resolution: params.resolution || "2K"
}
}
return request('/api/front/kieai/image-edit', {
method: 'POST',
data: requestBody
})
}
/**
* 用户上传文件
* @param {string} filePath 文件路径
* @param {object} options 上传配置
* @param {string} options.model 模块类型,默认'user'
* @param {string} options.pid 分类ID默认'0'
* @returns {Promise} 上传结果
*/
function uploadFile(filePath, options = {}) {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: `${API_BASE_URL}/api/front/upload/imageOuter`,
filePath: filePath,
name: 'multipart',
formData: {
model: options.model || 'user',
pid: options.pid || '0'
},
success: (res) => {
try {
let data = res.data
if (typeof data === 'string') {
data = JSON.parse(data)
}
if (!data || typeof data !== 'object') {
throw new Error('响应格式异常')
}
if (data.code === 200) {
// 拼接完整的图片URL
const fullUrl = data.data.url.startsWith('http')
? data.data.url
: `https://uthink2025.oss-cn-shanghai.aliyuncs.com/${data.data.url}`
resolve({
...data,
data: {
...data.data,
fullUrl: fullUrl
}
})
} else {
reject(new Error(data.message || '上传失败'))
}
} catch (error) {
const raw = typeof res.data === 'string' ? res.data.slice(0, 300) : String(res.data || '')
const msg = error.message || '响应数据解析失败'
reject(new Error(msg + (raw ? ' body: ' + raw : '')))
}
},
fail: (error) => {
reject(new Error('上传请求失败'))
}
})
})
}
/**
* 创建语音识别任务
* @param {object} params 请求参数
* @param {string} params.url 音频文件URL
* @param {string} params.engineModelType 引擎模型类型默认16k_zh
* @param {number} params.channelNum 声道数默认1
* @param {number} params.resTextFormat 结果文本格式默认0
* @param {number} params.sourceType 源类型默认0
* @returns {Promise} 识别任务信息
*/
function createAsrTask(params) {
const defaultParams = {
engineModelType: '16k_zh',
channelNum: 1,
resTextFormat: 0,
sourceType: 0,
filterDirty: false,
filterModal: false,
convertNumMode: false,
wordInfo: false
}
return request('/api/front/tencent/asr/create-task', {
method: 'POST',
data: {
...defaultParams,
...params
}
})
}
/**
* 查询语音识别任务状态
* @param {string|number} taskId 任务ID
* @returns {Promise} 任务状态和识别结果
*/
function queryAsrStatus(taskId) {
return request(`/api/front/tencent/asr/query-status/${taskId}`)
}
// ==================== 扣子Coze API ====================
/**
* Coze - 发起对话 (Chat)
* @param {object} data 请求参数
* @param {string} data.bot_id 机器人ID
* @param {string} data.user_id 用户ID
* @param {Array} data.additional_messages 附加消息列表
* @param {boolean} data.stream 是否流式返回
* @param {boolean} data.auto_save_history 是否自动保存历史
* @param {object} data.meta_data 元数据
* @returns {Promise} 对话响应
*/
function cozeChat(data) {
return request('/api/front/coze/chat', {
method: 'POST',
data: data
})
}
/**
* Coze - 检索对话详情 (Retrieve Chat)
* @param {object} params 请求参数
* @param {string} params.conversationId 会话ID
* @param {string} params.chatId 对话ID
* @returns {Promise} 对话详情
*/
function cozeRetrieveChat(params) {
return request('/api/front/coze/chat/retrieve', {
method: 'POST',
data: params
})
}
/**
* Coze - 查看对话消息详情 (List Messages)
* @param {object} params 请求参数
* @param {string} params.conversationId 会话ID
* @param {string} params.chatId 对话ID
* @returns {Promise} 消息列表
*/
function cozeMessageList(params) {
return request('/api/front/coze/chat/messages/list', {
method: 'POST',
data: params
})
}
/**
* Coze - 执行工作流 (Run Workflow)
* @param {object} data 请求参数
* @param {string} data.workflowId 工作流ID
* @param {object} data.parameters 工作流参数
* @param {boolean} data.isAsync 是否异步
* @returns {Promise} 执行结果
*/
function cozeWorkflowRun(data) {
return request('/api/front/coze/workflow/run', {
method: 'POST',
data: data
})
}
/**
* Coze - 执行工作流 (Run Workflow Stream)
* @param {object} data 请求参数
* @param {string} data.workflowId 工作流ID
* @param {object} data.parameters 工作流参数
* @returns {Promise} 执行结果
*/
function cozeWorkflowStream(data) {
return request('/api/front/coze/workflow/stream', {
method: 'POST',
data: data
})
}
/**
* Coze - 恢复工作流 (Resume Workflow)
* @param {object} data 请求参数
* @param {string} data.workflow_id 工作流ID
* @param {string} data.event_id 事件ID
* @param {string} data.resume_data 恢复数据
* @param {number} data.resume_type 恢复类型
* @returns {Promise} 执行结果
*/
function cozeWorkflowResume(data) {
return request('/api/front/coze/workflow/resume', {
method: 'POST',
data: data
})
}
/**
* Coze - 上传文件 (Upload File)
* @param {string} filePath 文件路径
* @returns {Promise} 上传结果
*/
function cozeUploadFile(filePath) {
return new Promise((resolve, reject) => {
uni.uploadFile({
url: `${API_BASE_URL}/api/front/coze/file/upload`,
filePath: filePath,
name: 'file',
success: (res) => {
if (res.statusCode === 200) {
try {
const data = JSON.parse(res.data)
resolve(data)
} catch (e) {
reject(new Error('响应解析失败'))
}
} else {
reject(new Error(`上传失败: ${res.statusCode}`))
}
},
fail: (err) => {
reject(err)
}
})
})
}
export default {
request,
getArticleById,
getArticleList,
searchArticles,
createTextToVideoTask,
createImageToVideoTask,
createImageEditTask,
createImageEditTaskPro,
uploadFile,
createAsrTask,
queryAsrStatus,
// Coze API
cozeChat,
cozeRetrieveChat,
cozeMessageList,
cozeWorkflowRun,
cozeWorkflowStream,
cozeWorkflowResume,
cozeUploadFile
}

View File

@@ -0,0 +1,281 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
/**
* 获取购物车列表
* @param numType boolean true 购物车数量,false=购物车产品数量
*/
export function getCartCounts(numType,type) {
return request.get("cart/count?numType=" + numType + "&type=" + type);
}
/**
* 获取购物车列表
*
*/
export function getCartList(data) {
return request.get("cart/list", data);
}
/**
* 修改购物车数量
* @param int cartId 购物车id
* @param int number 修改数量
*/
export function changeCartNum(cartId, number) {
return request.post("cart/num", {
id: cartId,
number: number
}, {}, 1);
}
/**
* 清除购物车
* @param object ids join(',') 切割成字符串
*/
export function cartDel(ids) {
if (typeof ids === 'object')
ids = ids.join(',');
return request.post('cart/delete', {
ids: ids
}, {}, 1);
}
/**
* 购物车重选提交
*
*/
export function getResetCart(data) {
return request.post('cart/resetcart', data);
}
/**
* 订单列表
* @param object data
*/
export function getOrderList(data) {
return request.get('order/list', data);
}
/**
* 订单产品信息
* @param string unique
*/
export function orderProduct(data) {
return request.post('order/product', data);
}
/**
* 订单评价
* @param object data
*
*/
export function orderComment(data) {
return request.post('order/comment', data);
}
/**
* 订单支付
* @param object data
*/
export function orderPay(data) {
return request.post('pay/payment', data);
}
/**
* 订单统计数据
*/
export function orderData() {
return request.get('order/data')
}
/**
* 订单取消
* @param string id
*
*/
export function orderCancel(id) {
return request.post('order/cancel', {
id: id
}, {}, 1);
}
/**
* 删除已完成订单
* @param string uni
*
*/
export function orderDel(uni) {
return request.post('order/del', {
id: uni
}, {}, 1);
}
/**
* 订单详情
* @param string uni
*/
export function getOrderDetail(uni) {
return request.get('order/detail/' + uni);
}
/**
* 再次下单
* @param string uni
*
*/
export function orderAgain(uni) {
return request.post('order/again', {
orderNo: uni
});
}
/**
* 订单收货
* @param string uni
*
*/
export function orderTake(uni) {
return request.post('order/take', {
id: uni
}, {}, 1);
}
/**
* 订单查询物流信息
* @returns {*}
*/
export function express(uni) {
return request.get("order/express/" + uni);
}
/**
* 获取退款理由
*
*/
export function ordeRefundReason() {
return request.get('order/refund/reason');
}
/**
* 订单退款审核
* @param object data
*/
export function orderRefundVerify(data) {
return request.post('order/refund', data);
}
/**
* 订单确认获取订单详细信息
* @param string cartId
*/
export function orderConfirm(cartId, isNew, addAgain,secKill,combination,bargain) {
return request.post('order/confirm', {
cartIds: cartId,
isNew: isNew,
addAgain: addAgain,
secKill: secKill,
combination:combination,
bargain:bargain
});
}
/**
* 获取当前金额能使用的优惠卷
* @param string price
*
*/
export function getCouponsOrderPrice(preOrderNo) {
return request.get(`coupons/order/${preOrderNo}`)
}
/**
* 订单创建
* @param string key
* @param object data
*
*/
export function orderCreate(data) {
return request.post('order/create', data);
}
/**
* 计算订单金额
* @param key
* @param data
* @returns {*}
*/
export function postOrderComputed(data) {
return request.post("order/computed/price", data);
}
/**
* 将字符串 转base64
* @param object data
*/
export function qrcodeApi(data) {
return request.post('qrcode/str2base64', data, {}, 1);
}
/**
* 微信查询支付结果
* @param object data
*/
export function wechatQueryPayResult(data) {
return request.get('pay/queryPayResult?orderNo=' + data);
}
/**
* 支付宝查询支付结果
* @param object data
*/
export function alipayQueryPayResult(data) {
return request.get('pay/queryAliPayResult?orderNo=' + data);
}
/**
* 申请退款商品详情
* @param object data
*/
export function applyRefund(orderId) {
return request.get(`order/apply/refund/${orderId}`);
}
/**
* 预下单
* @param object data
*/
export function preOrderApi(data) {
return request.post(`order/pre/order`, data);
}
/**
* 加载预下单
* @param object preOrderNo
*/
export function loadPreOrderApi(preOrderNo) {
return request.get(`order/load/pre/${preOrderNo}`);
}
/**
* 获取支付配置
* @param object preOrderNo
*/
export function getPayConfig(preOrderNo) {
return request.get(`order/get/pay/config`);
}
/**
* 获取支付配置
*
*/
export function getOrderPayConfig() {
return request.get(`pay/get/config`);
}

View File

@@ -0,0 +1,119 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
import wechat from "@/libs/wechat.js";
import {
toLogin,
checkLogin
} from '../libs/login';
/**
* 获取微信公众号js配置
* @returns {*}
*/
export function getWechatConfig() {
return request.get("wechat/config",{ url: encodeURIComponent(wechat.signLink()) },{ noAuth: true });
}
/**
* 获取微信sdk配置
* @returns {*}
*/
export function wechatAuth(code, spread) {
var reg=/^[0-9]+.?[0-9]*$/; //判断字符串是否为数字 ,判断正整数用/^[1-9]+[0-9]*]*$/
spread = reg.test(spread) ? spread : 0;
return request.get(
"wechat/authorize/login?code=" + code + "&spread_spid=" + spread, {},
{ noAuth: true }
);
}
/**
* 获取登录授权login
*
*/
export function getLogo()
{
// wechat/get_logo
return request.get('wechat/getLogo', {}, { noAuth : true});
}
/**
* 小程序用户登录
* @param data object 小程序用户登录信息
*/
export function login(code,data) {
return request.post("wechat/authorize/program/login?code="+code, data, { noAuth : true });
}
/**
* 分享
* @returns {*}
*/
export function getShare() {
return request.get("share", {}, { noAuth: true });
}
/**
* 获取关注海报
* @returns {*}
*/
export function follow() {
return request.get("wechat/follow", {}, { noAuth: true });
}
/**
* 获取图片base64
* @retins {*}
* */
export function imageBase64(image) {
return request.post("qrcode/base64",image,{ noAuth: true },1);
}
/**
* 自动复制口令功能
* @returns {*}
*/
export function copyWords() {
return request.get("copy_words", {}, { noAuth: true });
}
/**
* 微信(公众号,小程序)绑定手机号
* @param {Object} data
*/
export function getUserPhone(data){
return request.post('wechat/register/binding/phone',data,{noAuth : true});
}
/**
* APP微信登录
* @param {Object} data
*/
export function appAuth(data) {
return request.post("wechat/authorize/app/login", data, { noAuth : true });
}
/**
* 苹果登录
* @param {Object} data
*/
export function appleLogin(data) {
return request.post("ios/login", data, { noAuth : true });
}
/**
* 苹果绑定手机号
* @param {Object} data
*/
export function iosBinding(data) {
return request.post("ios/binding/phone", data, { noAuth : true });
}

View File

@@ -0,0 +1,231 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
/**
* 获取产品详情
* @param int id
*
*/
export function getProductDetail(id, type) {
return request.get('product/detail/' + id + '?type=' + type, {}, {
noAuth: true
});
}
/**
* 产品分享二维码 推广员
* @param int id
*/
// #ifndef MP
export function getProductCode(id) {
return request.get('product/code/' + id, {});
}
// #endif
// #ifdef MP
export function getProductCode(id) {
return request.get('product/code/' + id, {
user_type: 'routine'
});
}
// #endif
/**
* 添加收藏
* @param int id
* @param string category product=普通产品,product_seckill=秒杀产品
*/
export function collectAdd(id, category) {
return request.post('collect/add', {
id: id,
'category': category === undefined ? 'product' : category
});
}
/**
* 取消收藏产品
* @param int id
*/
export function collectDel(proId) {
return request.post(`collect/cancel/${proId}`);
}
/**
* 删除收藏产品
* @param string id
*/
export function collectDelete(ids) {
return request.post(`collect/delete`,ids);
}
/**
* 购车添加
*
*/
export function postCartAdd(data) {
return request.post('cart/save', data, {});
}
/**
* 获取分类列表
*
*/
export function getCategoryList() {
return request.get('category', {}, {
noAuth: true
});
}
/**
* 获取产品列表
* @param object data
*/
export function getProductslist(data) {
return request.get('products', data, {
noAuth: true
});
}
/**
* 商品列表(个别分类模型使用)
* @param object data
*/
export function productList(data) {
return request.get('product/list', data, {
noAuth: true
});
}
/**
* 获取推荐产品
*
*/
export function getProductHot(page, limit) {
return request.get("product/hot", {
page: page === undefined ? 1 : page,
limit: limit === undefined ? 4 : limit
}, {
noAuth: true
});
}
/**
* 批量收藏
*
* @param object id 产品编号 join(',') 切割成字符串
* @param string category
*/
export function collectAll(id, category) {
return request.post('collect/all', {
id: id,
category: category === undefined ? 'product' : category
});
}
/**
* 首页产品的轮播图和产品信息
* @param int type
*
*/
export function getGroomList(type, data) {
return request.get('index/product/' + type, data, {
noAuth: true
});
}
/**
* 获取收藏列表
* @param object data
*/
export function getCollectUserList(data) {
return request.get('collect/user', data)
}
/**
* 获取产品评论
* @param int id
* @param object data
*
*/
export function getReplyList(id, data) {
return request.get('reply/list/' + id, data,{
noAuth: true
})
}
/**
* 产品评价数量和好评度
* @param int id
*/
export function getReplyConfig(id) {
return request.get('reply/config/' + id,{},{
noAuth: true
});
}
/**
* 获取搜索关键字获取
*
*/
export function getSearchKeyword() {
return request.get('search/keyword', {}, {
noAuth: true
});
}
/**
* 门店列表
* @returns {*}
*/
export function storeListApi(data) {
return request.post("store/list", data, {}, 1);
}
/**
* 优品推荐
* @param object data
*/
export function getProductGood() {
return request.get('product/good',{},{
noAuth: true
});
}
/**
* 详情页产品评论
* @param int id
* @param object data
*
*/
export function getReplyProduct(id) {
return request.get('reply/product/' + id,{}, {
noAuth: true
})
}
/**
* 获取商品的sku
* @returns {*}
*/
export function getAttr(id) {
return request.get("product/sku/detail/" + id);
}
/**
* 根据商品id集合查询对应商品
* @param {string} ids
*/
export function productByidsApi(ids) {
return request.get(`product/byids/${ids}`,{}, {
noAuth: true
});
}

View File

@@ -0,0 +1,526 @@
// +----------------------------------------------------------------------
// | Tool模块API接口
// +----------------------------------------------------------------------
// | 包含食谱计算器、AI营养师、饮食打卡、食物百科、营养知识等接口
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
import { HTTP_REQUEST_URL, TOKENNAME } from "@/config/app.js";
import store from "@/store";
// ==================== 食谱计算器相关 ====================
/**
* 计算营养方案
* @param {Object} data - 计算参数
* @param {String} data.gender - 性别male/female
* @param {Number} data.age - 年龄
* @param {Number} data.height - 身高(cm)
* @param {Boolean} data.dialysis - 是否透析true/false
* @param {String} data.dialysisType - 透析类型hemodialysis/peritoneal (可选)
* @param {Number} data.dryWeight - 干体重(kg)
* @param {Number} data.creatinine - 血肌酐(μmol/L)
*/
export function calculateNutrition(data) {
return request.post('tool/calculator/calculate', data);
}
/**
* 获取计算结果详情
* @param {Number} id - 计算结果ID
*/
export function getCalculatorResult(id) {
return request.get('tool/calculator/result/' + id);
}
/**
* 采纳营养计划
* @param {Number} resultId - 计算结果ID
*/
export function adoptNutritionPlan(resultId) {
return request.post('tool/calculator/adopt', { resultId });
}
// ==================== AI营养师相关 ====================
/**
* 发送消息给AI营养师
* @param {Object} data - 消息数据
* @param {String} data.content - 消息内容
* @param {String} data.type - 消息类型text/image/voice
* @param {String} data.imageUrl - 图片URL当type为image时
* @param {String} data.voiceUrl - 语音URL当type为voice时
* @param {String} data.conversationId - 会话ID可选用于继续对话
*/
export function sendAIMessage(data) {
return request.post('tool/ai-nutritionist/message', data);
}
/**
* 获取AI回复
* @param {String} messageId - 消息ID
*/
export function getAIResponse(messageId) {
return request.get('tool/ai-nutritionist/response/' + messageId);
}
/**
* 获取对话历史
* @param {Object} data - 查询参数
* @param {String} data.conversationId - 会话ID可选
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getConversationHistory(data) {
return request.get('tool/ai-nutritionist/history', data);
}
/**
* 清空对话历史
* @param {String} conversationId - 会话ID可选
*/
export function clearConversation(conversationId) {
return request.post('tool/ai-nutritionist/clear', { conversationId });
}
// ==================== 饮食打卡相关 ====================
/**
* 提交打卡记录
* @param {Object} data - 打卡数据
* @param {String} data.mealType - 餐次breakfast/lunch/dinner/snack
* @param {String} data.date - 打卡日期YYYY-MM-DD
* @param {Array} data.images - 图片URL数组
* @param {String} data.remark - 备注
* @param {String} data.voiceUrl - 语音备注URL可选
* @param {String} data.taskId - 语音识别任务ID可选
* @param {String} data.dishes - 菜品清单JSON字符串
* @param {Object} data.nutrition - 营养数据(可选)
* @param {Boolean} data.enableAIVideo - 是否生成AI视频
* @param {Boolean} data.enableAIAnalysis - 是否开启AI识别
*/
export function submitCheckin(data) {
return request.post('tool/checkin/submit', data);
}
/**
* 获取打卡记录列表
* @param {Object} data - 查询参数
* @param {String} data.date - 日期YYYY-MM-DD可选
* @param {String} data.mealType - 餐次(可选)
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getCheckinList(data) {
return request.get('tool/checkin/list', data);
}
/**
* 获取打卡记录详情
* @param {Number} id - 打卡记录ID
*/
export function getCheckinDetail(id) {
return request.get('tool/checkin/detail/' + id);
}
/**
* 获取连续打卡统计
*/
export function getCheckinStreak() {
return request.get('tool/checkin/streak');
}
/**
* 获取打卡日历数据
* @param {String} yearMonth - 年月YYYY-MM
*/
export function getCheckinCalendar(yearMonth) {
return request.get('tool/checkin/calendar', { yearMonth });
}
/**
* 获取打卡任务列表
*/
export function getCheckinTasks() {
return request.get('tool/checkin/tasks');
}
/**
* 查询视频任务状态
* @param {String} taskId - 任务ID
*/
export function getVideoTaskStatus(taskId) {
return request.get(`kieai/video/task/${taskId}`);
}
/**
* 一键复制打卡
* @param {Number} sourceRecordId - 源打卡记录ID
* @param {Object} data - 修改后的数据(可选)
*/
export function copyCheckin(sourceRecordId, data) {
return request.post('tool/checkin/copy', {
sourceRecordId,
...data
});
}
/**
* 一键借鉴打卡
* @param {Number} sourcePostId - 源社区内容ID
* @param {Object} data - 修改后的数据(可选)
*/
export function learnCheckin(sourcePostId, data) {
return request.post('tool/checkin/learn', {
sourcePostId,
...data
});
}
// ==================== 食物百科相关 ====================
/**
* 搜索食物
* @param {Object} data - 搜索参数
* @param {String} data.keyword - 搜索关键词
* @param {String} data.category - 分类(可选)
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function searchFood(data) {
return request.get('tool/food/search', data);
}
/**
* 获取食物列表(按分类)
* @param {Object} data - 查询参数
* @param {String} data.category - 分类all/grain/vegetable/fruit/meat/seafood
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getFoodList(data) {
return request.get('tool/food/list', data);
}
/**
* 获取食物详情
* @param {String} id - 食物ID或名称
*/
export function getFoodDetail(id) {
return request.get('tool/food/detail/' + id);
}
/**
* 获取相似食物推荐
* @param {String} foodId - 食物ID
*/
export function getSimilarFoods(foodId) {
return request.get('tool/food/similar/' + foodId);
}
// ==================== 营养知识相关 ====================
/**
* 获取营养知识列表
* @param {Object} data - 查询参数
* @param {String} data.type - 类型nutrients/guide/article
* @param {String} data.category - 分类(可选)
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getKnowledgeList(data) {
return request.get('tool/knowledge/list', data);
}
/**
* 获取营养知识详情
* @param {Number} id - 知识ID
*/
export function getKnowledgeDetail(id) {
return request.get('tool/knowledge/detail/' + id);
}
/**
* 获取营养素详情
* @param {String} name - 营养素名称
*/
export function getNutrientDetail(name) {
return request.get('tool/knowledge/nutrient/' + name);
}
// ==================== 打卡社区相关 ====================
/**
* 获取社区内容列表
* @param {Object} data - 查询参数
* @param {String} data.tab - Tab类型recommend/latest/follow/hot
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getCommunityList(data) {
return request.get('tool/community/list', data);
}
/**
* 获取社区内容详情
* @param {Number} id - 内容ID
*/
export function getCommunityDetail(id) {
return request.get('tool/community/detail/' + id);
}
/**
* 发布社区内容
* @param {Object} data - 内容数据
* @param {String} data.title - 标题
* @param {String} data.content - 内容
* @param {Array} data.images - 图片URL数组
* @param {Array} data.tags - 标签数组
* @param {Number} data.checkInRecordId - 关联的打卡记录ID可选
*/
export function publishCommunityPost(data) {
return request.post('tool/community/publish', data);
}
/**
* 点赞/取消点赞
* @param {Number} postId - 内容ID
* @param {Boolean} isLike - 是否点赞true/false
*/
export function toggleLike(postId, isLike) {
return request.post('tool/community/like', { postId, isLike });
}
/**
* 收藏/取消收藏
* @param {Number} postId - 内容ID
* @param {Boolean} isCollect - 是否收藏true/false
*/
export function toggleCollect(postId, isCollect) {
return request.post('tool/community/collect', { postId, isCollect });
}
/**
* 发表评论
* @param {Object} data - 评论数据
* @param {Number} data.postId - 内容ID
* @param {String} data.content - 评论内容
* @param {Number} data.parentCommentId - 父评论ID可选用于回复
* @param {Number} data.replyToUserId - 回复的用户ID可选
*/
export function addComment(data) {
return request.post('tool/community/comment', data);
}
/**
* 获取评论列表
* @param {Number} postId - 内容ID
* @param {Object} data - 查询参数
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getCommentList(postId, data) {
return request.get('tool/community/comment/list/' + postId, data);
}
/**
* 关注/取消关注用户
* @param {Number} userId - 用户ID
* @param {Boolean} isFollow - 是否关注true/false
*/
export function toggleFollow(userId, isFollow) {
return request.post('tool/community/follow', { userId, isFollow });
}
/**
* 分享内容
* @param {Number} postId - 内容ID
*/
export function sharePost(postId) {
return request.post('tool/community/share', { postId });
}
// ==================== 积分系统相关 ====================
/**
* 获取用户积分信息
*/
export function getUserPoints() {
return request.get('tool/points/info');
}
/**
* 获取积分规则
*/
export function getPointsRules() {
return request.get('tool/points/rules');
}
/**
* 获取积分流水
* @param {Object} data - 查询参数
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
* @param {String} data.type - 类型earn/consume可选
*/
export function getPointsHistory(data) {
return request.get('tool/points/history', data);
}
/**
* 获取积分兑换列表
*/
export function getPointsExchangeList() {
return request.get('tool/points/exchange/list');
}
/**
* 积分兑换
* @param {Number} exchangeId - 兑换项ID
*/
export function exchangePoints(exchangeId) {
return request.post('tool/points/exchange', { exchangeId });
}
// ==================== 首页数据相关 ====================
/**
* 获取首页数据
*/
export function getHomeData() {
return request.get('tool/home/data');
}
/**
* 获取推荐食谱列表
* @param {Object} data - 查询参数
* @param {Number} data.limit - 数量限制
*/
export function getRecommendedRecipes(data) {
return request.get('tool/home/recipes', data);
}
/**
* 获取推荐营养知识
* @param {Object} data - 查询参数
* @param {Number} data.limit - 数量限制
*/
export function getRecommendedKnowledge(data) {
return request.get('tool/home/knowledge', data);
}
/**
* 获取用户健康档案状态
*/
export function getUserHealthStatus() {
return request.get('tool/home/health-status');
}
// ==================== 食谱相关 ====================
/**
* 获取食谱列表
* @param {Object} data - 查询参数
* @param {String} data.mealType - 餐次(可选)
* @param {Number} data.page - 页码
* @param {Number} data.limit - 每页数量
*/
export function getRecipeList(data) {
return request.get('tool/recipe/list', data);
}
/**
* 获取食谱详情
* @param {Number} id - 食谱ID
*/
export function getRecipeDetail(id) {
return request.get('tool/recipe/detail/' + id);
}
/**
* 收藏/取消收藏食谱
* @param {Number} recipeId - 食谱ID
* @param {Boolean} isFavorite - 是否收藏true/false
*/
export function toggleRecipeFavorite(recipeId, isFavorite) {
return request.post('tool/recipe/favorite', { recipeId, isFavorite });
}
// ==================== 文件上传相关 ====================
/**
* 上传图片
* @param {String} filePath - 图片临时路径
* @param {String} type - 上传类型checkin/community/avatar
*/
export function uploadImage(filePath, type = 'checkin') {
return new Promise((resolve, reject) => {
const token = store.state.app.token || '';
const header = {};
if (token) {
header[TOKENNAME] = token;
}
uni.uploadFile({
url: HTTP_REQUEST_URL + '/api/front/tool/upload/image',
filePath: filePath,
name: 'file',
formData: {
type: type
},
header: header,
success: (res) => {
try {
const data = typeof res.data === 'string' ? JSON.parse(res.data) : res.data;
if (data.code === 200) {
resolve(data.data);
} else {
reject(data.message || '上传失败');
}
} catch (e) {
reject('解析响应失败');
}
},
fail: (err) => {
reject('上传失败:' + (err.errMsg || '网络错误'));
}
});
});
}
/**
* 上传语音
* @param {String} filePath - 语音临时路径
*/
export function uploadVoice(filePath) {
return new Promise((resolve, reject) => {
const token = store.state.app.token || '';
const header = {};
if (token) {
header[TOKENNAME] = token;
}
uni.uploadFile({
url: HTTP_REQUEST_URL + '/api/front/tool/upload/voice',
filePath: filePath,
name: 'file',
header: header,
success: (res) => {
try {
const data = typeof res.data === 'string' ? JSON.parse(res.data) : res.data;
if (data.code === 200) {
resolve(data.data);
} else {
reject(data.message || '上传失败');
}
} catch (e) {
reject('解析响应失败');
}
},
fail: (err) => {
reject('上传失败:' + (err.errMsg || '网络错误'));
}
});
});
}

View File

@@ -0,0 +1,483 @@
// +----------------------------------------------------------------------
// | CRMEB [ CRMEB赋能开发者助力企业发展 ]
// +----------------------------------------------------------------------
// | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
// +----------------------------------------------------------------------
// | Licensed CRMEB并不是自由软件未经许可不能去掉CRMEB相关版权
// +----------------------------------------------------------------------
// | Author: CRMEB Team <admin@crmeb.com>
// +----------------------------------------------------------------------
import request from "@/utils/request.js";
import Cache from "@/utils/cache.js"
/**
* 获取用户信息
*
*/
export function getUserInfo(){
return request.get('user');
}
/**
* 设置用户分享
*
*/
export function userShare(){
return request.post('user/share');
}
/**
* h5用户登录
* @param data object 用户账号密码
*/
export function loginH5(data) {
return request.post("login", data, { noAuth : true });
}
/**
* h5用户手机号登录
* @param data object 用户手机号 也只能
*/
export function loginMobile(data) {
return request.post("login/mobile", data, { noAuth : true });
}
/**
* 验证码key
*/
export function getCodeApi() {
return request.get("verify_code", {}, { noAuth: true });
}
/**
* h5用户发送验证码
* @param data object 用户手机号
*/
export function registerVerify(phone){
return request.post('sendCode', { phone: phone },{noAuth:true},1)
}
/**
* h5用户手机号注册
* @param data object 用户手机号 验证码 密码
*/
export function register(data) {
return request.post("register", data, { noAuth : true });
}
/**
* 用户手机号修改密码
* @param data object 用户手机号 验证码 密码
*/
export function registerReset(data) {
return request.post("register/reset", data, { noAuth: true });
}
/**
* 获取用户中心菜单
*
*/
export function getMenuList() {
return request.get("menu/user");
}
/*
* 签到用户信息
* */
export function postSignUser(sign) {
return request.post("user/sign/user", sign);
}
/**
* 获取签到配置
*
*/
export function getSignConfig(){
return request.get('user/sign/config')
}
/**
* 获取签到列表
* @param object data
*/
export function getSignList(data){
return request.get('user/sign/list',data);
}
/**
* 用户签到
*/
export function setSignIntegral(){
return request.get('user/sign/integral')
}
/**
* 签到列表(年月)
* @param object data
*
*/
export function getSignMonthList(data){
return request.get('user/sign/month',data)
}
/**
* 活动状态
*
*/
export function userActivity(){
return request.get('user/activity');
}
/*
* 余额明细types|2=全部,1=支出,2=收入)
* */
export function getCommissionInfo(data) {
return request.get("spread/commission/detail", data);
}
/*
* 提现记录 getCountApi
* */
export function getRecordApi(q) {
return request.get("extract/record", q);
}
/*
* 提现总金额
* */
export function getCountApi() {
return request.get("extract/totalMoney");
}
/*
* 积分记录
* */
export function getIntegralList(q) {
return request.get("integral/list", q);
}
/**
* 获取分销海报图片
*
*/
export function spreadBanner(data){
return request.get('user/spread/banner',data);
}
/**
*
* 获取推广用户一级和二级
* @param object data
*/
export function spreadPeople(data){
return request.get('spread/people',data);
}
/**
*
* 推广佣金/提现总和
* @param int type
*/
export function spreadCount(type){
return request.get('spread/count/'+type);
}
/*
* 推广数据 当前佣金 提现总金额
* */
export function getSpreadInfo() {
return request.get("commission");
}
/**
*
* 推广订单
* @param object data
*/
export function spreadOrder(data){
return request.get('spread/order',data);
}
/*
* 获取推广人排行
* */
export function getRankList(q) {
return request.get("rank", q);
}
/*
* 获取佣金排名
* */
export function getBrokerageRank(q) {
return request.get("brokerage_rank", q);
}
/**
* 提现申请
* @param object data
*/
export function extractCash(data){
return request.post('extract/cash',data)
}
/**
* 提现银行/提现最低金额
*
*/
export function extractBank(){
return request.get('extract/bank');
}
/**
* 会员等级列表
*
*/
export function userLevelGrade(){
return request.get('user/level/grade');
}
/**
* 获取某个等级任务
* @param int id 任务id
*/
export function userLevelTask(id){
return request.get('user/level/task/'+id);
}
/**
* 检查用户是否可以成为会员
*
*/
export function userLevelDetection(){
return request.get('user/level/detection');
}
/**
*
* 地址列表
* @param object data
*/
export function getAddressList(data){
return request.get('address/list',data);
}
/**
* 设置默认地址
* @param int id
*/
export function setAddressDefault(id){
return request.post('address/default/set',{id:id})
}
/**
* 修改 添加地址
* @param object data
*/
export function editAddress(data){
return request.post('address/edit',data);
}
/**
* 删除地址
* @param int id
*
*/
export function delAddress(id){
return request.post('address/del',{id:id})
}
/**
* 获取单个地址
* @param int id
*/
export function getAddressDetail(id){
return request.get('address/detail/'+id);
}
/**
* 修改用户信息
* @param object
*/
export function userEdit(data){
return request.post('user/edit',data);
}
/*
* 退出登录
* */
export function getLogout() {
return request.get("logout");
}
/**
* 小程序充值
*
*/
export function rechargeRoutine(data){
return request.post('recharge/routine',data)
}
/*
* 公众号充值
* */
export function rechargeWechat(data) {
return request.post("recharge/wechat", data);
}
/*
* app微信充值
* */
export function appWechat(data) {
return request.post("recharge/wechat/app", data);
}
/*
* 余额充值
* */
export function transferIn(data) {
return request.post("recharge/transferIn", data,{},1);
}
/*
* 支付宝充值
* */
export function alipayFull(data) {
return request.post("recharge/alipay", data,{});
}
/**
* 获取默认地址
*
*/
export function getAddressDefault(){
return request.get('address/default');
}
/**
* 充值金额选择
*/
export function getRechargeApi() {
return request.get("recharge/index");
}
/**
* 登录记录
*/
export function setVisit(data)
{
return request.post('user/set_visit', {...data}, { noAuth:true});
}
/**
* 客服列表
*/
export function serviceList() {
return request.get("user/service/lst");
}
/**
* 客服详情
*/
export function getChatRecord(to_uid, data) {
return request.get("user/service/record/" + to_uid, data);
}
/**
* 静默绑定推广人
* @param {Object} puid
*/
export function spread(puid)
{
return request.get("user/bindSpread?spreadPid="+ puid);
}
/**
* 当前用户在佣金排行第几名
*
*/
export function brokerageRankNumber(data)
{
return request.get("user/brokerageRankNumber",data);
}
/**
* 会员等级经验值;
*
*/
export function getlevelInfo()
{
return request.get("user/level/grade");
}
/**
* 经验值明细;
*
*/
export function getlevelExpList(data)
{
return request.get("user/expList",data);
}
/**
* 经验值明细;
*
*/
export function getuserDalance()
{
return request.get("user/balance");
}
/*
统计
*
*/
export function computeUser(){
uni.request({
url: document.location.protocol + '//shop.crmeb.net/index.php/admin/server.upgrade_api/updatewebinfo',
method:'POST',
data: {
host:window.location.host,
https:document.location.protocol,
version:'CRMEB-JAVA-SY-V2.0',
ip:Cache.has('Ip') ? Cache.get('Ip') : ''
},
dataType:'json',
success: (res) => {}
});
}
/**
* 账单记录;
*
*/
export function getBillList(data)
{
return request.get("recharge/bill/record",data);
}
/*
* 积分中心详情
* */
export function postIntegralUser() {
return request.get("integral/user");
}
/*
* 立即提现 冻结期、冻结佣金、可提现佣金、最低可提现金额
* */
export function extractUser() {
return request.get("extract/user");
}
/*
* 推广人统计页 推广人数(一级+二级)、一级人数、二级人数
* */
export function spreadPeoCount() {
return request.get("spread/people/count");
}
/**
* 版权信息
*/
export function copyrightApi(){
return request.get(`copyright/info`,{},{noAuth:true});
}