From d1eb3d61cf384c3c21b25cd7670d2ee3fb4ed347 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Thu, 5 Feb 2026 15:52:09 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=AE=A1=E6=89=B9):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E4=B8=AD=E5=BF=83=E9=A1=B5=E9=9D=A2=E5=8F=8A?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增审批中心页面,包含待审批任务列表展示和筛选功能 - 优化各审批类型详情页,增加项目信息展示和弹窗查看功能 - 在报销、用印、请假、出差详情页添加项目信息展示区域和详情弹窗 - 调整消息中心CC列表,增加未读状态红点标识 - 更新tabbar配置,新增审批入口图标和路由 - 优化部分页面交互细节和样式调整 --- components/hrm/detailPanels/leave.vue | 86 ++- components/hrm/detailPanels/reimburse.vue | 78 +++ components/hrm/detailPanels/seal.vue | 86 +++ components/hrm/detailPanels/travel.vue | 492 +++++++++++------ pages.json | 13 + pages/hrm/approve/approve.vue | 626 ++++++++++++++++++++++ pages/workbench/hrm/apply/apply.vue | 2 +- pages/workbench/hrm/cc/cc.vue | 7 +- pages/workbench/index/index.vue | 2 +- static/images/tabbar_shenpi.png | Bin 0 -> 3435 bytes static/images/tabbar_shenpi_active.png | Bin 0 -> 3272 bytes 11 files changed, 1220 insertions(+), 172 deletions(-) create mode 100644 pages/hrm/approve/approve.vue create mode 100644 static/images/tabbar_shenpi.png create mode 100644 static/images/tabbar_shenpi_active.png diff --git a/components/hrm/detailPanels/leave.vue b/components/hrm/detailPanels/leave.vue index 331a9d3..b2854e9 100644 --- a/components/hrm/detailPanels/leave.vue +++ b/components/hrm/detailPanels/leave.vue @@ -40,6 +40,59 @@ 申请时间: {{ formatTime(detail.createTime) || '无' }} + + + + 项目名称 + {{ detail.projectName || '无' }} + + + + 项目编号 + {{ detail.projectNum || '无' }} + + + + 项目代号 + {{ detail.projectCode || '无' }} + + + + + + 项目名称: + {{ detail.projectName || '-' }} + + + 项目编号: + {{ detail.projectNum || '-' }} + + + 项目代号: + {{ detail.projectCode || '-' }} + + + 项目类型: + + + + 项目地址: + {{ detail.address || '-' }} + + + 项目总金额: + {{ detail.funds || '-' }}元 + + + 负责人: + {{ detail.functionary || '-' }} + + + 备注: + {{ detail.remark || '-' }} + + + @@ -84,7 +137,10 @@ if (!timeStr) return ''; const [datePart] = timeStr.split(' '); return datePart; - } + }, + openPopup() { + this.$refs.popup.open() + }, } } @@ -162,6 +218,12 @@ color: #333333; word-break: break-all; } +/* 总金额突出 - 字体加粗+主题色,视觉重点 */ +.amount-item .item-value { + color: #409eff; + font-weight: 600; + font-size: 32rpx; +} /* 请假原因 - 适配多行文,增加行高 */ .reason-item .item-value { line-height: 52rpx; @@ -183,4 +245,26 @@ margin: 8rpx 16rpx 0; flex-shrink: 0; } + +.detail-content { + border: 1px solid #ccc; /* 边框 */ + border-radius: 10px; /* 圆角 */ + padding: 15px; /* 内边距 */ + background-color: #f9f9f9; /* 背景色 */ +} + +.info-item { + display: flex; /* 使用 Flexbox 布局 */ + justify-content: space-between; /* 在一行内均匀分布 */ + margin-top: 10px; /* 上边距 */ +} + +.info-label { + color: #333; /* 标签颜色 */ + font-weight: bold; /* 标签加粗 */ +} + +.info-value { + color: #666; /* 值的颜色 */ +} \ No newline at end of file diff --git a/components/hrm/detailPanels/reimburse.vue b/components/hrm/detailPanels/reimburse.vue index f30c5c1..b93648a 100644 --- a/components/hrm/detailPanels/reimburse.vue +++ b/components/hrm/detailPanels/reimburse.vue @@ -42,6 +42,59 @@ 更新人: {{ detail.updateBy || '无' }} + + + + 项目名称 + {{ detail.projectName || '无' }} + + + + 项目编号 + {{ detail.projectNum || '无' }} + + + + 项目代号 + {{ detail.projectCode || '无' }} + + + + + + 项目名称: + {{ detail.projectName || '-' }} + + + 项目编号: + {{ detail.projectNum || '-' }} + + + 项目代号: + {{ detail.projectCode || '-' }} + + + 项目类型: + + + + 项目地址: + {{ detail.address || '-' }} + + + 项目总金额: + {{ detail.funds || '-' }}元 + + + 负责人: + {{ detail.functionary || '-' }} + + + 备注: + {{ detail.remark || '-' }} + + + @@ -99,6 +152,9 @@ const [datePart] = timeStr.split(' '); return datePart; }, + openPopup() { + this.$refs.popup.open() + }, /** * 状态文本转换 * 将接口返回的英文状态转为中文展示 @@ -219,4 +275,26 @@ margin: 8rpx 16rpx 0; flex-shrink: 0; } + +.detail-content { + border: 1px solid #ccc; /* 边框 */ + border-radius: 10px; /* 圆角 */ + padding: 15px; /* 内边距 */ + background-color: #f9f9f9; /* 背景色 */ +} + +.info-item { + display: flex; /* 使用 Flexbox 布局 */ + justify-content: space-between; /* 在一行内均匀分布 */ + margin-top: 10px; /* 上边距 */ +} + +.info-label { + color: #333; /* 标签颜色 */ + font-weight: bold; /* 标签加粗 */ +} + +.info-value { + color: #666; /* 值的颜色 */ +} \ No newline at end of file diff --git a/components/hrm/detailPanels/seal.vue b/components/hrm/detailPanels/seal.vue index 63cadcc..bbc55ea 100644 --- a/components/hrm/detailPanels/seal.vue +++ b/components/hrm/detailPanels/seal.vue @@ -36,6 +36,59 @@ 更新人 {{ detail.updateBy || '无' }} + + + + 项目名称 + {{ detail.projectName || '无' }} + + + + 项目编号 + {{ detail.projectNum || '无' }} + + + + 项目代号 + {{ detail.projectCode || '无' }} + + + + + + 项目名称: + {{ detail.projectName || '-' }} + + + 项目编号: + {{ detail.projectNum || '-' }} + + + 项目代号: + {{ detail.projectCode || '-' }} + + + 项目类型: + + + + 项目地址: + {{ detail.address || '-' }} + + + 项目总金额: + {{ detail.funds || '-' }}元 + + + 负责人: + {{ detail.functionary || '-' }} + + + 备注: + {{ detail.remark || '-' }} + + + @@ -65,6 +118,11 @@ immediate: true } }, + methods: { + openPopup() { + this.$refs.popup.open() + } + } } @@ -143,6 +201,12 @@ word-break: break-all; /* 适配超长文本,防止溢出 */ line-height: 48rpx; } +/* 总金额突出 - 字体加粗+主题色,视觉重点 */ +.amount-item .item-value { + color: #409eff; + font-weight: 600; + font-size: 32rpx; +} /* 多行文适配 - 用印原因/备注,加大行高提升阅读体验,与其他组件一致 */ .multi-line .item-value { line-height: 52rpx; @@ -164,4 +228,26 @@ margin: 8rpx 16rpx 0; flex-shrink: 0; } + +.detail-content { + border: 1px solid #ccc; /* 边框 */ + border-radius: 10px; /* 圆角 */ + padding: 15px; /* 内边距 */ + background-color: #f9f9f9; /* 背景色 */ +} + +.info-item { + display: flex; /* 使用 Flexbox 布局 */ + justify-content: space-between; /* 在一行内均匀分布 */ + margin-top: 10px; /* 上边距 */ +} + +.info-label { + color: #333; /* 标签颜色 */ + font-weight: bold; /* 标签加粗 */ +} + +.info-value { + color: #666; /* 值的颜色 */ +} \ No newline at end of file diff --git a/components/hrm/detailPanels/travel.vue b/components/hrm/detailPanels/travel.vue index 3b92fd7..476c318 100644 --- a/components/hrm/detailPanels/travel.vue +++ b/components/hrm/detailPanels/travel.vue @@ -1,76 +1,131 @@ \ No newline at end of file diff --git a/pages.json b/pages.json index 9a44fa4..da8d436 100644 --- a/pages.json +++ b/pages.json @@ -585,6 +585,13 @@ "navigationBarTitleText": "我的申请", "navigationStyle": "default" } + }, + { + "path": "pages/hrm/approve/approve", + "style": { + "navigationBarTitleText": "办公审批", + "navigationStyle": "default" + } } ], "tabBar": { @@ -600,6 +607,12 @@ "selectedIconPath": "static/images/tabbar_conversation_active.png", "text": "消息" }, + { + "pagePath": "pages/hrm/approve/approve", + "iconPath": "/static/images/tabbar_shenpi.png", + "selectedIconPath": "/static/images/tabbar_shenpi_active.png", + "text": "审批" + }, // { // "pagePath": "pages/contact/index/index", // "iconPath": "./static/images/tabbar_contacts.png", diff --git a/pages/hrm/approve/approve.vue b/pages/hrm/approve/approve.vue new file mode 100644 index 0000000..018a1ee --- /dev/null +++ b/pages/hrm/approve/approve.vue @@ -0,0 +1,626 @@ + + + + + \ No newline at end of file diff --git a/pages/workbench/hrm/apply/apply.vue b/pages/workbench/hrm/apply/apply.vue index f175399..120c987 100644 --- a/pages/workbench/hrm/apply/apply.vue +++ b/pages/workbench/hrm/apply/apply.vue @@ -9,7 +9,7 @@ - diff --git a/pages/workbench/hrm/cc/cc.vue b/pages/workbench/hrm/cc/cc.vue index 6540cd2..b098e95 100644 --- a/pages/workbench/hrm/cc/cc.vue +++ b/pages/workbench/hrm/cc/cc.vue @@ -46,9 +46,9 @@ - + + + @@ -278,6 +278,7 @@ }); return; } + readCc(task.ccId) uni.navigateTo({ url: `/pages/workbench/hrm/detail/detail?bizId=${task.bizId}&bizType=${task.bizType}` }); diff --git a/pages/workbench/index/index.vue b/pages/workbench/index/index.vue index b9007cb..1802eb6 100644 --- a/pages/workbench/index/index.vue +++ b/pages/workbench/index/index.vue @@ -17,7 +17,7 @@ diff --git a/static/images/tabbar_shenpi.png b/static/images/tabbar_shenpi.png new file mode 100644 index 0000000000000000000000000000000000000000..772a11959d8d08f2bd606885efdfaaabdd6cb25f GIT binary patch literal 3435 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 Yg}_b8Ol_kgjbQ|#r)8{JrQsOyUlbn6X#fBK literal 0 HcmV?d00001