liu
2 天以前 749cb2f4ad815c5a68c19fe961d5ca2149a84dd4
src/api/mes/pd/project/index.ts
@@ -2,43 +2,57 @@
import { requestClient } from '#/api/request';
import { isPdMockEnabled } from '../mock/enabled';
import { pdMockStore } from '../mock/store';
export namespace MesPdProjectApi {
  /** 产品设计项目 */
  export interface Project {
    id?: number;
    code?: string;
    name?: string;
    /** 任务编码 */
    taskCode?: string;
    /** 任务名称 */
    taskName?: string;
    /** 产品编码 */
    productCode?: string;
    /** 产品名称 */
    productName?: string;
    /** 版本号 */
    version?: string;
    /** 状态 */
    status?: number;
    designerId?: number;
    designerName?: string;
    reviewerId?: number;
    reviewerName?: string;
    planStartDate?: number;
    planEndDate?: number;
    actualFinishDate?: number;
    /** 主设计师(用户ID) */
    chiefDesigner?: number;
    /** 主设计师名称 */
    chiefDesignerNickname?: string;
    /** 审核人(用户ID) */
    reviewer?: number;
    /** 审核人名称 */
    reviewerNickname?: string;
    /** 计划完成时间 */
    planFinishTime?: number;
    /** 备注 */
    remark?: string;
    /** 创建时间 */
    createTime?: number;
    /** 审核人用户编号(审核通过后写入实际审核人) */
    reviewerId?: number;
    /** 审核人姓名 */
    reviewerName?: string;
    /** 审核时间 */
    reviewTime?: number;
    /** 审核意见(通过时的意见 / 不通过时的原因) */
    reviewRemark?: string;
  }
  export interface PageParams extends PageParam {
    code?: string;
    name?: string;
    taskCode?: string;
    taskName?: string;
    productCode?: string;
    productName?: string;
    status?: number;
    designerId?: number;
    planFinishTime?: number[];
  }
}
export function getPdProjectPage(params: MesPdProjectApi.PageParams) {
  if (isPdMockEnabled()) {
    return pdMockStore.getProjectPage(params);
  }
  return requestClient.get<PageResult<MesPdProjectApi.Project>>(
    '/mes/pd/project/page',
    { params },
@@ -46,73 +60,81 @@
}
export function getPdProject(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.getProject(id);
  }
  return requestClient.get<MesPdProjectApi.Project>(
    `/mes/pd/project/get?id=${id}`,
  );
}
export function createPdProject(data: MesPdProjectApi.Project) {
  if (isPdMockEnabled()) {
    return pdMockStore.createProject(data);
  }
  return requestClient.post<number>('/mes/pd/project/create', data);
}
export function updatePdProject(data: MesPdProjectApi.Project) {
  if (isPdMockEnabled()) {
    return pdMockStore.updateProject(data);
  }
  return requestClient.put('/mes/pd/project/update', data);
}
export function deletePdProject(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.deleteProject(id);
  }
  return requestClient.delete(`/mes/pd/project/delete?id=${id}`);
}
export function exportPdProject(params: MesPdProjectApi.PageParams) {
  if (isPdMockEnabled()) {
    return Promise.resolve(new Blob());
  }
  return requestClient.download('/mes/pd/project/export-excel', { params });
}
export function submitPdProjectReview(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.submitProjectReview(id);
  }
  return requestClient.put('/mes/pd/project/submit-review', undefined, {
    params: { id },
  });
}
/** 发布(待发布→待上传) */
export function publishPdProject(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.publishProject(id);
  }
  return requestClient.put('/mes/pd/project/publish', undefined, {
    params: { id },
  });
}
export function approvePdProject(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.approveProject(id);
  }
  return requestClient.put('/mes/pd/project/approve', undefined, {
/** 上传资料(待上传→待审核),后端自动创建资料审核记录 */
export function uploadPdProject(id: number) {
  return requestClient.put('/mes/pd/project/upload', undefined, {
    params: { id },
  });
}
/**
 * 提交审批(待审核→审批中)
 *
 * 审核人由「系统管理 - 审批配置」按业务类型统一配置,提交时无需指定;
 * 未启用审批或未配置有效审核人时后端会抛出业务异常。
 */
export function submitPdProjectApproval(id: number) {
  return requestClient.put('/mes/pd/project/submit-approval', undefined, {
    params: { id },
  });
}
/**
 * 获得设计项目的审核人编号集合
 *
 * 供列表页判断当前登录用户是否应展示「审核 / 审核不通过」按钮;未配置时返回空数组。
 */
export function getPdProjectApproverIds() {
  return requestClient.get<number[]>('/mes/pd/project/approver-ids');
}
/**
 * 审核设计项目(审批中→待归档/待审核)
 *
 * 仅审批配置中的审核人可调用(多人时或签);pass=false 时 reviewRemark(不通过原因)必填。
 */
export function auditPdProject(
  id: number,
  pass: boolean,
  reviewRemark?: string,
) {
  return requestClient.put('/mes/pd/project/audit', {
    id,
    pass,
    reviewRemark,
  });
}
/** 归档(待归档→已归档),后端自动创建归档台账记录 */
export function archivePdProject(id: number) {
  if (isPdMockEnabled()) {
    return pdMockStore.archiveProject(id);
  }
  return requestClient.put('/mes/pd/project/archive', undefined, {
    params: { id },
  });