shimai
7 days ago d100657dacb25df91013ef25432620e6ae10d1f8
web-app/src/services/ProcessAPIService.js
@@ -39,10 +39,14 @@
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platform_code - 外部平台编号
   * @param {string} params.authorization - 授权token
   * @returns {Promise} 调解时间线数据
   */
  static getMediationTimeline(caseId, params = {}) {
    return request.get(`/api/v1/mediation-timeline/v2/case/${caseId}`, params);
    const { authorization, ...queryParams } = params;
    queryParams.authorization = authorization;
    const config = authorization ? { headers: { Authorization: authorization } } : {};
    return request.get(`/api/v1/mediation-timeline/v2/case/${caseId}`, queryParams, config);
  }
  /**
@@ -52,10 +56,13 @@
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platformCode - 外部平台编号
   * @param {string} params.caseId - 案件ID
   * @param {string} params.authorization - 授权token
   * @returns {Promise} 流程节点列表
   */
  static getProcessNodes(params = {}) {
    return request.get('/api/v1/process/node', params);
    const { authorization, ...queryParams } = params;
    const config = authorization ? { headers: { Authorization: authorization } } : {};
    return request.get('/api/v1/process/node', queryParams, config);
  } 
@@ -65,28 +72,42 @@
   * @param {Object} params - 查询参数
   * @param {string} params.caseTypeFirst - 案件一级分类
   * @param {string} params.platform_code - 外部平台编号
   * @param {string} params.authorization - 授权token(来自URL的auth_token)
   * @returns {Promise} 完整流程信息
   */
  static async getCaseProcessInfo(caseId, params = {}) {
    try {
      console.log('Getting case process info...', caseId, params);
      // 参数名转换:platform_code -> platformCode
      const nodeParams = {
        caseTypeFirst: params.caseTypeFirst,
        platformCode: params.platform_code,
        caseId
        caseId,
        authorization: params.authorization
      };
      
      // 提取authorization用于子请求
      const { authorization, ...timelineParams } = params;
      console.log('Timeline params:', timelineParams);
      timelineParams.authorization = authorization;
      // 并行获取时间线和流程节点
      const promises = [
        this.getMediationTimeline(caseId, params),
        this.getProcessNodes(nodeParams)
        this.getMediationTimeline(caseId, { ...timelineParams, authorization }),
        this.getProcessNodes({ ...nodeParams, authorization })
      ];
      const results = await Promise.all(promises);
      console.log('Timeline result:', results[0]);
      console.log('Nodes result:', results[1]);
      // nodes接口返回 { nodeList: [...] },需提取 nodeList 数组
      const nodesRaw = results[1].data;
      const nodes = nodesRaw?.nodeList || (Array.isArray(nodesRaw) ? nodesRaw : []);
      return {
        timeline: results[0].data || {},
        nodes: results[1].data || {}
        nodes
      };
    } catch (error) {
      return Promise.reject(error);
@@ -110,6 +131,38 @@
    }
  }
  /**
   * 人工接管API
   * PUT /api/v1/mediation-timeline/v2/case/{caseId}/takeover
   * @param {string} caseId - 案件ID
   * @param {Object} data - 请求数据
   * @param {string} data.userName - 当前用户名
   * @returns {Promise} 接管结果
   */
  static takeover(caseId, data) {
    return request.put(`/api/v1/mediation-timeline/v2/case/${caseId}/takeover`, data);
  }
  /**
   * AI调解状态控制API(终止/恢复)
   * PUT /api/v1/mediation-timeline/v2/case/{caseId}/state
   * @param {string} caseId - 案件ID
   * @param {Object} data - 请求数据
   * @param {number} data.action - 操作类型:0-终止,1-恢复
   * @param {string} data.userName - 操作人姓名(可选)
   * @returns {Promise} 状态更新结果
   *
   * @example
   * // 终止调解
   * ProcessAPIService.updateMediationState('1001', { action: 0, userName: '张三' });
   *
   * // 恢复调解
   * ProcessAPIService.updateMediationState('1001', { action: 1, userName: '李四' });
   */
  static updateMediationState(caseId, data) {
    return request.put(`/api/v1/mediation-timeline/v2/case/${caseId}/state`, data);
  }
}
export default ProcessAPIService;