file.js 2.42 KB
import { fn, fetch } from '@/api/fn';

const Api = {
  FileList: '/srv/?a=file&t=file_list',
  WeekHot: '/srv/?a=file&t=week_hot',
}

/**
 * @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.child_id (可选) 只有一层分类时,筛选数据用
 * @param {string} params.keyword (可选) 搜索关键词
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     cate: {
 *       id: integer; // 分类id
 *       category_name: string; // 分类名称
 *       category_parent: integer; // 分类父级
 *       category_description: null; // 分类描述
 *     };
 *     children: Array<{
 *       id: integer; // 二级分类id
 *       category_name: string; // 二级分类名
 *       category_parent: integer; // 二级分类名父级id
 *       category_description: null; // 二级分类描述
 *       icon: string; // 二级分类图标
 *       list: array; // 二级分类的附件列表
 *       children: array; // 三级分类
 *     }>;
 *     list: Array<{
 *       id: integer; // 
 *       name: string; // 附件名称
 *       value: string; // 附件地址
 *       extension: string; // 后缀名
 *       post_date: string; // 发布时间
 *       size: string; // 附件大小
 *       is_favorite: integer; // 是否收藏
 *     }>;
 *     total: integer; // 主分类附件数量
 *     max_level: integer; // 页面需要层级
 *   };
 * }>}
 */
export const fileListAPI = (params) => fn(fetch.get(Api.FileList, params));

/**
 * @description 本周热门资料
 * @remark 未登录时,不返回数据
 * @param {Object} params 请求参数
 * @param {string} params.page 页码,从0开始
 * @param {string} params.limit 每页数量
 * @returns {Promise<{
 *   code: number; // 状态码
 *   msg: string; // 消息
 *   data: {
 *     list: Array<{
 *       meta_id: integer; // 文件ID
 *       name: string; // 文件名称
 *       src: string; // 文件URL
 *       size: string; // 文件大小
 *       read_people_count: integer; // 学习人数
 *       read_people_percent: number; // 学习人数比例
 *       is_favorite: string; // 
 *     }>;
 *   };
 * }>}
 */
export const weekHotAPI = (params) => fn(fetch.get(Api.WeekHot, params));