# 奖品商品模板修改说明 ## 修改背景 原系统中奖品商品选择存在两个模板: - `selected-goods-template`:简单的商品显示模板(小图片 + 名称 + 删除按钮) - `prize-goods-template`:详细的商品显示模板(完整商品信息) 为了统一界面和提升用户体验,删除了简单的`selected-goods-template`,统一使用详细的`prize-goods-template`。 ## 主要修改内容 ### 1. 删除模板 **删除的模板**:`selected-goods-template` ```html ``` ### 2. 统一使用模板 **现在使用的模板**:`prize-goods-template` 显示的商品信息包括: - 商品图片(50x50px) - 商品类型标签(红色标签) - 商品名称 - 价格(红色高亮) - 规格类型(蓝色/橙色标签) - 详细信息(编码、分类、类型) ### 3. JavaScript修改 **修改的函数**:`openGoodsSelector` **修改前**: ```javascript // 使用简单模板 var html = Template('selected-goods-template', { image: imageUrl, name: goods.name, id: goods.id }); ``` **修改后**: ```javascript // 使用详细模板 var processedGoods = { id: goods.id, name: goods.name || goods.title, title: goods.title || goods.name, image: goods.image ? Fast.api.cdnurl(goods.image) : '', price: goods.price || goods.sellprice || '', goods_sn: goods.goods_sn || '', spec_type: goods.spec_type, category: goods.category, type_name: Controller.api.getGoodsTypeName(goods), type_text: Controller.api.getGoodsTypeText(goods) }; var html = Template('prize-goods-template', processedGoods); ``` ### 4. 表单字段统一 - 确保模板中的隐藏字段名称为`goods_id`(与奖品表单一致) - 删除事件绑定到`.remove-prize-goods`类 ### 5. 清理冗余代码 - 移除了对已删除模板的事件绑定代码 - 简化了`updateSelectedGoods`函数中的其他模板处理逻辑 ## 优势 1. **界面一致性**:奖品商品显示与任务商品显示保持相同的详细程度 2. **信息完整性**:用户可以看到完整的商品信息,便于选择确认 3. **代码简化**:减少重复模板,便于维护 4. **用户体验**:统一的视觉风格,更专业的界面 ## 涉及文件 - `application/admin/view/lottery/activity/scripttpl.html` - 删除了`selected-goods-template`模板 - 修正了`prize-goods-template`中的表单字段名称 - `public/assets/js/backend/lottery/activity.js` - 修改了`openGoodsSelector`函数使用`prize-goods-template` - 增强了商品数据处理逻辑 - 清理了对已删除模板的引用 ## 兼容性 - 保持了原有的表单字段名称`goods_id` - 保持了原有的删除功能 - 不影响奖品保存和验证逻辑 - 向下兼容所有现有功能