diff --git a/json/discount_marketing_list.json b/json/discount_marketing_list.json index 5e995fa..d587e75 100644 --- a/json/discount_marketing_list.json +++ b/json/discount_marketing_list.json @@ -50,6 +50,11 @@ "selected_row": true, "label": "产品明细", "icon": "{{entire_url('/bricks/imgs/list.svg')}}" + }, + { + "name": "gen_promo", + "selected_row": true, + "label": "生成促销码" } ] }, @@ -68,6 +73,20 @@ "options": { "url": "{{entire_url('../marketing_discount_setting')}}" } + }, + { + "wid": "self", + "event": "gen_promo", + "actiontype": "urlwidget", + "target": "PopupWindow", + "popup_options": { + "title": "生成促销码", + "cwidth": 16, + "cheight": 10 + }, + "options": { + "url": "{{entire_url('../api/gen_promo_from_mkt.dspy')}}?marketing_id=${id}$" + } } ], "new_data_url": "{{entire_url('/discount/api/marketing_create.dspy')}}", diff --git a/wwwroot/api/gen_promo_from_mkt.dspy b/wwwroot/api/gen_promo_from_mkt.dspy new file mode 100644 index 0000000..7d0280f --- /dev/null +++ b/wwwroot/api/gen_promo_from_mkt.dspy @@ -0,0 +1,17 @@ +# 从营销方案直接生成促销码(toolbar 工具按钮调用) +marketing_id = params_kw.get('marketing_id', '') +if not marketing_id: + return {"widgettype": "Error", "options": {"title": "操作失败", "message": "缺少方案ID", "cwidth": 16, "cheight": 9, "timeout": 3}} + +result = await generate_promo_code(request, {"marketing_id": marketing_id}) +if result.get("status") == "success": + return { + "widgettype": "Message", + "options": { + "title": "促销码已生成", + "message": "促销码: " + result["code"], + "type": "success", + "timeout": 5 + } + } +return {"widgettype": "Error", "options": {"title": "操作失败", "message": str(result.get("message", "")), "cwidth": 16, "cheight": 9, "timeout": 3}}