feat(erp): 新增项目验收和收货确认模块
- 新增项目验收确认编辑页面,包含表单录入、编号生成、项目选择等功能 - 新增项目收货确认编辑页面,支持表单验证、编号生成及流程启动 - 新增项目验收确认相关API接口,支持列表查询、获取详情、新增、修改、删除及提交流程 - 新增项目收货确认相关API接口,实现列表获取、详情查询、新增、更新、删除及流程发起 - 新增项目选择对话框组件,支持多条件筛选和单多选模式 - 实现前端权限控制,仅允许项目经理或超级管理员提交或暂存确认单据 - 实现审批状态映射,支持草稿、审批中、驳回、撤销等状态展示与操作 - 优化页面初始化逻辑,支持path和query参数兼容获取ID和任务ID - 实现附件上传功能,限制最多上传5个文件 - 统一表单校验规则,确保必填字段完整性 - 新增流水号生成逻辑,调用统一编码规则服务实现编号自动生成 - 支持流程审批记录查看及流程提交验证弹窗显示 - 支持页面类型区分编辑、查看、审批,禁用相应操作以保证业务流程正确dev
parent
bb7ff1d940
commit
fe777549d4
@ -0,0 +1,99 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { ProjectAcceptanceVO, ProjectAcceptanceForm, ProjectAcceptanceQuery } from '@/api/oa/erp/projectAcceptance/types';
|
||||
|
||||
/**
|
||||
* 查询项目验收确认列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listProjectAcceptance = (query?: ProjectAcceptanceQuery): AxiosPromise<ProjectAcceptanceVO[]> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询项目验收确认详细
|
||||
* @param acceptanceId
|
||||
*/
|
||||
export const getProjectAcceptance = (acceptanceId: string | number): AxiosPromise<ProjectAcceptanceVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/' + acceptanceId,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增项目验收确认
|
||||
* @param data
|
||||
*/
|
||||
export const addProjectAcceptance = (data: ProjectAcceptanceForm) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改项目验收确认
|
||||
* @param data
|
||||
*/
|
||||
export const updateProjectAcceptance = (data: ProjectAcceptanceForm) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除项目验收确认
|
||||
* @param acceptanceId
|
||||
*/
|
||||
export const delProjectAcceptance = (acceptanceId: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/' + acceptanceId,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据项目ID准备验收信息
|
||||
* @param projectId
|
||||
*/
|
||||
export const prepareProjectAcceptanceByProjectId = (projectId: string | number): AxiosPromise<ProjectAcceptanceVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/prepareByProjectId/' + projectId,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 提交项目验收确认并发起流程
|
||||
* @param data
|
||||
*/
|
||||
export const submitProjectAcceptanceAndFlowStart = (data: ProjectAcceptanceForm): AxiosPromise<ProjectAcceptanceVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/submitAndFlowStart',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 下拉框查询项目验收确认列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
export function getErpProjectAcceptanceList (query) {
|
||||
return request({
|
||||
url: '/oa/erp/projectAcceptance/getErpProjectAcceptanceList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
@ -0,0 +1,229 @@
|
||||
export interface ProjectAcceptanceVO {
|
||||
/**
|
||||
* 验收确认ID
|
||||
*/
|
||||
acceptanceId: string | number;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
projectId: string | number;
|
||||
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName: string;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理姓名
|
||||
*/
|
||||
projectManagerName?: string;
|
||||
|
||||
|
||||
/**
|
||||
* 验收日期
|
||||
*/
|
||||
acceptanceDate: string;
|
||||
|
||||
/**
|
||||
* 验收单附件
|
||||
*/
|
||||
ossId: string | number;
|
||||
|
||||
/**
|
||||
* 验收确认编号
|
||||
*/
|
||||
acceptanceCode?: string;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId: string | number;
|
||||
|
||||
/**
|
||||
* 部门负责人姓名
|
||||
*/
|
||||
chargeName?: string;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId: string | number;
|
||||
|
||||
/**
|
||||
* 分管副总姓名
|
||||
*/
|
||||
deputyName?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
flowStatus?: string;
|
||||
/**
|
||||
* 项目状态(1暂存 2审批中 3可用)
|
||||
*/
|
||||
acceptanceStatus?: string;
|
||||
}
|
||||
|
||||
export interface ProjectAcceptanceForm extends BaseEntity {
|
||||
/**
|
||||
* 验收确认ID
|
||||
*/
|
||||
acceptanceId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
projectId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode?: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName?: string;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理姓名
|
||||
*/
|
||||
projectManagerName?: string;
|
||||
|
||||
|
||||
/**
|
||||
* 验收日期
|
||||
*/
|
||||
acceptanceDate?: string;
|
||||
|
||||
/**
|
||||
* 验收单附件
|
||||
*/
|
||||
ossId?: string | number;
|
||||
|
||||
/**
|
||||
* 验收确认编号
|
||||
*/
|
||||
acceptanceCode?: string;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId?: string | number;
|
||||
/**
|
||||
* 部门负责人姓名
|
||||
*/
|
||||
chargeName?: string;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId?: string | number;
|
||||
/**
|
||||
* 分管副总姓名
|
||||
*/
|
||||
deputyName?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
flowStatus?: string;
|
||||
|
||||
/**
|
||||
* 项目状态(1暂存 2审批中 3可用)
|
||||
*/
|
||||
acceptanceStatus?: string;
|
||||
|
||||
/**
|
||||
* 流程编码
|
||||
*/
|
||||
flowCode?: string;
|
||||
|
||||
/**
|
||||
* 流程变量
|
||||
*/
|
||||
variables?: any;
|
||||
|
||||
/**
|
||||
* 业务扩展字段
|
||||
*/
|
||||
bizExt?: any;
|
||||
|
||||
}
|
||||
|
||||
export interface ProjectAcceptanceQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
projectId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode?: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName?: string;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId?: string | number;
|
||||
|
||||
/**
|
||||
* 验收日期
|
||||
*/
|
||||
acceptanceDate?: string;
|
||||
|
||||
/**
|
||||
* 验收单附件
|
||||
*/
|
||||
ossId?: string | number;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId?: string | number;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId?: string | number;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,99 @@
|
||||
import request from '@/utils/request';
|
||||
import { AxiosPromise } from 'axios';
|
||||
import { ProjectReceivingVO, ProjectReceivingForm, ProjectReceivingQuery } from '@/api/oa/erp/projectReceiving/types';
|
||||
|
||||
/**
|
||||
* 查询项目收货确认列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
|
||||
export const listProjectReceiving = (query?: ProjectReceivingQuery): AxiosPromise<ProjectReceivingVO[]> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/list',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 下拉框查询项目收货确认列表
|
||||
* @param query
|
||||
* @returns {*}
|
||||
*/
|
||||
export const getErpProjectReceivingList = (query?: ProjectReceivingQuery): AxiosPromise<ProjectReceivingVO[]> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/getErpProjectReceivingList',
|
||||
method: 'get',
|
||||
params: query
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 提交项目收货确认并发起流程
|
||||
* @param data
|
||||
*/
|
||||
export const submitProjectReceivingAndFlowStart = (data: ProjectReceivingForm): AxiosPromise<ProjectReceivingVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/submitAndFlowStart',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 根据项目ID准备收货信息
|
||||
* @param projectId
|
||||
*/
|
||||
export const prepareProjectReceivingByProjectId = (projectId: string | number): AxiosPromise<ProjectReceivingVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/prepareByProjectId/' + projectId,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 查询项目收货确认详细
|
||||
* @param receivingId
|
||||
*/
|
||||
export const getProjectReceiving = (receivingId: string | number): AxiosPromise<ProjectReceivingVO> => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/' + receivingId,
|
||||
method: 'get'
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 新增项目收货确认
|
||||
* @param data
|
||||
*/
|
||||
export const addProjectReceiving = (data: ProjectReceivingForm) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving',
|
||||
method: 'post',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 修改项目收货确认
|
||||
* @param data
|
||||
*/
|
||||
export const updateProjectReceiving = (data: ProjectReceivingForm) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving',
|
||||
method: 'put',
|
||||
data: data
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* 删除项目收货确认
|
||||
* @param receivingId
|
||||
*/
|
||||
export const delProjectReceiving = (receivingId: string | number | Array<string | number>) => {
|
||||
return request({
|
||||
url: '/oa/erp/projectReceiving/' + receivingId,
|
||||
method: 'delete'
|
||||
});
|
||||
};
|
||||
@ -0,0 +1,224 @@
|
||||
export interface ProjectReceivingVO {
|
||||
/**
|
||||
* 收货确认ID
|
||||
*/
|
||||
receivingId: string | number;
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName: string;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
projectId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理姓名
|
||||
*/
|
||||
projectManagerName?: string;
|
||||
|
||||
|
||||
/**
|
||||
* 到货日期
|
||||
*/
|
||||
arrivalDate: string;
|
||||
|
||||
/**
|
||||
* 收货单附件
|
||||
*/
|
||||
ossId: string | number;
|
||||
|
||||
/**
|
||||
* 收货确认编号
|
||||
*/
|
||||
receivingCode?: string;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId: string | number;
|
||||
|
||||
/**
|
||||
* 部门负责人姓名
|
||||
*/
|
||||
chargeName?: string;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId: string | number;
|
||||
|
||||
/**
|
||||
* 分管副总姓名
|
||||
*/
|
||||
deputyName?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark: string;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
flowStatus?: string;
|
||||
|
||||
/**
|
||||
* 项目状态(1暂存 2审批中 3可用)
|
||||
*/
|
||||
receivingStatus?: string;
|
||||
}
|
||||
|
||||
export interface ProjectReceivingForm extends BaseEntity {
|
||||
/**
|
||||
* 收货确认ID
|
||||
*/
|
||||
receivingId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode?: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName?: string;
|
||||
|
||||
/**
|
||||
* 项目ID
|
||||
*/
|
||||
projectId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId?: string | number;
|
||||
|
||||
/**
|
||||
* 项目经理姓名
|
||||
*/
|
||||
projectManagerName?: string;
|
||||
|
||||
|
||||
/**
|
||||
* 到货日期
|
||||
*/
|
||||
arrivalDate?: string;
|
||||
|
||||
/**
|
||||
* 收货单附件
|
||||
*/
|
||||
ossId?: string | number;
|
||||
|
||||
/**
|
||||
* 收货确认编号
|
||||
*/
|
||||
receivingCode?: string;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId?: string | number;
|
||||
/**
|
||||
* 部门负责人姓名
|
||||
*/
|
||||
chargeName?: string;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId?: string | number;
|
||||
/**
|
||||
* 分管副总姓名
|
||||
*/
|
||||
deputyName?: string;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
remark?: string;
|
||||
|
||||
/**
|
||||
* 流程状态
|
||||
*/
|
||||
flowStatus?: string;
|
||||
|
||||
/**
|
||||
* 项目状态(1暂存 2审批中 3可用)
|
||||
*/
|
||||
receivingStatus?: string;
|
||||
|
||||
/**
|
||||
* 流程编码
|
||||
*/
|
||||
flowCode?: string;
|
||||
|
||||
/**
|
||||
* 流程变量
|
||||
*/
|
||||
variables?: any;
|
||||
|
||||
/**
|
||||
* 业务扩展字段
|
||||
*/
|
||||
bizExt?: any;
|
||||
|
||||
}
|
||||
|
||||
export interface ProjectReceivingQuery extends PageQuery {
|
||||
|
||||
/**
|
||||
* 项目号
|
||||
*/
|
||||
projectCode?: string;
|
||||
|
||||
/**
|
||||
* 项目名称
|
||||
*/
|
||||
projectName?: string;
|
||||
|
||||
/**
|
||||
* 项目经理
|
||||
*/
|
||||
managerId?: string | number;
|
||||
|
||||
/**
|
||||
* 到货日期
|
||||
*/
|
||||
arrivalDate?: string;
|
||||
|
||||
/**
|
||||
* 收货单附件
|
||||
*/
|
||||
ossId?: string | number;
|
||||
|
||||
/**
|
||||
* 部门负责人
|
||||
*/
|
||||
chargeId?: string | number;
|
||||
|
||||
/**
|
||||
* 分管副总
|
||||
*/
|
||||
deputyId?: string | number;
|
||||
|
||||
/**
|
||||
* 日期范围参数
|
||||
*/
|
||||
params?: any;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue