From bbc927edba40a3e0e92ef04393a0746b23ca5172 Mon Sep 17 00:00:00 2001 From: Teo <2642673902@qq.com> Date: Thu, 31 Jul 2025 20:46:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=BD=E5=B7=A5=E4=BA=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- src/api/design/volumeCatalog/index.ts | 97 +++++ src/api/design/volumeCatalog/types.ts | 96 +++++ src/api/out/constructionValue/index.ts | 63 +++ src/api/out/constructionValue/types.ts | 156 +++++++ src/api/out/designCompletion/index.ts | 63 +++ src/api/out/designCompletion/types.ts | 86 ++++ src/api/out/monthPlan/index.ts | 63 +++ src/api/out/monthPlan/types.ts | 131 ++++++ src/api/progress/plan/index.ts | 12 + src/views/design/volumeCatalog/index.vue | 367 +++++++++++++++++ src/views/gisHome/component/leftMain.vue | 6 +- src/views/out/constructionValue/index.vue | 379 ++++++++++++++++++ src/views/out/designCompletion/index.vue | 241 +++++++++++ src/views/out/monthPlan/index.vue | 268 +++++++++++++ src/views/project/salaryExcel/index.vue | 189 ++++++++- .../workflows/processDefinition/design.vue | 6 +- 17 files changed, 2216 insertions(+), 9 deletions(-) create mode 100644 src/api/design/volumeCatalog/index.ts create mode 100644 src/api/design/volumeCatalog/types.ts create mode 100644 src/api/out/constructionValue/index.ts create mode 100644 src/api/out/constructionValue/types.ts create mode 100644 src/api/out/designCompletion/index.ts create mode 100644 src/api/out/designCompletion/types.ts create mode 100644 src/api/out/monthPlan/index.ts create mode 100644 src/api/out/monthPlan/types.ts create mode 100644 src/views/design/volumeCatalog/index.vue create mode 100644 src/views/out/constructionValue/index.vue create mode 100644 src/views/out/designCompletion/index.vue create mode 100644 src/views/out/monthPlan/index.vue diff --git a/.env.development b/.env.development index a03e777..1c549fa 100644 --- a/.env.development +++ b/.env.development @@ -5,7 +5,7 @@ VITE_APP_TITLE = 新能源项目管理平台 VITE_APP_ENV = 'development' # 开发环境 -VITE_APP_BASE_API = 'http://192.168.110.159:8899' +VITE_APP_BASE_API = 'http://192.168.110.180:8899' # 无人机接口地址 diff --git a/src/api/design/volumeCatalog/index.ts b/src/api/design/volumeCatalog/index.ts new file mode 100644 index 0000000..37bcd37 --- /dev/null +++ b/src/api/design/volumeCatalog/index.ts @@ -0,0 +1,97 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { VolumeCatalogVO, VolumeCatalogForm, VolumeCatalogQuery } from '@/api/design/volumeCatalog/types'; + +/** + * 查询卷册目录列表 + * @param query + * @returns {*} + */ + +export const listVolumeCatalog = (query?: VolumeCatalogQuery): AxiosPromise => { + return request({ + url: '/design/volumeCatalog/list', + method: 'get', + params: query + }); +}; + +/** + * 查询卷册目录详细 + * @param id + */ +export const getVolumeCatalog = (id: string | number): AxiosPromise => { + return request({ + url: '/design/volumeCatalog/' + id, + method: 'get' + }); +}; + +/** + * 查询卷册目录文件列表 + * @param id + * @returns {*} + */ +export const getVolumeCatafileList = (id: string | number): AxiosPromise => { + return request({ + url: '/design/volumeCatalog/listFileById/' + id, + method: 'get' + }); +}; + +/** + * 查阅卷册目录文件 + * @param id + */ +export const lookViewerFile = (id: string | number): AxiosPromise => { + return request({ + url: '/design/volumeCatalog/viewerFile/' + id, + method: 'get' + }); +}; +/** + * 新增卷册目录 + * @param data + */ +export const addVolumeCatalog = (data: VolumeCatalogForm) => { + return request({ + url: '/design/volumeCatalog', + method: 'post', + data: data + }); +}; + +/** + * 修改卷册目录 + * @param data + */ +export const updateVolumeCatalog = (data: VolumeCatalogForm) => { + return request({ + url: '/design/volumeCatalog', + method: 'put', + data: data + }); +}; + +/** + * 删除卷册目录 + * @param id + */ +export const delVolumeCatalog = (id: string | number | Array) => { + return request({ + url: '/design/volumeCatalog/' + id, + method: 'delete' + }); +}; + +/** + * 上传卷册文件 + * @param query + */ +export const uploadVolumeFile = (query?: any): AxiosPromise => { + return request({ + url: '/design/volumeFile', + method: 'POST', + data: query + }); +}; diff --git a/src/api/design/volumeCatalog/types.ts b/src/api/design/volumeCatalog/types.ts new file mode 100644 index 0000000..bc5cee3 --- /dev/null +++ b/src/api/design/volumeCatalog/types.ts @@ -0,0 +1,96 @@ +export interface VolumeCatalogVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 设计子项ID + */ + designSubitemId: string | number; + + /** + * 卷册号 + */ + volumeNumber: string; + + /** + * 资料名称 + */ + documentName: string; + + /** + * 备注 + */ + remark: string; + +} + +export interface VolumeCatalogForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 设计子项ID + */ + designSubitemId?: string | number; + + /** + * 卷册号 + */ + volumeNumber?: string; + + /** + * 资料名称 + */ + documentName?: string; + + /** + * 备注 + */ + remark?: string; + +} + +export interface VolumeCatalogQuery extends PageQuery { + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 设计子项ID + */ + designSubitemId?: string | number; + + /** + * 卷册号 + */ + volumeNumber?: string; + + /** + * 资料名称 + */ + documentName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/out/constructionValue/index.ts b/src/api/out/constructionValue/index.ts new file mode 100644 index 0000000..dd84fe5 --- /dev/null +++ b/src/api/out/constructionValue/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { ConstructionValueVO, ConstructionValueForm, ConstructionValueQuery } from '@/api/out/constructionValue/types'; + +/** + * 查询施工产值列表 + * @param query + * @returns {*} + */ + +export const listConstructionValue = (query?: ConstructionValueQuery): AxiosPromise => { + return request({ + url: '/out/constructionValue/list', + method: 'get', + params: query + }); +}; + +/** + * 查询施工产值详细 + * @param id + */ +export const getConstructionValue = (id: string | number): AxiosPromise => { + return request({ + url: '/out/constructionValue/' + id, + method: 'get' + }); +}; + +/** + * 新增施工产值 + * @param data + */ +export const addConstructionValue = (data: ConstructionValueForm) => { + return request({ + url: '/out/constructionValue', + method: 'post', + data: data + }); +}; + +/** + * 修改施工产值 + * @param data + */ +export const updateConstructionValue = (data: ConstructionValueForm) => { + return request({ + url: '/out/constructionValue', + method: 'put', + data: data + }); +}; + +/** + * 删除施工产值 + * @param id + */ +export const delConstructionValue = (id: string | number | Array) => { + return request({ + url: '/out/constructionValue/' + id, + method: 'delete' + }); +}; diff --git a/src/api/out/constructionValue/types.ts b/src/api/out/constructionValue/types.ts new file mode 100644 index 0000000..a4c00cf --- /dev/null +++ b/src/api/out/constructionValue/types.ts @@ -0,0 +1,156 @@ +export interface ConstructionValueVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 方阵id + */ + matrixId: string | number; + + /** + * 分项工程id + */ + progressCategoryId: string | number; + + /** + * 人工填报数量 + */ + artificialNum: number; + + /** + * 无人机识别数量 + */ + uavNum: number; + + /** + * 确认数量 + */ + confirmNum: number; + + /** + * 产值 + */ + outValue: number; + + /** + * 上报日期 + */ + reportDate: string; + + /** + * 审核状态 + */ + auditStatus: string; +} + +export interface ConstructionValueForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + planDate?: string; + planNum?: number; + /** + * 项目ID + */ + projectId?: string | number; + reportDateId?: string | number; + /** + * 方阵id + */ + matrixId?: string | number; + + /** + * 分项工程id + */ + progressCategoryId?: string | number; + + /** + * 人工填报数量 + */ + artificialNum?: number; + + /** + * 无人机识别数量 + */ + uavNum?: number; + + /** + * 确认数量 + */ + confirmNum?: number; + + /** + * 产值 + */ + outValue?: number; + + /** + * 上报日期 + */ + reportDate?: string; + + /** + * 审核状态 + */ + auditStatus?: string; +} + +export interface ConstructionValueQuery extends PageQuery { + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 方阵id + */ + matrixId?: string | number; + + /** + * 分项工程id + */ + progressCategoryId?: string | number; + + /** + * 人工填报数量 + */ + artificialNum?: number; + + /** + * 无人机识别数量 + */ + uavNum?: number; + + /** + * 确认数量 + */ + confirmNum?: number; + + /** + * 产值 + */ + outValue?: number; + + /** + * 上报日期 + */ + reportDate?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + + /** + * 日期范围参数 + */ + params?: any; +} diff --git a/src/api/out/designCompletion/index.ts b/src/api/out/designCompletion/index.ts new file mode 100644 index 0000000..c4ef26f --- /dev/null +++ b/src/api/out/designCompletion/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DesignCompletionVO, DesignCompletionForm, DesignCompletionQuery } from '@/api/out/designCompletion/types'; + +/** + * 查询设计完工产值列表 + * @param query + * @returns {*} + */ + +export const listDesignCompletion = (query?: DesignCompletionQuery): AxiosPromise => { + return request({ + url: '/out/designCompletion/list', + method: 'get', + params: query + }); +}; + +/** + * 查询设计完工产值详细 + * @param id + */ +export const getDesignCompletion = (id: string | number): AxiosPromise => { + return request({ + url: '/out/designCompletion/' + id, + method: 'get' + }); +}; + +/** + * 新增设计完工产值 + * @param data + */ +export const addDesignCompletion = (data: DesignCompletionForm) => { + return request({ + url: '/out/designCompletion', + method: 'post', + data: data + }); +}; + +/** + * 修改设计完工产值 + * @param data + */ +export const updateDesignCompletion = (data: DesignCompletionForm) => { + return request({ + url: '/out/designCompletion', + method: 'put', + data: data + }); +}; + +/** + * 删除设计完工产值 + * @param id + */ +export const delDesignCompletion = (id: string | number | Array) => { + return request({ + url: '/out/designCompletion/' + id, + method: 'delete' + }); +}; diff --git a/src/api/out/designCompletion/types.ts b/src/api/out/designCompletion/types.ts new file mode 100644 index 0000000..2a58e24 --- /dev/null +++ b/src/api/out/designCompletion/types.ts @@ -0,0 +1,86 @@ +export interface DesignCompletionVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 产值 + */ + outValue: number; + + /** + * 完工月份(YYYY-MM) + */ + completeMonth: string; + + /** + * 审核状态 + */ + auditStatus: string; + +} + +export interface DesignCompletionForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 产值 + */ + outValue?: number; + + /** + * 完工月份(YYYY-MM) + */ + completeMonth?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + +} + +export interface DesignCompletionQuery extends PageQuery { + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 产值 + */ + outValue?: number; + + /** + * 完工月份(YYYY-MM) + */ + completeMonth?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/out/monthPlan/index.ts b/src/api/out/monthPlan/index.ts new file mode 100644 index 0000000..688b675 --- /dev/null +++ b/src/api/out/monthPlan/index.ts @@ -0,0 +1,63 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { MonthPlanVO, MonthPlanForm, MonthPlanQuery } from '@/api/out/monthPlan/types'; + +/** + * 查询月度产值计划列表 + * @param query + * @returns {*} + */ + +export const listMonthPlan = (query?: MonthPlanQuery): AxiosPromise => { + return request({ + url: '/out/monthPlan/list', + method: 'get', + params: query + }); +}; + +/** + * 查询月度产值计划详细 + * @param id + */ +export const getMonthPlan = (id: string | number): AxiosPromise => { + return request({ + url: '/out/monthPlan/' + id, + method: 'get' + }); +}; + +/** + * 新增月度产值计划 + * @param data + */ +export const addMonthPlan = (data: MonthPlanForm) => { + return request({ + url: '/out/monthPlan', + method: 'post', + data: data + }); +}; + +/** + * 修改月度产值计划 + * @param data + */ +export const updateMonthPlan = (data: MonthPlanForm) => { + return request({ + url: '/out/monthPlan', + method: 'put', + data: data + }); +}; + +/** + * 删除月度产值计划 + * @param id + */ +export const delMonthPlan = (id: string | number | Array) => { + return request({ + url: '/out/monthPlan/' + id, + method: 'delete' + }); +}; diff --git a/src/api/out/monthPlan/types.ts b/src/api/out/monthPlan/types.ts new file mode 100644 index 0000000..765ce8a --- /dev/null +++ b/src/api/out/monthPlan/types.ts @@ -0,0 +1,131 @@ +export interface MonthPlanVO { + /** + * 主键ID + */ + id: string | number; + + /** + * 项目ID + */ + projectId: string | number; + + /** + * 设计产值 + */ + designValue: number; + + /** + * 采购产值 + */ + procurementValue: number; + + /** + * 施工产值 + */ + constructionValue: number; + + /** + * 总产值 + */ + totalValue: number; + + /** + * 计划月份(YYYY-MM) + */ + planMonth: string; + + /** + * 审核状态 + */ + auditStatus: string; + +} + +export interface MonthPlanForm extends BaseEntity { + /** + * 主键ID + */ + id?: string | number; + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 设计产值 + */ + designValue?: number; + + /** + * 采购产值 + */ + procurementValue?: number; + + /** + * 施工产值 + */ + constructionValue?: number; + + /** + * 总产值 + */ + totalValue?: number; + + /** + * 计划月份(YYYY-MM) + */ + planMonth?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + +} + +export interface MonthPlanQuery extends PageQuery { + + /** + * 项目ID + */ + projectId?: string | number; + + /** + * 设计产值 + */ + designValue?: number; + + /** + * 采购产值 + */ + procurementValue?: number; + + /** + * 施工产值 + */ + constructionValue?: number; + + /** + * 总产值 + */ + totalValue?: number; + + /** + * 计划月份(YYYY-MM) + */ + planMonth?: string; + + /** + * 审核状态 + */ + auditStatus?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/progress/plan/index.ts b/src/api/progress/plan/index.ts index 6abf33d..c7c43a8 100644 --- a/src/api/progress/plan/index.ts +++ b/src/api/progress/plan/index.ts @@ -119,6 +119,18 @@ export const workScheduleList = (query: workScheduleListQuery): AxiosPromise => { + return request({ + url: '/progress/progressPlanDetail/list', + method: 'get', + params: { progressCategoryId: id } + }); +}; + /** * 获取进度类别坐标信息 * @param params diff --git a/src/views/design/volumeCatalog/index.vue b/src/views/design/volumeCatalog/index.vue new file mode 100644 index 0000000..89206cf --- /dev/null +++ b/src/views/design/volumeCatalog/index.vue @@ -0,0 +1,367 @@ + + + diff --git a/src/views/gisHome/component/leftMain.vue b/src/views/gisHome/component/leftMain.vue index 821c919..0c1478a 100644 --- a/src/views/gisHome/component/leftMain.vue +++ b/src/views/gisHome/component/leftMain.vue @@ -22,7 +22,7 @@

