diff --git a/frontend/web-admin/src/views/ApprovalDetailPage.vue b/frontend/web-admin/src/views/ApprovalDetailPage.vue index a03af17..d782be6 100644 --- a/frontend/web-admin/src/views/ApprovalDetailPage.vue +++ b/frontend/web-admin/src/views/ApprovalDetailPage.vue @@ -303,15 +303,7 @@ async function handleApprove(result) { approve_result: result, approve_opinion: approveOpinion.value || (result === "pass" ? "审批通过" : "审批驳回"), }; - - if (orderInfo.value.orderStatus === "cancel_pending" || orderInfo.value.orderStatus === "cancel_fulfillment_pending") { - await cancelApproveOrder(orderInfo.value.orderId, payload); - toast.success(result === "pass" ? "取消审批已通过" : "已驳回取消申请"); - } else { - await approveOrder(orderInfo.value.orderId, payload); - toast.success(result === "pass" ? "审批已通过" : "已驳回"); - } - + // ????????? user activation ????? if (result === "pass" && orderInfo.value.orderStatus !== "cancel_pending" && orderInfo.value.orderStatus !== "cancel_fulfillment_pending") { const text = buildCopyText(); if (text) { @@ -328,13 +320,21 @@ async function handleApprove(result) { document.execCommand("copy"); document.body.removeChild(ta); } - toast.success("采购信息已复制到剪切板"); } catch (e) { - console.warn("剪切板写入失败:", e); + console.warn("clipboard write failed:", e); } } } + if (orderInfo.value.orderStatus === "cancel_pending" || orderInfo.value.orderStatus === "cancel_fulfillment_pending") { + await cancelApproveOrder(orderInfo.value.orderId, payload); + toast.success(result === "pass" ? "取消审批已通过" : "已驳回取消申请"); + } else { + await approveOrder(orderInfo.value.orderId, payload); + toast.success(result === "pass" ? "审批已通过" : "已驳回"); + } + + await loadDetail(); } catch (error) { toast.error(error.message || "审批操作失败"); diff --git a/frontend/web-admin/src/views/OrdersPage.vue b/frontend/web-admin/src/views/OrdersPage.vue index 887cd95..474a9c0 100644 --- a/frontend/web-admin/src/views/OrdersPage.vue +++ b/frontend/web-admin/src/views/OrdersPage.vue @@ -2002,6 +2002,8 @@ async function handleApprovalPass() { } catch { const ta = document.createElement('textarea'); ta.value = copyText; + ta.style.position = 'fixed'; + ta.style.left = '-9999px'; document.body.appendChild(ta); ta.select(); document.execCommand('copy'); @@ -2130,6 +2132,8 @@ async function handleCopySupplierText() { // 降级方案 const textarea = document.createElement('textarea'); textarea.value = supplierText.value; + textarea.style.position = 'fixed'; + textarea.style.left = '-9999px'; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy');