From ef85a3cd0f1712f895e75ee9dfdeb49d49cac226 Mon Sep 17 00:00:00 2001 From: Teo <2642673902@qq.com> Date: Tue, 16 Sep 2025 16:08:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A5=E8=B5=84=E8=AE=A1=E7=AE=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- src/api/materials/batchPlan/index.ts | 2 +- src/api/project/busSalaryDetails/index.ts | 15 + src/utils/request.ts | 45 ++ src/views/materials/batchPlan/index.vue | 8 +- .../busSalaryDetails/component/model.ts | 95 ++- src/views/project/busSalaryDetails/index.vue | 717 ++++++------------ 7 files changed, 333 insertions(+), 553 deletions(-) create mode 100644 src/api/project/busSalaryDetails/index.ts diff --git a/.env.development b/.env.development index 54a314d..edc5753 100644 --- a/.env.development +++ b/.env.development @@ -5,11 +5,11 @@ VITE_APP_TITLE = 煤科建管平台 VITE_APP_ENV = 'development' # 开发环境 -# VITE_APP_BASE_API = 'http://192.168.110.180:8899' +VITE_APP_BASE_API = 'http://192.168.110.180:8899' # 李陈杰 209 # VITE_APP_BASE_API = 'http://192.168.110.209:8899' # 李陈杰 209 - VITE_APP_BASE_API = 'http://192.168.110.209:8899' +# VITE_APP_BASE_API = 'http://192.168.110.209:8899' # 曾涛 # VITE_APP_BASE_API = 'http://192.168.110.149:8899' # 罗成 diff --git a/src/api/materials/batchPlan/index.ts b/src/api/materials/batchPlan/index.ts index 5b9690b..7031776 100644 --- a/src/api/materials/batchPlan/index.ts +++ b/src/api/materials/batchPlan/index.ts @@ -155,7 +155,7 @@ export const coryEngineeringList = (query: any): AxiosPromise => { */ export const obtainTheVersion = (query: any) => { return request({ - url: '/cailiaoshebei/mrpBase/obtainTheVersion', + url: '/design/billofquantitiesVersions/obtainAllClassification', method: 'get', params: query }); diff --git a/src/api/project/busSalaryDetails/index.ts b/src/api/project/busSalaryDetails/index.ts new file mode 100644 index 0000000..7041181 --- /dev/null +++ b/src/api/project/busSalaryDetails/index.ts @@ -0,0 +1,15 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; + +/** + * 分页查询项目薪资详情列表 + * @param query + * @returns {*} + */ +export const listBusSalaryDetails = (query?: any): AxiosPromise => { + return request({ + url: '/contractor/userSalaryDetail/salaryPageList', + method: 'get', + params: query + }); +}; diff --git a/src/utils/request.ts b/src/utils/request.ts index 0ff507c..66780df 100644 --- a/src/utils/request.ts +++ b/src/utils/request.ts @@ -212,5 +212,50 @@ export function download(url: string, params: any, fileName: string, isHeader?: downloadLoadingInstance.close(); }); } +/** + * GET 下载方法 + * @param url 请求地址 + * @param params 请求参数 + * @param fileName 保存文件名 + * @param isHeader 是否使用 json header + */ +export function downloadGet(url: string, params: any, fileName: string, isHeader?: boolean) { + downloadLoadingInstance = ElLoading.service({ + text: '正在下载数据,请稍候', + background: 'rgba(0, 0, 0, 0.7)' + }); + + // 拼接参数 + let query = tansParams(params); + if (query) { + url += '?' + query; + } + + const config = { + headers: isHeader ? { 'Content-Type': 'application/json' } : { 'Content-Type': 'application/x-www-form-urlencoded' }, + responseType: 'blob' as const + }; + + return service + .get(url, config) + .then(async (resp: any) => { + const isLogin = blobValidate(resp); + if (isLogin) { + const blob = new Blob([resp]); + FileSaver.saveAs(blob, fileName); + } else { + const resText = await resp.data.text(); + const rspObj = JSON.parse(resText); + const errMsg = (rspObj && (rspObj.msg || rspObj.message)) || '下载失败'; + ElMessage.error(errMsg); + } + downloadLoadingInstance.close(); + }) + .catch((err: any) => { + console.error(err); + ElMessage.error('下载文件出现错误,请联系管理员!'); + downloadLoadingInstance.close(); + }); +} // 导出 axios 实例 export default service; diff --git a/src/views/materials/batchPlan/index.vue b/src/views/materials/batchPlan/index.vue index 671c92b..37cc6b2 100644 --- a/src/views/materials/batchPlan/index.vue +++ b/src/views/materials/batchPlan/index.vue @@ -911,7 +911,7 @@ @@ -1496,10 +1496,10 @@ const handleAudit = async () => { }; /** 获取物资列表(按版本号筛选) */ -const getNameList = (versions: string) => { +const getNameList = (sid: string) => { coryEngineeringList({ projectId: currentProject.value?.id, - versions + sid }) .then((res: any) => { nameList.value = res.data || []; @@ -1554,7 +1554,7 @@ const listeningProject = watch( if (newId !== oldId && newId) { queryParams.value.mainData.projectId = newId; queryParams.value.batchData.projectId = newId; - form.value.mrpBaseBo.projectId = newId; + form.value.mrpBaseBo.projectId = newId as number; getList(); getVersion(); // 重新获取对应项目的版本号 } diff --git a/src/views/project/busSalaryDetails/component/model.ts b/src/views/project/busSalaryDetails/component/model.ts index 70b95a1..5c91f14 100644 --- a/src/views/project/busSalaryDetails/component/model.ts +++ b/src/views/project/busSalaryDetails/component/model.ts @@ -1,57 +1,54 @@ -export interface BusSalaryDetailsTableColumns { - id:number - sfzNumber:string; // 身份证 - name:string; // 户名 - account:string; // 账户 - sumDuration:number; // 当月总时长 - salary:number; // 薪水(天) - dateOfIssue:string; // 发放年月 - lister:string; // 制表人 - createdAt:string; // 创建时间 +export interface BusSalaryDetailsTableColumns { + id: number; + sfzNumber: string; // 身份证 + name: string; // 户名 + account: string; // 账户 + sumDuration: number; // 当月总时长 + salary: number; // 薪水(天) + dateOfIssue: string; // 发放年月 + lister: string; // 制表人 + createdAt: string; // 创建时间 } - -export interface BusSalaryDetailsInfoData { - id:number|undefined; // 主键ID - sfzNumber:string|undefined; // 身份证 - name:string|undefined; // 户名 - account:string|undefined; // 账户 - sumDuration:number|undefined; // 当月总时长 - salary:number|undefined; // 薪水(天) - projectId:number|undefined; // 项目id - teamId:number|undefined; // 班组id - projectName:string|undefined; // 项目名称 - teamName:string|undefined; // 班组名称 - dateOfIssue:string|undefined; // 发放年月 - lister:string|undefined; // 制表人 - createdAt:string|undefined; // 创建时间 - updatedAt:string|undefined; // 更新时间 - deletedAt:string|undefined; // 删除时间 +export interface BusSalaryDetailsInfoData { + id: number | undefined; // 主键ID + sfzNumber: string | undefined; // 身份证 + name: string | undefined; // 户名 + account: string | undefined; // 账户 + sumDuration: number | undefined; // 当月总时长 + salary: number | undefined; // 薪水(天) + projectId: number | undefined; // 项目id + teamId: number | undefined; // 班组id + projectName: string | undefined; // 项目名称 + teamName: string | undefined; // 班组名称 + dateOfIssue: string | undefined; // 发放年月 + lister: string | undefined; // 制表人 + createdAt: string | undefined; // 创建时间 + updatedAt: string | undefined; // 更新时间 + deletedAt: string | undefined; // 删除时间 } - export interface BusSalaryDetailsTableDataState { - ids:any[]; - tableData: { - data: Array; - total: number; - loading: boolean; - param: { - pageNum: number; - pageSize: number; - id: number|undefined; - sfzNumber: string|undefined; - projectId: number|undefined; - teamId: number|undefined; - dateRange: string[]; - }; + ids: any[]; + tableData: { + data: Array; + total: number; + loading: boolean; + param: { + pageNum: number; + pageSize: number; + id: number | undefined; + sfzNumber: string | undefined; + projectId: string | undefined; + teamId: number | undefined; + dateRange: string[]; }; + }; } - -export interface BusSalaryDetailsEditState{ - loading:boolean; - isShowDialog: boolean; - formData:BusSalaryDetailsInfoData; - rules: object; -} \ No newline at end of file +export interface BusSalaryDetailsEditState { + loading: boolean; + isShowDialog: boolean; + formData: BusSalaryDetailsInfoData; + rules: object; +} diff --git a/src/views/project/busSalaryDetails/index.vue b/src/views/project/busSalaryDetails/index.vue index 227cbdb..7192689 100644 --- a/src/views/project/busSalaryDetails/index.vue +++ b/src/views/project/busSalaryDetails/index.vue @@ -3,83 +3,80 @@ - + - - - + + + + - - - - +