feat: 顺运宝下一步支持单条建采购任务 (#106)

This commit is contained in:
chengma
2026-08-10 16:34:55 +08:00
parent fb2e4c4dab
commit 7106f6b024
6 changed files with 86 additions and 38 deletions
+30 -17
View File
@@ -137,9 +137,9 @@
/* 采购确认弹窗只负责把服务端已经渲染的本页行按勾选结果显示出来。
规格有效性、价格和客户端权限仍由服务端重新校验。 */
function setupPurchaseModal() {
var openButton = document.querySelector("[data-purchase-open]");
var openButtons = document.querySelectorAll("[data-purchase-open]");
var form = document.querySelector("[data-purchase-form]");
if (!openButton || !form) return;
if (!openButtons.length || !form) return;
var modeInputs = form.querySelectorAll("[data-execution-mode]");
var livePanel = form.querySelector("[data-live-confirm-panel]");
var liveAcknowledged = form.querySelector("[data-live-acknowledged]");
@@ -167,23 +167,36 @@
input.addEventListener("change", updateExecutionMode);
});
updateExecutionMode();
openButton.addEventListener("click", function () {
var selected = {};
document.querySelectorAll("tbody input[name=ids]:checked").forEach(function (box) {
selected[box.value] = true;
});
var shown = 0;
form.querySelectorAll("[data-purchase-row]").forEach(function (row) {
var enabled = !!selected[row.getAttribute("data-purchase-row")];
row.hidden = !enabled;
row.querySelectorAll("input").forEach(function (input) {
input.disabled = !enabled;
openButtons.forEach(function (openButton) {
openButton.addEventListener("click", function () {
var selected = {};
var singleID = openButton.getAttribute("data-purchase-id");
if (singleID) {
selected[singleID] = true;
} else {
document.querySelectorAll("tbody input[name=ids]:checked").forEach(function (box) {
selected[box.value] = true;
});
}
var shown = 0;
form.querySelectorAll("[data-purchase-row]").forEach(function (row) {
var enabled = !!selected[row.getAttribute("data-purchase-row")];
row.hidden = !enabled;
row.querySelectorAll("input").forEach(function (input) {
input.disabled = !enabled;
});
if (enabled) shown += 1;
});
if (enabled) shown += 1;
var empty = form.querySelector("[data-purchase-empty]");
if (empty) empty.hidden = shown > 0;
/* 每次打开都回到演练模式,避免上次关闭弹窗后遗留 live 选择。 */
var dryRun = form.querySelector("[data-execution-mode][value=dry_run]");
if (dryRun) dryRun.checked = true;
if (liveAcknowledged) liveAcknowledged.checked = false;
if (liveConfirmation) liveConfirmation.value = "";
updateExecutionMode();
});
var empty = form.querySelector("[data-purchase-empty]");
if (empty) empty.hidden = shown > 0;
updateExecutionMode();
});
}