file.js 3.03 KB
/*
 * @Date: 2026-02-06 18:10:17
 * @LastEditors: hookehuyr hookehuyr@gmail.com
 * @LastEditTime: 2026-02-06 18:12:50
 * @FilePath: /manulife-weapp/src/api/file.js
 * @Description: 文件相关 API
 */
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<{
        name: string; // 附件名称
        value: string; // 附件地址
        extension: string; // 后缀名
        post_date: string; // 发布时间
        size: string; // 附件大小
        is_favorite: integer; // 是否收藏
        id: string; // 附件id
      }>;
      children: Array<{
        id: integer; // 三级分类id
        category_name: string; // 三级分类名
        category_parent: integer; // 三级分类名父级id
        category_description: null; // 三级分类描述
        icon: string; // 二级分类图标
      }>;
    }>;
    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) => {
  return 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) => {
  return fn(fetch.get(Api.WeekHot, params));
};