feat(web+api): 贡献表单按 archive_kind 动态生成字段
- categories 接口返回 archive_kind - 新增公开只读接口 /api/v1/kind-fields?kind=X 返回字段模板 - 投稿 payload 支持通用 attributes,审核通过写入 product.attributes (JSONB 合并) - food_detail 仅在含食品数据时才 upsert (药品/3C/通用不再产生空行) - 前端 Contribute 按所选品类 archive_kind 动态渲染字段 (食品营养 / 药品 18 字段 / 3C / 通用),除商品名外均选填 Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
@@ -51,6 +51,20 @@ export interface Category {
|
||||
name_en: string | null;
|
||||
path: string;
|
||||
level: number;
|
||||
archive_kind: string;
|
||||
}
|
||||
|
||||
export interface KindField {
|
||||
kind: string;
|
||||
field_key: string;
|
||||
group_label: string;
|
||||
label_zh: string;
|
||||
field_type: "text" | "number" | "textarea" | "select" | "list";
|
||||
unit: string | null;
|
||||
options: string[] | null;
|
||||
placeholder: string | null;
|
||||
sort_order: number;
|
||||
qualified: boolean;
|
||||
}
|
||||
|
||||
export interface SubmissionImage {
|
||||
@@ -68,6 +82,7 @@ export interface SubmissionInput {
|
||||
country_of_origin?: string | null;
|
||||
ingredients_text?: string | null;
|
||||
nutriments?: Record<string, number> | null;
|
||||
attributes?: Record<string, unknown> | null;
|
||||
nutrition_basis?: string | null;
|
||||
serving_size?: string | null;
|
||||
nutri_score?: string | null;
|
||||
|
||||
Reference in New Issue
Block a user