feat: 增加真实采购任务安全模式 (#98)
This commit is contained in:
@@ -274,6 +274,27 @@ tr.empty small { color: #aaa; }
|
||||
border-radius: 6px;
|
||||
}
|
||||
.purchase-confirm-row label { display: grid; gap: 6px; }
|
||||
.execution-mode-fieldset {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
margin: 0;
|
||||
padding: 12px;
|
||||
border: 1px solid #d0d5dd;
|
||||
border-radius: 6px;
|
||||
}
|
||||
.choice-row { display: flex; align-items: flex-start; gap: 8px; }
|
||||
.choice-row span { display: grid; gap: 2px; }
|
||||
.choice-row small { color: #667085; font-weight: 400; }
|
||||
.live-confirm-panel {
|
||||
display: grid;
|
||||
gap: 10px;
|
||||
padding: 12px;
|
||||
border: 2px solid #b42318;
|
||||
border-radius: 6px;
|
||||
background: #fff5f3;
|
||||
}
|
||||
.live-confirm-panel[hidden] { display: none; }
|
||||
.live-confirm-panel p { margin: 0; }
|
||||
@media (max-width: 760px) {
|
||||
.purchase-confirm-row { grid-template-columns: 1fr; }
|
||||
}
|
||||
|
||||
@@ -140,6 +140,33 @@
|
||||
var openButton = document.querySelector("[data-purchase-open]");
|
||||
var form = document.querySelector("[data-purchase-form]");
|
||||
if (!openButton || !form) return;
|
||||
var modeInputs = form.querySelectorAll("[data-execution-mode]");
|
||||
var livePanel = form.querySelector("[data-live-confirm-panel]");
|
||||
var liveAcknowledged = form.querySelector("[data-live-acknowledged]");
|
||||
var liveConfirmation = form.querySelector("[data-live-confirmation]");
|
||||
var clientSelect = form.querySelector("select[name=client_id]");
|
||||
function updateExecutionMode() {
|
||||
var selected = form.querySelector("[data-execution-mode]:checked");
|
||||
var isLive = selected && selected.value === "live";
|
||||
if (livePanel) livePanel.hidden = !isLive;
|
||||
if (liveAcknowledged) liveAcknowledged.required = isLive;
|
||||
if (liveConfirmation) liveConfirmation.required = isLive;
|
||||
if (clientSelect) {
|
||||
clientSelect.querySelectorAll("option[data-purchase-mode]").forEach(function (option) {
|
||||
option.disabled = isLive && option.getAttribute("data-purchase-mode") !== "live";
|
||||
});
|
||||
if (clientSelect.selectedOptions.length && clientSelect.selectedOptions[0].disabled) {
|
||||
clientSelect.value = "";
|
||||
}
|
||||
}
|
||||
form.setAttribute("data-confirm-submit", isLive
|
||||
? "确认创建真实的未付款订单?系统不会自动支付。"
|
||||
: "确认创建采购演练任务?任务创建后将等待所选客户端领取。");
|
||||
}
|
||||
modeInputs.forEach(function (input) {
|
||||
input.addEventListener("change", updateExecutionMode);
|
||||
});
|
||||
updateExecutionMode();
|
||||
openButton.addEventListener("click", function () {
|
||||
var selected = {};
|
||||
document.querySelectorAll("tbody input[name=ids]:checked").forEach(function (box) {
|
||||
@@ -156,6 +183,7 @@
|
||||
});
|
||||
var empty = form.querySelector("[data-purchase-empty]");
|
||||
if (empty) empty.hidden = shown > 0;
|
||||
updateExecutionMode();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user