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 @@ - \ 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 }}% +
+
+ +
+
-