diff --git a/src/api/oa/erp/projectInfo/types.ts b/src/api/oa/erp/projectInfo/types.ts index 7a4c874..d926a4c 100644 --- a/src/api/oa/erp/projectInfo/types.ts +++ b/src/api/oa/erp/projectInfo/types.ts @@ -104,6 +104,11 @@ export interface ProjectInfoVO { */ activeFlag: string; + /** + * 附件ID + */ + ossId?: string | number; + deptName?: string; managerName?: string; @@ -219,6 +224,11 @@ export interface ProjectInfoForm extends BaseEntity { */ activeFlag?: string; + /** + * 附件ID + */ + ossId?: string | number; + /** * 流程编码 */ diff --git a/src/assets/logo/logo.png b/src/assets/logo/logo.png index 3f919d8..db9a889 100644 Binary files a/src/assets/logo/logo.png and b/src/assets/logo/logo.png differ diff --git a/src/components/FileUpload/index.vue b/src/components/FileUpload/index.vue index 1767b1b..4230ad9 100644 --- a/src/components/FileUpload/index.vue +++ b/src/components/FileUpload/index.vue @@ -33,10 +33,9 @@
  • - - {{ getFileName(file.name) }} - + {{ getFileName(file.name) }}
    + 下载 删除
  • @@ -93,7 +92,8 @@ watch( if (Array.isArray(val)) { list = val; } else { - const res = await listByIds(val); + const ossIdParam = typeof val === 'string' || typeof val === 'number' ? val : String(val); + const res = await listByIds(ossIdParam); list = res.data.map((oss) => { return { name: oss.originalName, @@ -174,6 +174,15 @@ const handleUploadSuccess = (res: any, file: UploadFile) => { } }; +// 下载文件 +const handleDownload = (file: any) => { + if (file.ossId) { + proxy?.$download.oss(file.ossId); + } else { + proxy?.$modal.msgWarning('文件ID不存在,无法下载'); + } +}; + // 删除文件 const handleDelete = (index: number) => { const ossId = fileList.value[index].ossId; diff --git a/src/enums/OAEnum.ts b/src/enums/OAEnum.ts index c0c38b2..edf3bd0 100644 --- a/src/enums/OAEnum.ts +++ b/src/enums/OAEnum.ts @@ -73,6 +73,14 @@ export enum FlowCodeEnum { * 市场项目标识KEY */ PROJECT_KEY = 'xmsq', + /** + * 研发项目标识KEY + */ + PROJECT_RD_KEY = 'xmsqf', + /** + * 预投项目标识KEY + */ + PROJECT_PRE_INVEST_KEY = 'xmsqt', /** * 项目计划标识KEY */ diff --git a/src/settings.ts b/src/settings.ts index 5d53a23..2989925 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -20,7 +20,7 @@ const setting: DefaultSettings = { /** * 是否显示顶部导航 */ - topNav: false, + topNav: true, /** * 是否显示 tagsView diff --git a/src/views/oa/erp/projectInfo/devEdit.vue b/src/views/oa/erp/projectInfo/devEdit.vue new file mode 100644 index 0000000..5d354ad --- /dev/null +++ b/src/views/oa/erp/projectInfo/devEdit.vue @@ -0,0 +1,733 @@ + + + + + diff --git a/src/views/oa/erp/projectInfo/edit.vue b/src/views/oa/erp/projectInfo/edit.vue index ba92755..3e8b32f 100644 --- a/src/views/oa/erp/projectInfo/edit.vue +++ b/src/views/oa/erp/projectInfo/edit.vue @@ -435,7 +435,7 @@ const submitForm = (status: string, mode: boolean) => { }; // 流程实例业务扩展字段 submitData.bizExt = { - businessTitle: '项目审批', + businessTitle: '市场项目审批', businessCode: submitData.projectCode }; submitData.projectStatus = '2'; diff --git a/src/views/oa/erp/projectInfo/index.vue b/src/views/oa/erp/projectInfo/index.vue index b80de03..88bbd1a 100644 --- a/src/views/oa/erp/projectInfo/index.vue +++ b/src/views/oa/erp/projectInfo/index.vue @@ -286,11 +286,25 @@ const handleSelectionChange = (selection: ProjectInfoVO[]) => { multiple.value = !selection.length; }; +/** 根据项目类别获取编辑页面路径 */ +const getEditPathByCategory = (projectCategory?: string) => { + if (projectCategory === '3') { + // 研发项目 + return '/project/projectInfo/devEdit'; + } else if (projectCategory === '4') { + // 预投项目 + return '/project/projectInfo/preEdit'; + } else { + // 其他项目(销售项目等) + return '/project/projectInfo/edit'; + } +}; + /** 新增按钮操作 */ const handleAdd = (projectCategory: string) => { proxy.$tab.closePage(route); router.push({ - path: '/project/projectInfo/edit', + path: getEditPathByCategory(projectCategory), query: { type: 'add', projectCategory: projectCategory @@ -303,7 +317,7 @@ const handleUpdate = (row?: ProjectInfoVO) => { const _projectId = row?.projectId || ids.value[0]; proxy.$tab.closePage(route); router.push({ - path: '/project/projectInfo/edit', + path: getEditPathByCategory(row?.projectCategory), query: { id: _projectId, type: 'update' @@ -316,7 +330,7 @@ const handleView = (row?: ProjectInfoVO) => { const _projectId = row?.projectId; proxy.$tab.closePage(route); router.push({ - path: '/project/projectInfo/edit', + path: getEditPathByCategory(row?.projectCategory), query: { id: _projectId, type: 'view' diff --git a/src/views/oa/erp/projectInfo/preEdit.vue b/src/views/oa/erp/projectInfo/preEdit.vue new file mode 100644 index 0000000..78f776f --- /dev/null +++ b/src/views/oa/erp/projectInfo/preEdit.vue @@ -0,0 +1,733 @@ + + + + +