diff --git a/src/router/route.ts b/src/router/route.ts index ddc8ced..c632539 100644 --- a/src/router/route.ts +++ b/src/router/route.ts @@ -906,12 +906,61 @@ export const systemRoutes: RouteRecordRaw[] = [ }, ], }, - // start + + { + path: '/construction-operation-platform', + name: 'ConstructionOperationPlatform', + component: Layout, + redirect: '/construction-operation-platform/implementation-workflow/field-construction', + meta: { title: '我的工作台', icon: 'tool', hidden: false, sort: 5 }, + children: [ + // { + // path: '/construction-operation-platform/implementation-workflow', + // name: 'ImplementationWorkflow', + // component: () => import('@/components/ParentView/index.vue'), + // redirect: '/construction-operation-platform/implementation-workflow/field-construction', + // meta: { title: '项目实施工作流程', icon: 'fork', hidden: false }, + // children: [ + { + path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/attachment', + name: 'AttachmentManagement', + component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/index.vue'), + meta: { title: '附件管理', icon: 'attachment', hidden: false }, + }, + { + path: '/construction-operation-platform/implementation-workflow/data-processing/model-config', + name: 'ModelConfig', + component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/model-config/index.vue'), + meta: { title: '模型配置', icon: 'robot', hidden: false }, + }, + { + path: '/construction-operation-platform/implementation-workflow/field-construction', + name: 'FieldConstruction', + component: () => import('@/components/ParentView/index.vue'), + redirect: '/construction-operation-platform/implementation-workflow/field-construction/project-list', + meta: { title: '我的项目', icon: 'construction', hidden: false }, + children: [ + { + path: '/project-management/projects/list', + name: 'ProjectList', + component: () => import('@/views/project-management/projects/list/index.vue'), + meta: { + title: '项目列表', + icon: 'unordered-list', + hidden: false, + }, + }, + { + path: '/construction-operation-platform/implementation-workflow/field-construction/technology', + name: 'FieldConstructionTechnology', + component: () => import('@/views/project-operation-platform/implementation-workflow/field-construction/project-list/index.vue'), + meta: { title: '我的施工', icon: 'tool', hidden: false }, + }, + // start // 数据管理 { path: '/data-management', name: 'DataManagement', - component: Layout, redirect: '/data-management/project-management/project-template', meta: { title: '数据管理', icon: 'database', hidden: false, sort: 4 }, children: [ @@ -1027,55 +1076,6 @@ export const systemRoutes: RouteRecordRaw[] = [ ], }, // end - { - path: '/construction-operation-platform', - name: 'ConstructionOperationPlatform', - component: Layout, - redirect: '/construction-operation-platform/implementation-workflow/field-construction', - meta: { title: '我的工作台', icon: 'tool', hidden: false, sort: 5 }, - children: [ - // { - // path: '/construction-operation-platform/implementation-workflow', - // name: 'ImplementationWorkflow', - // component: () => import('@/components/ParentView/index.vue'), - // redirect: '/construction-operation-platform/implementation-workflow/field-construction', - // meta: { title: '项目实施工作流程', icon: 'fork', hidden: false }, - // children: [ - { - path: '/construction-operation-platform/implementation-workflow/data-processing/data-storage/attachment', - name: 'AttachmentManagement', - component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/data-storage/index.vue'), - meta: { title: '附件管理', icon: 'attachment', hidden: false }, - }, - { - path: '/construction-operation-platform/implementation-workflow/data-processing/model-config', - name: 'ModelConfig', - component: () => import('@/views/construction-operation-platform/implementation-workflow/data-processing/model-config/index.vue'), - meta: { title: '模型配置', icon: 'robot', hidden: false }, - }, - { - path: '/construction-operation-platform/implementation-workflow/field-construction', - name: 'FieldConstruction', - component: () => import('@/components/ParentView/index.vue'), - redirect: '/construction-operation-platform/implementation-workflow/field-construction/project-list', - meta: { title: '我的项目', icon: 'construction', hidden: false }, - children: [ - { - path: '/project-management/projects/list', - name: 'ProjectList', - component: () => import('@/views/project-management/projects/list/index.vue'), - meta: { - title: '项目列表', - icon: 'unordered-list', - hidden: false, - }, - }, - { - path: '/construction-operation-platform/implementation-workflow/field-construction/technology', - name: 'FieldConstructionTechnology', - component: () => import('@/views/project-operation-platform/implementation-workflow/field-construction/project-list/index.vue'), - meta: { title: '我的施工', icon: 'tool', hidden: false }, - }, { path: '/construction-operation-platform/implementation-workflow/project-delivery', name: 'ProjectDelivery', diff --git a/src/types/components.d.ts b/src/types/components.d.ts index a427ece..7fa6b1b 100644 --- a/src/types/components.d.ts +++ b/src/types/components.d.ts @@ -7,70 +7,7 @@ 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'] - CircularProgress: typeof import('./../components/CircularProgress/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/system-resource/device-management/procurement/components/PaymentModal.vue b/src/views/system-resource/device-management/procurement/components/PaymentModal.vue index 81b7d52..8535ad2 100644 --- a/src/views/system-resource/device-management/procurement/components/PaymentModal.vue +++ b/src/views/system-resource/device-management/procurement/components/PaymentModal.vue @@ -1,474 +1,380 @@ - diff --git a/src/views/system-resource/device-management/procurement/index.vue b/src/views/system-resource/device-management/procurement/index.vue index 3f40bae..2ed8c52 100644 --- a/src/views/system-resource/device-management/procurement/index.vue +++ b/src/views/system-resource/device-management/procurement/index.vue @@ -201,6 +201,8 @@ 编辑 + + 申请采购 - - - 确认收货 - + + 管理合同发票 - - 查看收货 - - + + + - 付款 + 申请付款 查看支付详情 - + + + + 确认收货 + + - - 刷新 + 查看收货 - + + + + + {{ getProcurementStatusText(record.procurementStatus) }} - - - {{ getApprovalStatusText(record.approvalStatus) }} + + + + 已完善 + + 待完善 + + + 未开始 + + + + + {{ getPaymentStatusText(record.paymentStatus) }} + + 未支付 + + + + {{ getReceiptStatusText(record.receiptStatus) }} + + 未收货 + { loadData(currentSearchParams.value) } +// 检查是否有合同发票信息 +const hasContractInvoiceInfo = (record: EquipmentResp) => { + // 这里可以根据实际业务逻辑调整判断条件 + // 暂时使用一个简单的判断,后续可以根据实际数据结构调整 + // 例如:检查是否有合同编号、发票号码等字段 + return record.procurementStatus === 'APPROVED' && + (record.receiptStatus === 'RECEIVED' || record.paymentStatus === 'PAID') +} + onMounted(() => { loadData() }) @@ -1393,6 +1437,8 @@ onMounted(() => { } } } + + } // 响应式设计