get_product.js 2.5 KB
import { fn, fetch } from '@/api/fn';

const Api = {
  Detail: '/srv/?a=get_product&t=detail',
  List: '/srv/?a=get_product&t=list',
}

/**
 * @description 产品详情
 * @remark 
 * @param {Object} params 请求参数
 * @param {string} params.client_id (可选) 主体id
 * @param {string} params.i 产品id
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     id: integer; // 产品id
 *     product_name: string; // 产品名
 *     recommend: string; // 推荐位: normal-普通, hot-热卖
 *     status: string; // 
 *     created_by: integer; // 
 *     created_time: string; // 
 *     updated_by: integer; // 
 *     updated_time: string; // 
 *     form_sn: string; // 关联表单sn
 *     product_description: string; // 产品描述
 *     categories: Array<{
 *       id: string; // 分类id
 *       name: string; // 分类名称
 *     }>;
 *     tags: Array<{
 *       id: string; // 标签id
 *       name: string; // 标签名
 *       bg_color: string; // 标签背景色
 *       text_color: string; // 标签文字色
 *     }>;
 *     documents: Array<{
 *       file_url: string; // 附件地址
 *       file_name: string; // 附件名
 *       file_size: string; // 附件大小
 *       file_size_formatted: string; // 附件大小(转换过显示)
 *     }>;
 *     cover_image: string; // 产品封面图
 *   };
 * }>}
 */
export const detailAPI = (params) => fn(fetch.get(Api.Detail, params));

/**
 * @description 产品列表
 * @remark 
 * @param {Object} params 请求参数
 * @param {string} params.client_id (可选) 主体id
 * @param {string} params.limit (可选) 
 * @param {string} params.page (可选) 
 * @param {string} params.cid (可选) 分类id
 * @param {string} params.recommend (可选) 推荐位: normal-普通, hot-热卖
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     categories: Array<{
 *       id: integer; // 分类id
 *       name: string; // 分类名
 *     }>;
 *     list: Array<{
 *       id: integer; // 产品id
 *       product_name: string; // 产品名
 *       recommend: string; // 推荐位: normal-普通, hot-热卖
 *       form_sn: string; // 
 *       created_time: string; // 创建时间
 *       categories: array; // 产品所属分类
 *       tags: array; // 产品标签
 *       cover_image: string; // 产品封面图
 *     }>;
 *     total: integer; // 产品总数
 *   };
 * }>}
 */
export const listAPI = (params) => fn(fetch.get(Api.List, params));