From 80b6e269099b19d5efc645480941e36e91394910 Mon Sep 17 00:00:00 2001 From: Yangk Date: Thu, 30 Apr 2026 14:31:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(erp):=20=E6=B7=BB=E5=8A=A0=E6=9C=88?= =?UTF-8?q?=E6=A0=87=E5=87=86=E5=B7=A5=E6=97=B6=E4=BF=A1=E6=81=AF=E5=8F=8A?= =?UTF-8?q?=E6=9C=88=E6=B1=87=E6=80=BB=E5=B7=A5=E6=97=B6=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9B=B8=E5=85=B3API=E6=8E=A5=E5=8F=A3=E5=92=8C=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oa/erp/timesheetStandardMonth/index.ts | 76 ++++ .../oa/erp/timesheetStandardMonth/types.ts | 111 +++++ src/api/oa/erp/timesheetSummary/index.ts | 76 ++++ src/api/oa/erp/timesheetSummary/types.ts | 186 ++++++++ .../oa/erp/timesheetSummaryDetail/index.ts | 76 ++++ .../oa/erp/timesheetSummaryDetail/types.ts | 261 +++++++++++ .../oa/erp/timesheetStandardMonth/index.vue | 314 ++++++++++++++ src/views/oa/erp/timesheetSummary/index.vue | 326 ++++++++++++++ .../oa/erp/timesheetSummaryDetail/index.vue | 404 ++++++++++++++++++ 9 files changed, 1830 insertions(+) create mode 100644 src/api/oa/erp/timesheetStandardMonth/index.ts create mode 100644 src/api/oa/erp/timesheetStandardMonth/types.ts create mode 100644 src/api/oa/erp/timesheetSummary/index.ts create mode 100644 src/api/oa/erp/timesheetSummary/types.ts create mode 100644 src/api/oa/erp/timesheetSummaryDetail/index.ts create mode 100644 src/api/oa/erp/timesheetSummaryDetail/types.ts create mode 100644 src/views/oa/erp/timesheetStandardMonth/index.vue create mode 100644 src/views/oa/erp/timesheetSummary/index.vue create mode 100644 src/views/oa/erp/timesheetSummaryDetail/index.vue diff --git a/src/api/oa/erp/timesheetStandardMonth/index.ts b/src/api/oa/erp/timesheetStandardMonth/index.ts new file mode 100644 index 0000000..1eb7a1e --- /dev/null +++ b/src/api/oa/erp/timesheetStandardMonth/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TimesheetStandardMonthVO, TimesheetStandardMonthForm, TimesheetStandardMonthQuery } from '@/api/oa/erp/timesheetStandardMonth/types'; + +/** + * 查询月标准工时信息列表 + * @param query + * @returns {*} + */ + +export const listTimesheetStandardMonth = (query?: TimesheetStandardMonthQuery): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetStandardMonth/list', + method: 'get', + params: query + }); +}; + +/** + * 查询月标准工时信息详细 + * @param standardMonthId + */ +export const getTimesheetStandardMonth = (standardMonthId: string | number): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetStandardMonth/' + standardMonthId, + method: 'get' + }); +}; + +/** + * 新增月标准工时信息 + * @param data + */ +export const addTimesheetStandardMonth = (data: TimesheetStandardMonthForm) => { + return request({ + url: '/oa/erp/timesheetStandardMonth', + method: 'post', + data: data + }); +}; + +/** + * 修改月标准工时信息 + * @param data + */ +export const updateTimesheetStandardMonth = (data: TimesheetStandardMonthForm) => { + return request({ + url: '/oa/erp/timesheetStandardMonth', + method: 'put', + data: data + }); +}; + +/** + * 删除月标准工时信息 + * @param standardMonthId + */ +export const delTimesheetStandardMonth = (standardMonthId: string | number | Array) => { + return request({ + url: '/oa/erp/timesheetStandardMonth/' + standardMonthId, + method: 'delete' + }); +}; + +/** + * 下拉框查询月标准工时信息列表 + * @param query + * @returns {*} + */ +export function getErpTimesheetStandardMonthList (query) { + return request({ + url: '/oa/erp/timesheetStandardMonth/getErpTimesheetStandardMonthList', + method: 'get', + params: query + }); +}; diff --git a/src/api/oa/erp/timesheetStandardMonth/types.ts b/src/api/oa/erp/timesheetStandardMonth/types.ts new file mode 100644 index 0000000..3e1285b --- /dev/null +++ b/src/api/oa/erp/timesheetStandardMonth/types.ts @@ -0,0 +1,111 @@ +export interface TimesheetStandardMonthVO { + /** + * 月标准工时ID + */ + standardMonthId: string | number; + + /** + * 月份编码(YYYYMM,如202604) + */ + monthCode: string; + + /** + * 月份显示名(如2026年4月) + */ + monthLabel: string; + + /** + * 起始日期 + */ + startDate: string; + + /** + * 截止日期 + */ + endDate: string; + + /** + * 月标准工时天数(如21.0、21.5) + */ + standardDays: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface TimesheetStandardMonthForm extends BaseEntity { + /** + * 月标准工时ID + */ + standardMonthId?: string | number; + + /** + * 月份编码(YYYYMM,如202604) + */ + monthCode?: string; + + /** + * 月份显示名(如2026年4月) + */ + monthLabel?: string; + + /** + * 起始日期 + */ + startDate?: string; + + /** + * 截止日期 + */ + endDate?: string; + + /** + * 月标准工时天数(如21.0、21.5) + */ + standardDays?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface TimesheetStandardMonthQuery extends PageQuery { + + /** + * 月份编码(YYYYMM,如202604) + */ + monthCode?: string; + + /** + * 月份显示名(如2026年4月) + */ + monthLabel?: string; + + /** + * 起始日期 + */ + startDate?: string; + + /** + * 截止日期 + */ + endDate?: string; + + /** + * 月标准工时天数(如21.0、21.5) + */ + standardDays?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/oa/erp/timesheetSummary/index.ts b/src/api/oa/erp/timesheetSummary/index.ts new file mode 100644 index 0000000..7f7077e --- /dev/null +++ b/src/api/oa/erp/timesheetSummary/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TimesheetSummaryVO, TimesheetSummaryForm, TimesheetSummaryQuery } from '@/api/oa/erp/timesheetSummary/types'; + +/** + * 查询月汇总工时信息列表 + * @param query + * @returns {*} + */ + +export const listTimesheetSummary = (query?: TimesheetSummaryQuery): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetSummary/list', + method: 'get', + params: query + }); +}; + +/** + * 查询月汇总工时信息详细 + * @param summaryId + */ +export const getTimesheetSummary = (summaryId: string | number): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetSummary/' + summaryId, + method: 'get' + }); +}; + +/** + * 新增月汇总工时信息 + * @param data + */ +export const addTimesheetSummary = (data: TimesheetSummaryForm) => { + return request({ + url: '/oa/erp/timesheetSummary', + method: 'post', + data: data + }); +}; + +/** + * 修改月汇总工时信息 + * @param data + */ +export const updateTimesheetSummary = (data: TimesheetSummaryForm) => { + return request({ + url: '/oa/erp/timesheetSummary', + method: 'put', + data: data + }); +}; + +/** + * 删除月汇总工时信息 + * @param summaryId + */ +export const delTimesheetSummary = (summaryId: string | number | Array) => { + return request({ + url: '/oa/erp/timesheetSummary/' + summaryId, + method: 'delete' + }); +}; + +/** + * 下拉框查询月汇总工时信息列表 + * @param query + * @returns {*} + */ +export function getErpTimesheetSummaryList (query) { + return request({ + url: '/oa/erp/timesheetSummary/getErpTimesheetSummaryList', + method: 'get', + params: query + }); +}; diff --git a/src/api/oa/erp/timesheetSummary/types.ts b/src/api/oa/erp/timesheetSummary/types.ts new file mode 100644 index 0000000..1a8124e --- /dev/null +++ b/src/api/oa/erp/timesheetSummary/types.ts @@ -0,0 +1,186 @@ +export interface TimesheetSummaryVO { + /** + * 汇总工时ID + */ + summaryId: string | number; + + /** + * 汇总编号 + */ + summaryCode: string; + + /** + * 月份编码(YYYYMM) + */ + monthCode: string; + + /** + * 部门ID + */ + deptId: string | number; + + /** + * 汇总人(部门负责人)用户ID + */ + userId: string | number; + + /** + * 关联月标准工时ID + */ + standardMonthId: string | number; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + standardDays: number; + + /** + * 项目工时合计(天) + */ + totalProjectHours: number; + + /** + * 部门工时合计(天) + */ + totalDeptHours: number; + + /** + * 总工时合计(天) + */ + totalHours: number; + + /** + * 汇总人数 + */ + staffCount: number; + + /** + * 备注 + */ + remark: string; + +} + +export interface TimesheetSummaryForm extends BaseEntity { + /** + * 汇总工时ID + */ + summaryId?: string | number; + + /** + * 汇总编号 + */ + summaryCode?: string; + + /** + * 月份编码(YYYYMM) + */ + monthCode?: string; + + /** + * 部门ID + */ + deptId?: string | number; + + /** + * 汇总人(部门负责人)用户ID + */ + userId?: string | number; + + /** + * 关联月标准工时ID + */ + standardMonthId?: string | number; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + standardDays?: number; + + /** + * 项目工时合计(天) + */ + totalProjectHours?: number; + + /** + * 部门工时合计(天) + */ + totalDeptHours?: number; + + /** + * 总工时合计(天) + */ + totalHours?: number; + + /** + * 汇总人数 + */ + staffCount?: number; + + /** + * 备注 + */ + remark?: string; + +} + +export interface TimesheetSummaryQuery extends PageQuery { + + /** + * 汇总编号 + */ + summaryCode?: string; + + /** + * 月份编码(YYYYMM) + */ + monthCode?: string; + + /** + * 部门ID + */ + deptId?: string | number; + + /** + * 汇总人(部门负责人)用户ID + */ + userId?: string | number; + + /** + * 关联月标准工时ID + */ + standardMonthId?: string | number; + + /** + * 月标准工时天数(冗余,取自标准月表) + */ + standardDays?: number; + + /** + * 项目工时合计(天) + */ + totalProjectHours?: number; + + /** + * 部门工时合计(天) + */ + totalDeptHours?: number; + + /** + * 总工时合计(天) + */ + totalHours?: number; + + /** + * 汇总人数 + */ + staffCount?: number; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/oa/erp/timesheetSummaryDetail/index.ts b/src/api/oa/erp/timesheetSummaryDetail/index.ts new file mode 100644 index 0000000..d538b34 --- /dev/null +++ b/src/api/oa/erp/timesheetSummaryDetail/index.ts @@ -0,0 +1,76 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { TimesheetSummaryDetailVO, TimesheetSummaryDetailForm, TimesheetSummaryDetailQuery } from '@/api/oa/erp/timesheetSummaryDetail/types'; + +/** + * 查询月汇总工时明细列表 + * @param query + * @returns {*} + */ + +export const listTimesheetSummaryDetail = (query?: TimesheetSummaryDetailQuery): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetSummaryDetail/list', + method: 'get', + params: query + }); +}; + +/** + * 查询月汇总工时明细详细 + * @param summaryDetailId + */ +export const getTimesheetSummaryDetail = (summaryDetailId: string | number): AxiosPromise => { + return request({ + url: '/oa/erp/timesheetSummaryDetail/' + summaryDetailId, + method: 'get' + }); +}; + +/** + * 新增月汇总工时明细 + * @param data + */ +export const addTimesheetSummaryDetail = (data: TimesheetSummaryDetailForm) => { + return request({ + url: '/oa/erp/timesheetSummaryDetail', + method: 'post', + data: data + }); +}; + +/** + * 修改月汇总工时明细 + * @param data + */ +export const updateTimesheetSummaryDetail = (data: TimesheetSummaryDetailForm) => { + return request({ + url: '/oa/erp/timesheetSummaryDetail', + method: 'put', + data: data + }); +}; + +/** + * 删除月汇总工时明细 + * @param summaryDetailId + */ +export const delTimesheetSummaryDetail = (summaryDetailId: string | number | Array) => { + return request({ + url: '/oa/erp/timesheetSummaryDetail/' + summaryDetailId, + method: 'delete' + }); +}; + +/** + * 下拉框查询月汇总工时明细列表 + * @param query + * @returns {*} + */ +export function getErpTimesheetSummaryDetailList (query) { + return request({ + url: '/oa/erp/timesheetSummaryDetail/getErpTimesheetSummaryDetailList', + method: 'get', + params: query + }); +}; diff --git a/src/api/oa/erp/timesheetSummaryDetail/types.ts b/src/api/oa/erp/timesheetSummaryDetail/types.ts new file mode 100644 index 0000000..87c7739 --- /dev/null +++ b/src/api/oa/erp/timesheetSummaryDetail/types.ts @@ -0,0 +1,261 @@ +export interface TimesheetSummaryDetailVO { + /** + * 汇总明细ID + */ + summaryDetailId: string | number; + + /** + * 关联汇总主表ID + */ + summaryId: string | number; + + /** + * 排序号 + */ + sortOrder: number; + + /** + * 员工用户ID + */ + staffUserId: string | number; + + /** + * 员工姓名(冗余字段) + */ + staffName: string; + + /** + * 工时类型(1项目工时 0部门工时) + */ + isProject: string; + + /** + * 原项目ID(填报时的项目) + */ + originalProjectId: string | number; + + /** + * 原项目编码(冗余) + */ + originalProjectCode: string; + + /** + * 原项目名称(冗余) + */ + originalProjectName: string; + + /** + * 原项目工时(天) + */ + originalHours: number; + + /** + * 修改后项目ID + */ + adjustedProjectId: string | number; + + /** + * 修改后项目编码(冗余) + */ + adjustedProjectCode: string; + + /** + * 修改后项目名称(冗余) + */ + adjustedProjectName: string; + + /** + * 修改后工时(天) + */ + adjustedHours: number; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + isGenerated: string; + + /** + * 部门工作描述 + */ + workDescription: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface TimesheetSummaryDetailForm extends BaseEntity { + /** + * 汇总明细ID + */ + summaryDetailId?: string | number; + + /** + * 关联汇总主表ID + */ + summaryId?: string | number; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 员工用户ID + */ + staffUserId?: string | number; + + /** + * 员工姓名(冗余字段) + */ + staffName?: string; + + /** + * 工时类型(1项目工时 0部门工时) + */ + isProject?: string; + + /** + * 原项目ID(填报时的项目) + */ + originalProjectId?: string | number; + + /** + * 原项目编码(冗余) + */ + originalProjectCode?: string; + + /** + * 原项目名称(冗余) + */ + originalProjectName?: string; + + /** + * 原项目工时(天) + */ + originalHours?: number; + + /** + * 修改后项目ID + */ + adjustedProjectId?: string | number; + + /** + * 修改后项目编码(冗余) + */ + adjustedProjectCode?: string; + + /** + * 修改后项目名称(冗余) + */ + adjustedProjectName?: string; + + /** + * 修改后工时(天) + */ + adjustedHours?: number; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + isGenerated?: string; + + /** + * 部门工作描述 + */ + workDescription?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface TimesheetSummaryDetailQuery extends PageQuery { + + /** + * 关联汇总主表ID + */ + summaryId?: string | number; + + /** + * 排序号 + */ + sortOrder?: number; + + /** + * 员工用户ID + */ + staffUserId?: string | number; + + /** + * 员工姓名(冗余字段) + */ + staffName?: string; + + /** + * 工时类型(1项目工时 0部门工时) + */ + isProject?: string; + + /** + * 原项目ID(填报时的项目) + */ + originalProjectId?: string | number; + + /** + * 原项目编码(冗余) + */ + originalProjectCode?: string; + + /** + * 原项目名称(冗余) + */ + originalProjectName?: string; + + /** + * 原项目工时(天) + */ + originalHours?: number; + + /** + * 修改后项目ID + */ + adjustedProjectId?: string | number; + + /** + * 修改后项目编码(冗余) + */ + adjustedProjectCode?: string; + + /** + * 修改后项目名称(冗余) + */ + adjustedProjectName?: string; + + /** + * 修改后工时(天) + */ + adjustedHours?: number; + + /** + * 生成行标识(1自动汇总生成 0手动新增) + */ + isGenerated?: string; + + /** + * 部门工作描述 + */ + workDescription?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/oa/erp/timesheetStandardMonth/index.vue b/src/views/oa/erp/timesheetStandardMonth/index.vue new file mode 100644 index 0000000..ce6d002 --- /dev/null +++ b/src/views/oa/erp/timesheetStandardMonth/index.vue @@ -0,0 +1,314 @@ + + + diff --git a/src/views/oa/erp/timesheetSummary/index.vue b/src/views/oa/erp/timesheetSummary/index.vue new file mode 100644 index 0000000..01b1721 --- /dev/null +++ b/src/views/oa/erp/timesheetSummary/index.vue @@ -0,0 +1,326 @@ + + + diff --git a/src/views/oa/erp/timesheetSummaryDetail/index.vue b/src/views/oa/erp/timesheetSummaryDetail/index.vue new file mode 100644 index 0000000..9763b41 --- /dev/null +++ b/src/views/oa/erp/timesheetSummaryDetail/index.vue @@ -0,0 +1,404 @@ + + +