From 7fa5beee2ff53e7d35b14b04725c4070928b7f43 Mon Sep 17 00:00:00 2001 From: Maple <869445424@qq.com> Date: Tue, 12 Aug 2025 14:43:44 +0800 Subject: [PATCH 1/6] =?UTF-8?q?add:=20=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=EF=BC=8C=E4=BD=86=E6=98=AF=E5=9B=A0=E4=B8=BA=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=B8=85=E6=A5=9A=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=82=A3=E4=BA=9B=EF=BC=8C=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E4=B9=9F=E6=B2=A1=E6=9C=89=E7=9B=B8=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/components.d.ts | 62 +++++++ .../order-management/index.vue | 154 +++++++++++++++++- 2 files changed, 215 insertions(+), 1 deletion(-) diff --git a/src/types/components.d.ts b/src/types/components.d.ts index 7fa6b1b..73dac61 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -7,7 +7,69 @@ export {} declare module 'vue' { export interface GlobalComponents { + ApprovalAssistant: typeof import('./../components/ApprovalAssistant/index.vue')['default'] + ApprovalMessageItem: typeof import('./../components/NotificationCenter/ApprovalMessageItem.vue')['default'] + Avatar: typeof import('./../components/Avatar/index.vue')['default'] + Breadcrumb: typeof import('./../components/Breadcrumb/index.vue')['default'] + CellCopy: typeof import('./../components/CellCopy/index.vue')['default'] + Chart: typeof import('./../components/Chart/index.vue')['default'] + ColumnSetting: typeof import('./../components/GiTable/src/components/ColumnSetting.vue')['default'] + CronForm: typeof import('./../components/GenCron/CronForm/index.vue')['default'] + CronModal: typeof import('./../components/GenCron/CronModal/index.vue')['default'] + DateRangePicker: typeof import('./../components/DateRangePicker/index.vue')['default'] + DayForm: typeof import('./../components/GenCron/CronForm/component/day-form.vue')['default'] + FilePreview: typeof import('./../components/FilePreview/index.vue')['default'] + GiCellAvatar: typeof import('./../components/GiCell/GiCellAvatar.vue')['default'] + GiCellGender: typeof import('./../components/GiCell/GiCellGender.vue')['default'] + GiCellStatus: typeof import('./../components/GiCell/GiCellStatus.vue')['default'] + GiCellTag: typeof import('./../components/GiCell/GiCellTag.vue')['default'] + GiCellTags: typeof import('./../components/GiCell/GiCellTags.vue')['default'] + GiCodeView: typeof import('./../components/GiCodeView/index.vue')['default'] + GiDot: typeof import('./../components/GiDot/index.tsx')['default'] + GiEditTable: typeof import('./../components/GiEditTable/GiEditTable.vue')['default'] + GiFooter: typeof import('./../components/GiFooter/index.vue')['default'] + GiForm: typeof import('./../components/GiForm/src/GiForm.vue')['default'] + GiIconBox: typeof import('./../components/GiIconBox/index.vue')['default'] + GiIconSelector: typeof import('./../components/GiIconSelector/index.vue')['default'] + GiIframe: typeof import('./../components/GiIframe/index.vue')['default'] + GiOption: typeof import('./../components/GiOption/index.vue')['default'] + GiOptionItem: typeof import('./../components/GiOptionItem/index.vue')['default'] + GiPageLayout: typeof import('./../components/GiPageLayout/index.vue')['default'] + GiSpace: typeof import('./../components/GiSpace/index.vue')['default'] + GiSplitButton: typeof import('./../components/GiSplitButton/index.vue')['default'] + GiSplitPane: typeof import('./../components/GiSplitPane/index.vue')['default'] + GiSplitPaneFlexibleBox: typeof import('./../components/GiSplitPane/components/GiSplitPaneFlexibleBox.vue')['default'] + GiSvgIcon: typeof import('./../components/GiSvgIcon/index.vue')['default'] + GiTable: typeof import('./../components/GiTable/src/GiTable.vue')['default'] + GiTag: typeof import('./../components/GiTag/index.tsx')['default'] + GiThemeBtn: typeof import('./../components/GiThemeBtn/index.vue')['default'] + HourForm: typeof import('./../components/GenCron/CronForm/component/hour-form.vue')['default'] + Icon403: typeof import('./../components/icons/Icon403.vue')['default'] + Icon404: typeof import('./../components/icons/Icon404.vue')['default'] + Icon500: typeof import('./../components/icons/Icon500.vue')['default'] + IconBorders: typeof import('./../components/icons/IconBorders.vue')['default'] + IconTableSize: typeof import('./../components/icons/IconTableSize.vue')['default'] + IconTreeAdd: typeof import('./../components/icons/IconTreeAdd.vue')['default'] + IconTreeReduce: typeof import('./../components/icons/IconTreeReduce.vue')['default'] + ImageImport: typeof import('./../components/ImageImport/index.vue')['default'] + ImageImportWizard: typeof import('./../components/ImageImportWizard/index.vue')['default'] + IndustrialImageList: typeof import('./../components/IndustrialImageList/index.vue')['default'] + JsonPretty: typeof import('./../components/JsonPretty/index.vue')['default'] + MinuteForm: typeof import('./../components/GenCron/CronForm/component/minute-form.vue')['default'] + MonthForm: typeof import('./../components/GenCron/CronForm/component/month-form.vue')['default'] + NotificationCenter: typeof import('./../components/NotificationCenter/index.vue')['default'] + ParentView: typeof import('./../components/ParentView/index.vue')['default'] RouterLink: typeof import('vue-router')['RouterLink'] RouterView: typeof import('vue-router')['RouterView'] + SecondForm: typeof import('./../components/GenCron/CronForm/component/second-form.vue')['default'] + SplitPanel: typeof import('./../components/SplitPanel/index.vue')['default'] + TextCopy: typeof import('./../components/TextCopy/index.vue')['default'] + TurbineGrid: typeof import('./../components/TurbineGrid/index.vue')['default'] + UserSelect: typeof import('./../components/UserSelect/index.vue')['default'] + Verify: typeof import('./../components/Verify/index.vue')['default'] + VerifyPoints: typeof import('./../components/Verify/Verify/VerifyPoints.vue')['default'] + VerifySlide: typeof import('./../components/Verify/Verify/VerifySlide.vue')['default'] + WeekForm: typeof import('./../components/GenCron/CronForm/component/week-form.vue')['default'] + YearForm: typeof import('./../components/GenCron/CronForm/component/year-form.vue')['default'] } } diff --git a/src/views/project-management/order-management/index.vue b/src/views/project-management/order-management/index.vue index 89b1f33..22ffeda 100644 --- a/src/views/project-management/order-management/index.vue +++ b/src/views/project-management/order-management/index.vue @@ -1,11 +1,163 @@ + + + + + + + + + + + {{ card.iconChar }} + + {{ card.value }} + {{ card.title }} + + + + + + + + + + + 新增订单 + + + + + + {{ record.status }} + + {}">查看 + {}">编辑 + + + + + + + + + + + + + + - \ No newline at end of file From f1da2f0077af9f54d20a033d2e44d07e428233d2 Mon Sep 17 00:00:00 2001 From: Maple <869445424@qq.com> Date: Tue, 12 Aug 2025 14:51:23 +0800 Subject: [PATCH 2/6] =?UTF-8?q?add:=20=E8=AE=A2=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=9A=84=E5=89=8D=E7=AB=AF=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BA=86=EF=BC=8C=E4=BD=86=E6=98=AF=E5=9B=A0=E4=B8=BA=E6=9A=82?= =?UTF-8?q?=E6=97=B6=E4=B8=8D=E6=B8=85=E6=A5=9A=E8=AE=A2=E5=8D=95=E7=9A=84?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E9=82=A3=E4=BA=9B=EF=BC=8C=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E4=B9=9F=E6=B2=A1=E6=9C=89=E7=9B=B8=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/types/auto-imports.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/types/auto-imports.d.ts b/src/types/auto-imports.d.ts index 369aad4..eab6be6 100644 --- a/src/types/auto-imports.d.ts +++ b/src/types/auto-imports.d.ts @@ -70,6 +70,6 @@ declare global { // for type re-export declare global { // @ts-ignore - export type { Component, ComponentPublicInstance, ComputedRef, DirectiveBinding, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, MaybeRef, MaybeRefOrGetter, VNode, WritableComputedRef } from 'vue' + export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue' import('vue') } From 3fb4cc09502d0d3836edcd754bff48a0ef4e8740 Mon Sep 17 00:00:00 2001 From: chabai <14799297+dhasjklhdfjkasfbhfasfj@user.noreply.gitee.com> Date: Tue, 12 Aug 2025 15:50:05 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=99=BA=E8=83=BD=E5=95=86=E5=8A=A1?= =?UTF-8?q?=E6=A8=A1=E5=9D=97=E9=80=82=E9=85=8D=E4=B8=BB=E9=A2=98=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bussiness-data/bussiness.vue | 198 ++++++++++++------------- 1 file changed, 95 insertions(+), 103 deletions(-) diff --git a/src/views/bussiness-data/bussiness.vue b/src/views/bussiness-data/bussiness.vue index 49f236c..dcc7abf 100644 --- a/src/views/bussiness-data/bussiness.vue +++ b/src/views/bussiness-data/bussiness.vue @@ -4,10 +4,9 @@ @@ -102,29 +101,7 @@ - - + @@ -305,7 +282,7 @@ - {{ formatFileSize(file.fileSize || file.size) }} + {{ formatFileListSize(file.fileSize || file.size) }} @@ -682,7 +659,7 @@ const fileListTemp = ref([]); const folderFormRef = ref(null); const uploadFormRef = ref(null); const uploadRef = ref(null); -const folderColor = '#165DFF'; +const folderColor = 'var(--color-primary)'; const refreshing = ref(false); const folderSubmitting = ref(false); const uploading = ref(false); @@ -1624,7 +1601,7 @@ const fileColor = (extension) => { bmp: '#722ed1', webp: '#13c2c2' }; - return colorMap[extension.toLowerCase()] || '#8c8c8c'; + return colorMap[extension.toLowerCase()] || 'var(--color-text-3)'; }; @@ -1881,8 +1858,8 @@ const showTextPreview = async (blob, fileName) => { maxWidth: '100%', maxHeight: '70vh', overflow: 'auto', - backgroundColor: '#f8f9fa', - border: '1px solid #e9ecef', + backgroundColor: 'var(--color-fill-1)', + border: '1px solid var(--color-border)', borderRadius: '8px', padding: '20px', fontFamily: "'Consolas', 'Monaco', 'Courier New', monospace", @@ -1890,7 +1867,7 @@ const showTextPreview = async (blob, fileName) => { lineHeight: '1.6', whiteSpace: 'pre-wrap', wordBreak: 'break-word', - color: '#333', + color: 'var(--color-text-1)', textAlign: 'left' } }, text) @@ -2336,6 +2313,21 @@ const formatFileSize = (fileSize) => { return `${(size / (1024 * 1024 * 1024)).toFixed(1)} GB`; }; +// 专门用于文件列表的格式化函数(假设后端返回的是KB单位) +const formatFileListSize = (fileSize) => { + const size = Number(fileSize); + if (isNaN(size) || size < 0) return '未知'; + + // 假设后端返回的是KB单位 + if (size < 1024) { + return `${size} KB`; + } else if (size < 1024 * 1024) { + return `${(size / 1024).toFixed(1)} MB`; + } else { + return `${(size / (1024 * 1024)).toFixed(1)} GB`; + } +}; + const fileTypeText = (type) => { @@ -2458,7 +2450,7 @@ onMounted(() => { \ No newline at end of file diff --git a/src/views/project-management/personnel-dispatch/index.vue b/src/views/project-management/personnel-dispatch/index.vue index dc86c4d..99bb392 100644 --- a/src/views/project-management/personnel-dispatch/index.vue +++ b/src/views/project-management/personnel-dispatch/index.vue @@ -26,133 +26,1293 @@ 刷新 - - - - - {{ stats.totalProjectsCount }} - - 总项目数 - - - - - {{ stats.inProgressProjectCount }} - - 进行中 - - - - - {{ stats.pendingProjectCount }} - - 准备中 - - - - - {{ stats.completedProjectCount }} - - 已完成 + + + + + + + + + {{ status.label }} + ({{ getStatusCount(status.value) }}) + - - - - + + + + 全部项目 ({{ totalProjects }}) + + + + + + + + {{ project.name }} + 未开工 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 筹备中 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 开工中 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + + {{ project.name }} + 暂停中 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 已完工 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 验收中 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 验收进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 回款中 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 回款进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + {{ project.name }} + 已结算 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 结算状态 + 100% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + + + + + + + 未开工 + {{ pendingProjects.length }} + + + + + + + + {{ project.name }} + 未开工 + + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + + + + + + + + + 质量管理 + + + + 质量等级 + A级 + + + 检查次数 + 12次 + + + 合格率 + 98.5% + + + + + + + + + 安全管理 + + + + 安全等级 + 优秀 + + + 培训完成 + 100% + + + 安全检查 + 通过 + + + + + + + + + 现场管理 + + + + 在线人数 + {{ project.teamSize || 0 }}人 + + + 设备状态 + 正常 + + + 现场环境 + 良好 + + + + + + + + + - 准备中 + 筹备中 {{ preparingProjects.length }} - - {{ project.name }} - 准备中 - - - - - 预算: {{ formatBudget(project.budget) }} + + + + {{ project.name }} + 筹备中 - - - 负责人: {{ project.manager }} - - - - 团队: {{ project.teamSize }}人 + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + - - - - + + + - 已开工 - {{ ongoingProjects.length }} + 开工中 + {{ inProgressProjects.length }} - - {{ project.name }} - 进行中 - - - - - 预算: {{ formatBudget(project.budget) }} + + + + {{ project.name }} + 开工中 - - - 负责人: {{ project.manager }} - - - - 团队: {{ project.teamSize }}人 + + + + 预算: {{ formatBudget(project.budget) }} + + + + 负责人: {{ project.manager || '未指定' }} + + + + 团队: {{ project.teamSize > 0 ? project.teamSize + '人' : '未设置' }} + + + + 项目进度 + {{ project.progress || 0 }}% + + + + + -