总人数

- {{ constructionUserData?.peopleCount + ' ' }} 人 + {{ constructionUserData?.peopleCount }}  
@@ -31,7 +31,7 @@

出勤人

- {{ constructionUserData?.attendanceCount + ' ' }} 人 + {{ constructionUserData?.attendanceCount }}   
@@ -40,7 +40,7 @@

出勤率

- {{ constructionUserData?.attendanceRate + ' ' }} % + {{ constructionUserData?.attendanceRate }}   %
diff --git a/src/views/out/constructionValue/index.vue b/src/views/out/constructionValue/index.vue new file mode 100644 index 0000000..1f176a8 --- /dev/null +++ b/src/views/out/constructionValue/index.vue @@ -0,0 +1,379 @@ + + + diff --git a/src/views/out/designCompletion/index.vue b/src/views/out/designCompletion/index.vue new file mode 100644 index 0000000..dd9b447 --- /dev/null +++ b/src/views/out/designCompletion/index.vue @@ -0,0 +1,241 @@ + + + diff --git a/src/views/out/monthPlan/index.vue b/src/views/out/monthPlan/index.vue new file mode 100644 index 0000000..481f5da --- /dev/null +++ b/src/views/out/monthPlan/index.vue @@ -0,0 +1,268 @@ + + + diff --git a/src/views/project/salaryExcel/index.vue b/src/views/project/salaryExcel/index.vue index 25ea9a0..325f845 100644 --- a/src/views/project/salaryExcel/index.vue +++ b/src/views/project/salaryExcel/index.vue @@ -1,7 +1,190 @@ + +const stores = useUserStoreHook(); +const { proxy } = getCurrentInstance(); - +const loading = ref(false); +const uploadSalaryRef = ref(); +const editRef = ref(); +const documentDetailRef = ref(); +const detailRef = ref(); + +const showAll = ref(false); +const single = ref(true); +const multiple = ref(true); + +const showDocumentDetail = ref(false); +const tableData = reactive({ + data: [], + total: 0 +}); +const totalMoney = ref(0); +const DetailMoney = ref(0); +const ids = ref([]); + +const uploadSalary = () => { + uploadSalaryRef.value.openDialog(); +}; + +const initTableData = () => { + busSalaryDetailsList(); +}; + +const busSalaryDetailsList = () => { + loading.value = true; + readAllImportedListData().then((res: any) => { + let list = res.data.list ?? []; + let moneySum = 0; + list.forEach((item) => { + moneySum += parseInt(item.money); + }); + DetailMoney.value = moneySum; + totalMoney.value = moneySum >= 10000 ? (moneySum / 10000).toFixed(2) + '万' : moneySum; + tableData.data = list; + loading.value = false; + }); +}; + +const handleView = (row: any) => { + detailRef.value.openDialog(toRaw(row)); +}; + +const bookSalary = (row: any) => { + getTheSourceExcelAccordingToTheIdOfThePayroll({ id: row.id }).then((res: any) => { + if (res.code == 0) { + showDocumentDetail.value = true; + let obj = { + suffix: '.' + res.data.Suffix, + name: res.data.Name, + filenPathCoding: res.data.Path, + id: row.id + }; + nextTick(() => { + documentDetailRef.value.openDialog(obj); + }); + } + }); +}; + +const DownloadSalary = (row: any) => { + getTheSourceExcelAccordingToTheIdOfThePayroll({ id: row.id }).then((res: any) => { + if (res.code == 0) { + window.open(res.data.Path, '_blank'); + } + }); +}; + +const DownloadSalaryMOdel = () => { + window.open('http://zmkg.cqet.top:8899/file/masterMask/coryStorageTemplate/工资表模板.xlsx', '_blank'); +}; + +const delSalary = () => { + ElMessageBox.confirm('是否删除选中数据', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning' + }) + .then(() => { + deletePayroll({ ids: ids.value }).then(() => { + ElMessage.success('删除成功'); + busSalaryDetailsList(); + }); + }) + .catch(() => {}); +}; + +const handleSelectionChange = (selection: any[]) => { + ids.value = selection.map((item) => item.id); +}; + +onMounted(() => { + // initTableData(); +}); + + + diff --git a/src/views/workflows/processDefinition/design.vue b/src/views/workflows/processDefinition/design.vue index cb8c6a2..0eaac66 100644 --- a/src/views/workflows/processDefinition/design.vue +++ b/src/views/workflows/processDefinition/design.vue @@ -27,9 +27,11 @@ const iframeLoaded = () => { }; //baseUrl + const open = async (definitionId, disabled) => { - const url = baseUrl + `/warm-flow-ui/index.html?id=${definitionId}&disabled=${disabled}`; + const url = import.meta.env.DEV + ? `/warm-flow-ui/index.html?id=${definitionId}&disabled=${disabled}` + : baseUrl + `/warm-flow-ui/index.html?id=${definitionId}&disabled=${disabled}`; iframeUrl.value = url + '&Authorization=Bearer ' + getToken() + '&clientid=' + import.meta.env.VITE_APP_CLIENT_ID; - console.log('🚀 ~ open ~ iframeUrl:', iframeUrl.value); + console.log('🚀 ~ open ~ iframeUrl:', import.meta.env); }; /** 关闭按钮 */ function close() {