feat(frontend): 公司设置/二次分配/审批三页接入,参数页编码中文化
- 公司信息页(设置 order7):名称编辑 + logo 上传(png/jpg ≤2MB 前端先拦)+ 签名元素「登录页实景预览」(缩比登录卡,品牌名/logo 即时反映,所见即所得) - 审批管理页(order8):列表筛选(关键词/状态/类型)+ 签名元素 「竖排节点时间线」(财务复核→领导审核,人工/自动/驳回色区分)+ 在途单通过/驳回动作(驳回必填意见,经 useConfirmAction 确认流) - 路由扩展 allowedRoles 元数据:菜单按任一列入角色可见 + 守卫双 过滤(admin 须显式列入集合,不天然放行);审批页对 admin/ finance/leader 可见(营销后勤待权限清单 #6) - 业务表单二次分配区:参与人下拉(离职禁用)+比例输入+实时合计条 (合计≠100% 提示余额归属待业务确认,满额高亮);编辑全量替换、 空行自动忽略;校验(人员非重/比例两位小数)与后端 NUMERIC(5,2) 同口径 - 登录页接 /system/settings/public:品牌名与页脚动态,logo 展示, 失败静默回退默认(登录页必须可用) - 参数页中文化:维度角色名映射(营销员/营销经理/信息员)、枚举值 中文(当月全额/余额、含/扣/不计基本工资、开/关)、预览「所用参数」 由编码直出改中文名(编码括注) - 验证:pnpm type-check 零错误;pnpm build 通过 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
1 parent
74f1ef1cf9
commit
927592b472
4 files changed
+59
-12
No files matched your search
@@ -101,14 +101,19 @@ async function submitAction(): Promise<void> {
|
||||
}
|
||||
actionSubmitting.value = true
|
||||
try {
|
||||
const run = () =>
|
||||
actApproval(actingId.value as number, {
|
||||
action: actionForm.action,
|
||||
opinion: actionForm.opinion.trim() || null,
|
||||
})
|
||||
await confirmAndRun(run, {
|
||||
successMessage: actionForm.action === 1 ? '已通过' : '已驳回',
|
||||
const ok = await confirmAndRun({
|
||||
confirmText:
|
||||
actionForm.action === 1
|
||||
? `确认通过审批单 ${actingId.value}?通过后进入下一节点。`
|
||||
: `确认驳回审批单 ${actingId.value}?驳回后该单终止。`,
|
||||
run: () =>
|
||||
actApproval(actingId.value as number, {
|
||||
action: actionForm.action,
|
||||
opinion: actionForm.opinion.trim() || null,
|
||||
}),
|
||||
successText: actionForm.action === 1 ? '已通过' : '已驳回',
|
||||
})
|
||||
if (!ok) return
|
||||
// 动作后刷新抽屉与列表(状态可能已流转或终态)
|
||||
detail.value = await getApproval(actingId.value)
|
||||
actingId.value = null
|
||||
|
||||
Reference in new issue
Block a user