fix: 隐藏未选采购规格行 (#113)

This commit is contained in:
chengma
2026-08-10 18:17:41 +08:00
parent c84d2bd5e7
commit 13458038e0
3 changed files with 32 additions and 1 deletions
+29
View File
@@ -36,6 +36,35 @@ func TestPaginationCSS_桌面右对齐且窄窗口不遮挡内容(t *testing.T)
} }
} }
func TestPurchaseModal_未选规格行保持隐藏且不提交(t *testing.T) {
files := map[string][]string{
"static/css/app.css": {
".purchase-confirm-row[hidden] { display: none; }",
},
"templates/syb/list.html": {
`class="purchase-confirm-row" data-purchase-row="{{.SybID}}" hidden`,
`name="mapping_option_key" value="{{.MappingOptionKey}}" disabled`,
`name="context_version" value="{{.ContextVersion}}" disabled`,
`name="max_price_yuan" min="0.01" step="0.01" value="{{.DefaultMaxPrice}}" required disabled`,
},
"static/js/app.js": {
"row.hidden = !enabled;",
"input.disabled = !enabled;",
},
}
for path, wants := range files {
content, err := os.ReadFile(path)
if err != nil {
t.Fatal(err)
}
for _, want := range wants {
if !strings.Contains(string(content), want) {
t.Errorf("%s 缺少采购弹窗回归约束 %q", path, want)
}
}
}
}
func TestTemplatesAndRoutesCanBeBuiltWithoutDatabaseConnection(t *testing.T) { func TestTemplatesAndRoutesCanBeBuiltWithoutDatabaseConnection(t *testing.T) {
if _, err := newRouter(nil); err != nil { if _, err := newRouter(nil); err != nil {
t.Fatalf("模板或路由组装失败: %v", err) t.Fatalf("模板或路由组装失败: %v", err)
+1
View File
@@ -308,6 +308,7 @@ tr.empty small { color: #aaa; }
border: 1px solid #d9dde3; border: 1px solid #d9dde3;
border-radius: 6px; border-radius: 6px;
} }
.purchase-confirm-row[hidden] { display: none; }
.purchase-confirm-row label { display: grid; gap: 6px; } .purchase-confirm-row label { display: grid; gap: 6px; }
.execution-mode-fieldset { .execution-mode-fieldset {
display: grid; display: grid;
+2 -1
View File
@@ -563,7 +563,8 @@ HTML 片段,只替换弹窗内部的表格、总数和分页。主货运单表
每条确认行同时显示顺运宝规格原文和当前映射的唯一 PDD 规格组合。价格输入只对应该 每条确认行同时显示顺运宝规格原文和当前映射的唯一 PDD 规格组合。价格输入只对应该
组合中的选定颜色,不显示同一 PDD 商品的其他颜色或价格。批量创建时每条顺运宝明细 组合中的选定颜色,不显示同一 PDD 商品的其他颜色或价格。批量创建时每条顺运宝明细
各自显示一个选定组合和一个价格输入;映射或商品上下文在弹窗打开后变化时,服务端拒绝 各自显示一个选定组合和一个价格输入;映射或商品上下文在弹窗打开后变化时,服务端拒绝
旧提交并要求刷新。 旧提交并要求刷新。未勾选的确认行必须同时保持 `hidden` 和 input `disabled`;采购行的
grid 样式不得覆盖 `hidden`,关闭后改变勾选再打开也不得残留上一次的确认行。
`[必须]` 校验不过的**不要静默跳过**,要列出来告诉操作员缺什么: `[必须]` 校验不过的**不要静默跳过**,要列出来告诉操作员缺什么: