ソースを参照

更新git文件

lihaiting 14 時間 前
親
コミット
76699250fe
3 ファイル変更、4 行追加、61 行削除
  1. 2 1
      .gitignore
  2. 0 58
      .workbuddy/memory/2026-10-15.md
  3. 2 2
      vue.config.js

+ 2 - 1
.gitignore

@@ -23,4 +23,5 @@ yarn-error.log*
 *.sw?
 vue.config.js
 package-lock.json
-.history
+.history
+.workbuddy

+ 0 - 58
.workbuddy/memory/2026-10-15.md

@@ -1,58 +0,0 @@
-# 2026-10-15 工作日志
-
-## 修复 BPM 审批详情附件查看功能
-
-美羊羊反馈:录用审批、办理入职、转正申请、合同签署、岗位调动、离职申请、离职交接的审批详情里附件都看不了。
-
-### 诊断结果
-
-| 审批类型 | 问题 | 修复 |
-|---------|------|------|
-| 录用审批 | 附件只用 `<em>` 纯文本显示文件名,没 fileMain 组件;API 只提取了 attachmentNames 丢弃了 fileId | API 补 attachmentFileIds,详情用 fileMain 替换纯文本 |
-| 办理入职 | 代码 OK,但缺 `:view-disabled`,空数据时按钮可点击打开空弹窗 | 加 `:view-disabled="!resumeFileIds.length"` |
-| 转正申请 | 代码 OK,无需修改 | — |
-| 合同签署 | 代码 OK,无需修改 | — |
-| 岗位调动 | 代码 OK,无需修改 | — |
-| 离职申请 | 模板完全没有附件展示区域,form 有 approvalDocumentFileId 字段但未使用 | 加附件 section + fileMain |
-| 离职交接 | 整个文件没有任何附件相关代码 | 加附件区域 + data/approvalFileIds + bootstrap 取值 |
-
-### 改动文件
-
-1. `src/api/bpm/components/offerApproval/index.js` — adaptHiringApproval 增加 attachmentFileIds
-2. `src/views/bpm/handleTask/components/offerApproval/offerApprovalDetail.vue` — 用 fileMain 替换纯文本附件展示
-3. `src/views/bpm/handleTask/components/resignationApplication/resignationApplicationDetail.vue` — 新增附件展示区域
-4. `src/views/bpm/handleTask/components/resignationHandoverOrder/resignationHandoverOrderDetail.vue` — 新增附件展示区域
-5. `src/views/bpm/handleTask/components/hiringApproval/hiringApprovalDetail.vue` — 加 :view-disabled
-
-### 关键点
-
-- fileMain 是全局注册组件(main.js `Vue.component('fileMain', fileMain)`),所有 .vue 可直接用
-- fileMain type="view" 模式:单文件直接 window.open 预览,多文件打开列表弹窗(含浏览/下载)
-- 附件 fileId 来源:录用审批用 attachments[].fileId/id,其余审批单用 approvalDocumentFileId 字段
-- 离职交接接口无适配层,用 pick 兼容 approvalDocumentFileId / attachmentFileId 两种字段名
-
----
-
-## 二次修复(统一附件解析)— 同上问题复查
-
-用户反馈:合同签署明明有附件(接口返回 `attachmentIds: "2109912865529982977"`)却显示"暂无附件"。
-经复查,之前"合同/调动/转正/入职代码OK"的判断**错误**:这些详情取附件的源字段(`files` 数组 / `approvalDocumentFileId` 单值)与后端实际返回不一致——后端统一返回 `attachmentIds` 字符串,但前端全代码从未处理过该字段。
-
-### 根因
-7 个审批详情组件取附件的源字段各不相同,而后端实际返回 `attachmentIds`(字符串或逗号分隔),前端从未解析它,导致合同等取不到附件。
-
-### 统一修复方案
-新建 `src/utils/attachment.js`,导出 `parseAttachmentIds(raw)`,兼容所有来源:
-`attachmentIds` / `attachmentFileIds` / `approvalDocumentFileId` / `attachmentFileId` / `resumeAttachmentFileIds` / `files`(数组) / `attachments`(数组),去重后返回字符串 ID 数组。
-
-### 改动
-- `src/utils/attachment.js`(新增)— 通用解析函数
-- `src/api/bpm/components/offerApproval/index.js` — adaptHiringApproval 的 attachmentFileIds 改用 parseAttachmentIds(raw)
-- `src/views/bpm/handleTask/components/hrContractManagement/hrContractDetail.vue` — adaptContract 用 parseAttachmentIds(item),删除原 collectAttachmentFileIds
-- `src/views/bpm/handleTask/components/hiringApproval/hiringApprovalDetail.vue` — resumeFileIds = parseAttachmentIds(detail)
-- `src/views/bpm/handleTask/components/regularizationHandling/regularizationHandlingDetail.vue` — approvalFileIds = parseAttachmentIds(regularization)
-- `src/views/bpm/handleTask/components/positionTransfer/positionTransferDetail.vue` — approvalFileIds = parseAttachmentIds(record)
-- `src/views/bpm/handleTask/components/resignationApplication/resignationApplicationDetail.vue` — approvalFileIds = parseAttachmentIds(resignation)
-- `src/views/bpm/handleTask/components/resignationHandoverOrder/resignationHandoverOrderDetail.vue` — approvalFileIds = parseAttachmentIds(detail)
-
-说明:传入 parseAttachmentIds 的变量均为接口原始返回(含后端全部字段),其中办理入职的 getHiringApprovalById(@/api/hr/hiringApproval.js)的 adaptHiringApproval 有 `...raw` 展开,故 detail 含原始附件字段。

+ 2 - 2
vue.config.js

@@ -44,9 +44,9 @@ module.exports = {
         // target: 'http://192.168.1.251:18186',
         // target: 'http://192.168.1.251:18086',
         // target: 'http://192.168.1.3:18086',
-        // target: 'http://aiot.zoomwin.com.cn:51001/api',
+        target: 'http://aiot.zoomwin.com.cn:51001/api',
         // target: 'http://192.168.1.3:18086',
-        target: 'http://192.168.1.147:18086', // 陈兵
+        // target: 'http://192.168.1.147:18086', // 陈兵
         // target: 'http://192.168.1.116:18086', // 赵沙金
         // target: 'http://192.168.1.113:18086', // 郭丹