奖品商品模板修改说明.md 3.3 KB

奖品商品模板修改说明

修改背景

原系统中奖品商品选择存在两个模板:

  • selected-goods-template:简单的商品显示模板(小图片 + 名称 + 删除按钮)
  • prize-goods-template:详细的商品显示模板(完整商品信息)

为了统一界面和提升用户体验,删除了简单的selected-goods-template,统一使用详细的prize-goods-template

主要修改内容

1. 删除模板

删除的模板selected-goods-template

<!-- 已删除的模板 -->
<script type="text/html" id="selected-goods-template">
<div class="selected-goods-item" style="padding: 8px; border: 1px solid #ddd; border-radius: 4px; background: #f9f9f9;">
    <img src="<%=image%>" style="width: 30px; height: 30px; vertical-align: middle; margin-right: 8px;">
    <span><%=name%></span>
    <input type="hidden" name="goods_id" value="<%=id%>">
    <button type="button" class="btn btn-xs btn-default pull-right" onclick="$(this).closest('.selected-goods-item').remove();">删除</button>
</div>
</script>

2. 统一使用模板

现在使用的模板prize-goods-template

显示的商品信息包括:

  • 商品图片(50x50px)
  • 商品类型标签(红色标签)
  • 商品名称
  • 价格(红色高亮)
  • 规格类型(蓝色/橙色标签)
  • 详细信息(编码、分类、类型)

3. JavaScript修改

修改的函数openGoodsSelector

修改前

// 使用简单模板
var html = Template('selected-goods-template', {
    image: imageUrl,
    name: goods.name,
    id: goods.id
});

修改后

// 使用详细模板
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
  • 保持了原有的删除功能
  • 不影响奖品保存和验证逻辑
  • 向下兼容所有现有功能