From 4afe56d03b0cd649372f4bf8341c68a4a7bf8b72 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 21 Jun 2026 11:00:40 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=B8=E6=94=B6=20Vue3=20=E4=BD=8E?= =?UTF-8?q?=E9=A3=8E=E9=99=A9=E4=BA=A4=E4=BA=92=E4=B8=8E=E5=B1=80=E9=83=A8?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 三端 ProductList 在 spuIds 为空时跳过商品详情请求 - 三端 FloatingActionButton 点击子项后收起预览面板 - OA 请假 startUserSelectAssignees 改为创建页局部扩展类型,不污染 Leave VO - 修复 antdv-next FloatingActionButton Image fallback slot 类型 --- apps/web-antd/src/api/bpm/oa/leave/index.ts | 1 - .../src/views/bpm/oa/leave/create.vue | 33 ++++++++++--------- .../mobile/floating-action-button/index.vue | 5 +++ .../components/mobile/product-list/index.vue | 4 ++- .../src/api/bpm/oa/leave/index.ts | 1 - .../src/views/bpm/oa/leave/create.vue | 33 ++++++++++--------- .../mobile/floating-action-button/index.vue | 7 +++- .../components/mobile/product-list/index.vue | 4 ++- apps/web-ele/src/api/bpm/oa/leave/index.ts | 1 - .../web-ele/src/views/bpm/oa/leave/create.vue | 33 ++++++++++--------- .../mobile/floating-action-button/index.vue | 5 +++ .../components/mobile/product-list/index.vue | 4 ++- 12 files changed, 76 insertions(+), 55 deletions(-) diff --git a/apps/web-antd/src/api/bpm/oa/leave/index.ts b/apps/web-antd/src/api/bpm/oa/leave/index.ts index 440674bdd..32a814c55 100644 --- a/apps/web-antd/src/api/bpm/oa/leave/index.ts +++ b/apps/web-antd/src/api/bpm/oa/leave/index.ts @@ -12,7 +12,6 @@ export namespace BpmOALeaveApi { startTime: number; endTime: number; createTime: Date; - startUserSelectAssignees?: Record; } } diff --git a/apps/web-antd/src/views/bpm/oa/leave/create.vue b/apps/web-antd/src/views/bpm/oa/leave/create.vue index cbe2086b4..8abc90cc6 100644 --- a/apps/web-antd/src/views/bpm/oa/leave/create.vue +++ b/apps/web-antd/src/views/bpm/oa/leave/create.vue @@ -28,10 +28,14 @@ const { query } = useRoute(); const formLoading = ref(false); // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用 const processTimeLineLoading = ref(false); // 审批流的加载中 +type LeaveCreateData = BpmOALeaveApi.Leave & { + startUserSelectAssignees?: Record; +}; + const processDefineKey = 'oa_leave'; // 流程定义 Key -const startUserSelectTasks = ref([]); // 发起人需要选择审批人的用户任务列表 -const startUserSelectAssignees = ref({}); // 发起人选择审批人的数据 -const tempStartUserSelectAssignees = ref({}); // 历史发起人选择审批人的数据,用于每次表单变更时,临时保存 +const startUserSelectTasks = ref([]); // 发起人需要选择审批人的用户任务列表 +const startUserSelectAssignees = ref>({}); // 发起人选择审批人的数据 +const tempStartUserSelectAssignees = ref>({}); // 历史发起人选择审批人的数据,用于每次表单变更时,临时保存 const activityNodes = ref([]); // 审批节点信息 const processDefinitionId = ref(''); @@ -65,23 +69,21 @@ async function onSubmit() { // 1.2 审批相关:校验指定审批人 if (startUserSelectTasks.value?.length > 0) { for (const userTask of startUserSelectTasks.value) { - if ( - Array.isArray(startUserSelectAssignees.value[userTask.id]) && - startUserSelectAssignees.value[userTask.id].length === 0 - ) { + const assignees = startUserSelectAssignees.value[userTask.id]; + if (Array.isArray(assignees) && assignees.length === 0) { return message.warning(`请选择${userTask.name}的审批人`); } } } // 提交表单 - const data = (await formApi.getValues()) as BpmOALeaveApi.Leave; + const data = (await formApi.getValues()) as LeaveCreateData; // 审批相关:设置指定审批人 if (startUserSelectTasks.value?.length > 0) { data.startUserSelectAssignees = startUserSelectAssignees.value; } // 格式化开始时间和结束时间的值 - const submitData: BpmOALeaveApi.Leave = { + const submitData: LeaveCreateData = { ...data, startTime: Number(data.startTime), endTime: Number(data.endTime), @@ -144,11 +146,10 @@ async function getApprovalDetail() { // 恢复之前的选择审批人 if (startUserSelectTasks.value?.length > 0) { for (const node of startUserSelectTasks.value) { - startUserSelectAssignees.value[node.id] = - tempStartUserSelectAssignees.value[node.id] && - tempStartUserSelectAssignees.value[node.id].length > 0 - ? tempStartUserSelectAssignees.value[node.id] - : []; + const tempAssignees = tempStartUserSelectAssignees.value[node.id]; + startUserSelectAssignees.value[node.id] = tempAssignees?.length + ? tempAssignees + : []; } } } finally { @@ -157,8 +158,8 @@ async function getApprovalDetail() { } /** 审批相关:选择发起人 */ -function selectUserConfirm(id: string, userList: any[]) { - startUserSelectAssignees.value[id] = userList?.map((item: any) => item.id); +function selectUserConfirm(id: string, userList: Array<{ id: number }>) { + startUserSelectAssignees.value[id] = userList.map((item) => item.id); } /** 获取请假数据,用于重新发起时自动填充 */ diff --git a/apps/web-antd/src/views/mall/promotion/components/diy-editor/components/mobile/floating-action-button/index.vue b/apps/web-antd/src/views/mall/promotion/components/diy-editor/components/mobile/floating-action-button/index.vue index 7451e8d87..84a8d0fb8 100644 --- a/apps/web-antd/src/views/mall/promotion/components/diy-editor/components/mobile/floating-action-button/index.vue +++ b/apps/web-antd/src/views/mall/promotion/components/diy-editor/components/mobile/floating-action-button/index.vue @@ -19,6 +19,10 @@ const expanded = ref(false); // 是否展开 function handleToggleFab() { expanded.value = !expanded.value; } + +function handleActive() { + expanded.value = false; +}