feat: 支持蝦皮批量创建 PDD 采集任务 (#185)

This commit is contained in:
chengma
2026-08-12 16:12:35 +08:00
parent 250998b7b9
commit 07ca1b0afb
10 changed files with 280 additions and 26 deletions
+37 -1
View File
@@ -4,6 +4,16 @@
{{/* ── 第一段:顶部工具条 ────────────────────────────── */}}
<div class="toolbar">
{{if .CurrentUser.IsAdmin}}<a class="button" href="/integrations/catalog">导入记录</a>{{end}}
<form id="shopee-collect-form" method="post" action="/shopee/collect-batch" hidden></form>
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}" form="shopee-collect-form">
<input type="hidden" name="list_goods_id" value="{{.Keyword}}" form="shopee-collect-form">
<input type="hidden" name="list_shop_name" value="{{.ShopNameKeyword}}" form="shopee-collect-form">
<input type="hidden" name="status" value="{{.StatusFilter}}" form="shopee-collect-form">
<input type="hidden" name="shop" value="{{.ShopFilter}}" form="shopee-collect-form">
<input type="hidden" name="image" value="{{.ImageFilter}}" form="shopee-collect-form">
<input type="hidden" name="page" value="{{.CurrentPage}}" form="shopee-collect-form">
<button type="button" data-modal-open="shopee-collect-modal" data-collect-open
data-collect-form="shopee-collect-form" data-need-checked>创建 PDD 采集任务</button>
<form class="inline grow" method="get" action="/shopee">
{{/* 状态筛选是刚需(找待补规格 / 找没填链接的),不是锦上添花,
见 docs/admin/05-ui-specification.md §4.1、工单 #43。
@@ -77,7 +87,7 @@
<tbody>
{{range .Rows}}
<tr data-detail-id="{{.GoodsID}}"{{if gt .PendingCount 0}} class="row-warn"{{end}}>
<td class="col-check"><input type="checkbox" name="ids" value="{{.GoodsID}}"></td>
<td class="col-check"><input type="checkbox" name="ids" value="{{.GoodsID}}" form="shopee-collect-form"></td>
<td>{{.GoodsID}}</td>
<td>{{if .ImageURL}}<button type="button" class="thumb-action" data-image-preview-url="{{.ImageURL}}" data-image-preview-title="{{.Title}}" title="查看蝦皮主图"><img src="{{.ImageURL}}" alt="{{.Title}} 缩略图" class="thumb" width="32" height="32" loading="lazy" referrerpolicy="no-referrer" data-image-thumb><span class="thumb-fallback" hidden data-image-thumb-fallback>加载失败</span></button>{{else}}<span class="thumb-placeholder">无图</span>{{end}}</td>
{{/* 商品名称列收窄,用独立的 .col-title 类设 max-width(具体数值见 app.css),
@@ -111,6 +121,32 @@
</table>
</div>
<div class="modal-backdrop" id="shopee-collect-modal" hidden>
<div class="modal" role="dialog" aria-modal="true" aria-labelledby="shopee-collect-modal-title">
<div class="modal-head">
<h2 id="shopee-collect-modal-title">创建 PDD 采集任务</h2>
<button type="button" class="modal-x" data-modal-close aria-label="关闭">×</button>
</div>
<div class="modal-body">
<p>将按当前 PDD 关联处理已选择的 <strong data-collect-count>0</strong> 个蝦皮商品。</p>
<div class="field">
<label for="shopee-collect-client">执行客户端</label>
<select id="shopee-collect-client" name="client_id" form="shopee-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="shopee-collect-form" class="primary" data-collect-submit>确认创建</button>
</div>
</div>
</div>
<div class="modal-backdrop" id="image-preview-modal" hidden><div class="modal image-preview-modal" role="dialog" aria-modal="true" aria-labelledby="image-preview-title"><div class="modal-head"><h2 id="image-preview-title" data-image-preview-title>蝦皮商品主图</h2><button type="button" class="modal-x" data-modal-close aria-label="关闭">×</button></div><div class="modal-body image-preview-body"><p class="hint image-preview-status" data-image-preview-status role="status">正在加载原图…</p><img data-image-preview-image alt="" hidden></div><div class="modal-foot"><a class="button-link" data-image-preview-link href="#" target="_blank" rel="noopener noreferrer">新窗口打开原图</a><button type="button" data-modal-close>关闭</button></div></div></div>
<p class="hint">