feat: 完成规格映射与采购任务创建 (#69)
This commit is contained in:
@@ -76,6 +76,34 @@
|
||||
<span class="hint">{{if eq .CollectStatus "collecting"}}采集任务正在执行,请稍后刷新。{{else}}PDD 数据已采集,下一步匹配采购规格。{{end}}</span>
|
||||
{{end}}
|
||||
</form>
|
||||
|
||||
{{if eq .CollectStatus "collected"}}
|
||||
<h3>匹配采购规格</h3>
|
||||
{{if .PddChoices}}
|
||||
<form method="post" action="/syb/match" class="form-stack">
|
||||
<input type="hidden" name="csrf_token" value="{{$.CSRFToken}}">
|
||||
<input type="hidden" name="syb_id" value="{{.SybID}}">
|
||||
<input type="hidden" name="order_no" value="{{$.Keyword}}">
|
||||
<input type="hidden" name="stage" value="{{$.StageFilter}}">
|
||||
<input type="hidden" name="page" value="{{$.CurrentPage}}">
|
||||
<div class="field">
|
||||
<label for="syb-pdd-option">蝦皮 {{.ProductSpec}} 对应的 PDD 规格</label>
|
||||
<select id="syb-pdd-option" name="pdd_option_key" required>
|
||||
<option value="">请选择,不做相似规格猜测</option>
|
||||
{{range .PddChoices}}
|
||||
<option value="{{.Key}}" {{if .Selected}}selected{{end}}>{{.Label}} · {{.PriceText}}</option>
|
||||
{{end}}
|
||||
</select>
|
||||
<small>PDD 维度来自采集结果:{{range $i, $name := .PddDimensionNames}}{{if $i}} / {{end}}{{$name}}{{end}}。保存后相同蝦皮 SKU + 当前 PDD 商品会复用。</small>
|
||||
</div>
|
||||
{{if and (not .MappingValid) .PddChoices}}<p class="missing">尚无有效映射,或原映射已不在最新采集结果中,请重新选择。</p>{{end}}
|
||||
<div><button type="submit" class="primary">保存规格映射</button></div>
|
||||
</form>
|
||||
{{else}}
|
||||
<p class="missing">最新采集结果里没有可购买的规格组合,请核对 PDD 商品或重新采集。</p>
|
||||
{{end}}
|
||||
{{if .HasActiveTask}}<p class="hint">这条明细已有未结束采购任务,请到“采集采购”页面查看,不要重复创建。</p>{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
{{end}}
|
||||
</div>
|
||||
|
||||
@@ -21,13 +21,7 @@
|
||||
|
||||
<button type="button" data-modal-open="sync-history-modal">同步记录</button>
|
||||
|
||||
<form class="inline" method="post" action="/syb/create-task">
|
||||
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
|
||||
<input type="hidden" name="order_no" value="{{.Keyword}}">
|
||||
<input type="hidden" name="stage" value="{{.StageFilter}}">
|
||||
<input type="hidden" name="page" value="{{.CurrentPage}}">
|
||||
<button type="submit" data-need-checked>创建采购任务</button>
|
||||
</form>
|
||||
<button type="button" data-need-checked data-modal-open="purchase-modal" data-purchase-open>创建采购任务</button>
|
||||
|
||||
<form class="inline grow" method="get" action="/syb">
|
||||
<label for="stage">处理阶段</label>
|
||||
@@ -110,7 +104,7 @@
|
||||
{{range .Rows}}
|
||||
<tr data-detail-id="{{.SybID}}" {{if .NeedsAttention}}class="row-warn"{{end}}>
|
||||
<td class="col-check">
|
||||
<input type="checkbox" value="{{.SybID}}" name="ids"
|
||||
<input type="checkbox" value="{{.SybID}}" name="ids" {{if not .CanPurchase}}disabled{{end}}
|
||||
aria-label="选择货运单明细 {{.SybID}}">
|
||||
</td>
|
||||
<td>{{.SybID}}</td>
|
||||
@@ -145,6 +139,47 @@
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="modal-backdrop" id="purchase-modal" hidden>
|
||||
<div class="modal modal-wide" role="dialog" aria-modal="true" aria-labelledby="purchase-modal-title">
|
||||
<div class="modal-head">
|
||||
<h2 id="purchase-modal-title">确认创建采购任务</h2>
|
||||
<button type="button" class="modal-x" data-modal-close aria-label="关闭">×</button>
|
||||
</div>
|
||||
<form method="post" action="/syb/create-task" data-purchase-form
|
||||
data-confirm-submit="确认按下面的人民币价格上限创建采购任务?任务创建后将等待所选客户端领取。">
|
||||
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
|
||||
<input type="hidden" name="order_no" value="{{.Keyword}}">
|
||||
<input type="hidden" name="stage" value="{{.StageFilter}}">
|
||||
<input type="hidden" name="page" value="{{.CurrentPage}}">
|
||||
<div class="modal-body form-stack">
|
||||
<div class="field">
|
||||
<label for="purchase-client">执行客户端</label>
|
||||
<select id="purchase-client" name="client_id" required autofocus>
|
||||
<option value="">请选择当前账号可见的客户端</option>
|
||||
{{range .AssignableClients}}<option value="{{.ClientID}}">{{.Name}}({{.ClientID}},{{.Status}})</option>{{end}}
|
||||
</select>
|
||||
{{if not .AssignableClients}}<small class="missing">当前账号没有可用客户端,请先让管理员完成客户端绑定。</small>{{end}}
|
||||
</div>
|
||||
<p class="hint">价格上限单位是人民币元,默认取已映射 PDD 规格的采集价;不会使用顺运宝的台币售价。</p>
|
||||
{{range .Rows}}
|
||||
<div class="purchase-confirm-row" data-purchase-row="{{.SybID}}" hidden>
|
||||
<input type="hidden" name="ids" value="{{.SybID}}" disabled>
|
||||
<div><strong>{{.OrderNo}}</strong> · {{.Title}} · {{.ProductSpec}} × {{.Quantity}}</div>
|
||||
<label>人民币价格上限(元)
|
||||
<input type="number" name="max_price_yuan" min="0.01" step="0.01" value="{{.DefaultMaxPrice}}" required disabled>
|
||||
</label>
|
||||
</div>
|
||||
{{end}}
|
||||
<p class="missing" data-purchase-empty hidden>没有选择可采购的明细,请关闭后重新勾选。</p>
|
||||
</div>
|
||||
<div class="modal-foot">
|
||||
<button type="button" data-modal-close>取消</button>
|
||||
<button type="submit" class="primary" {{if not .AssignableClients}}disabled{{end}}>确认创建</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="hint">
|
||||
每行只显示当前最需要完成的下一步;双击行或点击“下一步”按钮可以打开处理详情。
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user