feat: 顺运宝下一步支持单条建采购任务 (#106)
This commit is contained in:
+30
-17
@@ -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();
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user