feat: 支持顺运宝批量创建采集任务 (#153)

This commit is contained in:
chengma
2026-08-11 14:59:26 +08:00
parent 2629e41211
commit b527204204
12 changed files with 341 additions and 14 deletions
+49 -3
View File
@@ -22,7 +22,18 @@
<button type="button" data-modal-open="sync-history-modal">同步记录</button>
<button type="button" data-need-checked data-modal-open="purchase-modal" data-purchase-open>创建采购任务</button>
<form id="syb-collect-form" method="post" action="/syb/collect-pdd-batch" hidden></form>
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}" form="syb-collect-form">
<input type="hidden" name="order_no" value="{{.Keyword}}" form="syb-collect-form">
<input type="hidden" name="shop" value="{{.ShopFilter}}" form="syb-collect-form">
<input type="hidden" name="stage" value="{{.StageFilter}}" form="syb-collect-form">
<input type="hidden" name="page" value="{{.CurrentPage}}" form="syb-collect-form">
<button type="button" data-modal-open="syb-collect-modal" data-collect-open
data-collect-form="syb-collect-form" data-collect-action="collect"
data-need-checked="collect">创建 PDD 采集任务</button>
<button type="button" data-need-checked="purchase" data-modal-open="purchase-modal"
data-purchase-open>创建采购任务</button>
<form class="inline grow" method="get" action="/syb">
<label for="stage">处理阶段</label>
@@ -109,8 +120,13 @@
{{range .Rows}}
<tr {{if .NeedsAttention}}class="row-warn"{{end}}>
<td class="col-check">
<input type="checkbox" value="{{.SybID}}" name="ids" {{if not .CanPurchase}}disabled{{end}}
aria-label="选择货运单明细 {{.SybID}}">
<span title="{{.SelectionHint}}">
<input type="checkbox" value="{{.SybID}}" name="ids"
data-select-action="{{if .CanCollect}}collect{{else if .CanPurchase}}purchase{{end}}"
{{if .CanCollect}}form="syb-collect-form"{{end}}
{{if not (or .CanCollect .CanPurchase)}}disabled{{end}}
aria-label="选择货运单明细 {{.SybID}}:{{.SelectionHint}}">
</span>
</td>
<td>{{.SybID}}</td>
<td>{{.OrderNo}}</td>
@@ -163,6 +179,36 @@
</table>
</div>
<div class="modal-backdrop" id="syb-collect-modal" hidden>
<div class="modal" role="dialog" aria-modal="true" aria-labelledby="syb-collect-modal-title">
<div class="modal-head">
<h2 id="syb-collect-modal-title">创建 PDD 采集任务</h2>
<button type="button" class="modal-x" data-modal-close aria-label="关闭">×</button>
</div>
<div class="modal-body">
<p>将处理已选择的 <strong data-collect-count>0</strong> 条可采集货运单明细。</p>
<div class="field">
<label for="syb-collect-client">执行客户端</label>
<select id="syb-collect-client" name="client_id" form="syb-collect-form" autofocus>
<option value="">不指定(任意客户端可领取)</option>
{{range .AssignableClients}}
<option value="{{.ClientID}}">{{.Name}}({{.ClientID}},{{.Status}})</option>
{{end}}
</select>
</div>
<p class="hint">
同一 PDD 商品关联多条货运单时只创建一条任务。通常保持不指定即可;
指定后任务只等待该客户端领取。
</p>
</div>
<div class="modal-foot">
<button type="button" data-modal-close>取消</button>
<button type="submit" form="syb-collect-form" class="primary"
data-collect-submit>确认创建</button>
</div>
</div>
</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">