From 8a34db8aef7d47250a2c8b6308238adad9b54d49 Mon Sep 17 00:00:00 2001 From: Teo <2642673902@qq.com> Date: Wed, 26 Mar 2025 18:02:49 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=B7=A5=E7=A7=8D=E8=96=AA?= =?UTF-8?q?=E6=B0=B4=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/project/workWage/index.ts | 63 ++++ src/api/project/workWage/types.ts | 131 ++++++++ src/views/materials/materials/index.vue | 4 +- src/views/project/constructionUser/index.vue | 222 ++++++++----- src/views/project/workWage/index.vue | 318 +++++++++++++++++++ src/views/safety/teamMeeting/index.vue | 4 +- 6 files changed, 664 insertions(+), 78 deletions(-) create mode 100644 src/api/project/workWage/index.ts create mode 100644 src/api/project/workWage/types.ts create mode 100644 src/views/project/workWage/index.vue diff --git a/src/api/project/workWage/index.ts b/src/api/project/workWage/index.ts new file mode 100644 index 0000000..01ed29d --- /dev/null +++ b/src/api/project/workWage/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { WorkWageVO, WorkWageForm, WorkWageQuery } from '@/api/project/workWage/types'; + +/** + * 查询工种薪水列表 + * @param query + * @returns {*} + */ + +export const listWorkWage = (query?: WorkWageQuery): AxiosPromise => { + return request({ + url: '/project/workWage/list', + method: 'get', + params: query + }); +}; + +/** + * 查询工种薪水详细 + * @param id + */ +export const getWorkWage = (id: string | number): AxiosPromise => { + return request({ + url: '/project/workWage/' + id, + method: 'get' + }); +}; + +/** + * 新增工种薪水 + * @param data + */ +export const addWorkWage = (data: WorkWageForm) => { + return request({ + url: '/project/workWage', + method: 'post', + data: data + }); +}; + +/** + * 修改工种薪水 + * @param data + */ +export const updateWorkWage = (data: WorkWageForm) => { + return request({ + url: '/project/workWage', + method: 'put', + data: data + }); +}; + +/** + * 删除工种薪水 + * @param id + */ +export const delWorkWage = (id: string | number | Array) => { + return request({ + url: '/project/workWage/' + id, + method: 'delete' + }); +}; diff --git a/src/api/project/workWage/types.ts b/src/api/project/workWage/types.ts new file mode 100644 index 0000000..75a5989 --- /dev/null +++ b/src/api/project/workWage/types.ts @@ -0,0 +1,131 @@ +export interface WorkWageVO { + /** + * 主键id + */ + id: string | number; + + /** + * 项目id + */ + projectId: string | number; + + /** + * 工种 + */ + workType: string; + + /** + * 是否是特种兵(1是 2否) + */ + isSpecialType: string; + + /** + * 工资计算方式(1计时 2计件) + */ + wageCalculationType: string; + + /** + * 工资标准 + */ + wage: number; + + /** + * 工资计量单位 + */ + wageMeasureUnit: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface SpecialType{ + label:string;//名称 + value:number | string;//id +} + +export interface WorkWageForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 工种 + */ + workType?: string; + + /** + * 是否是特种兵(1是 2否) + */ + isSpecialType?: string; + + /** + * 工资计算方式(1计时 2计件) + */ + wageCalculationType?: string; + + /** + * 工资标准 + */ + wage?: number; + + /** + * 工资计量单位 + */ + wageMeasureUnit?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface WorkWageQuery extends PageQuery { + + /** + * 项目id + */ + projectId?: string | number; + + /** + * 工种 + */ + workType?: string; + + /** + * 是否是特种兵(1是 2否) + */ + isSpecialType?: string; + + /** + * 工资计算方式(1计时 2计件) + */ + wageCalculationType?: string; + + /** + * 工资标准 + */ + wage?: number; + + /** + * 工资计量单位 + */ + wageMeasureUnit?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/views/materials/materials/index.vue b/src/views/materials/materials/index.vue index b80d083..dd738c5 100644 --- a/src/views/materials/materials/index.vue +++ b/src/views/materials/materials/index.vue @@ -134,9 +134,9 @@ - + - + diff --git a/src/views/project/constructionUser/index.vue b/src/views/project/constructionUser/index.vue index 8159aff..3e2ea58 100644 --- a/src/views/project/constructionUser/index.vue +++ b/src/views/project/constructionUser/index.vue @@ -114,77 +114,134 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + +
+
用户信息
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
银行卡
+
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+
+
+
单位信息
+
+
+ + + +
+
+ + + + + +
+
+ + + + + +
+
+ + + +
+
+
- + - +
@@ -214,6 +271,7 @@ import { listProjectTeam } from '@/api/project/projectTeam'; import { ContractorVO } from '@/api/project/contractor/types'; import { ProjectTeamVO } from '@/api/project/projectTeam/types'; import ConstructionUserDetail from '@/views/project/constructionUser/component/ConstructionUserDetail.vue'; +import ProjectTypes from '@/utils/propTypes'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; const { type_of_work, user_sex_type, user_clock_type } = toRefs(proxy?.useDict('type_of_work', 'user_sex_type', 'user_clock_type')); @@ -329,7 +387,8 @@ const getContractorList = async () => { loading.value = true; const res = await listContractor({ pageNum: 1, - pageSize: 20 + pageSize: 20, + projectId: currentProject.value.id }); contractorOpt.value = res.rows.map((contractor: ContractorVO) => ({ value: contractor.id, @@ -461,3 +520,18 @@ onMounted(() => { getProjectTeamList(); }); + diff --git a/src/views/project/workWage/index.vue b/src/views/project/workWage/index.vue new file mode 100644 index 0000000..ba94472 --- /dev/null +++ b/src/views/project/workWage/index.vue @@ -0,0 +1,318 @@ + + + diff --git a/src/views/safety/teamMeeting/index.vue b/src/views/safety/teamMeeting/index.vue index 3ed654c..8f31ee4 100644 --- a/src/views/safety/teamMeeting/index.vue +++ b/src/views/safety/teamMeeting/index.vue @@ -91,9 +91,9 @@ - + - +