define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var max_goods_count = 6; $(document).on('click', '.js_add_goods', function () { selectedIds = getSelectedIds(); if (selectedIds.length >= max_goods_count) { Layer.alert('最多可以选择' + max_goods_count + '个商品'); return false; } _goodsSelectUrl = getGoodsSelectUrl(); Fast.api.open(_goodsSelectUrl, '选择商品', { callback: function (data) { createGoodsItem(data[0]); } }) }); $(document).on('click', '.js_edit', function () { $editBtn = $(this); _goodsSelectUrl = getGoodsSelectUrl(); Fast.api.open(_goodsSelectUrl, '选择商品', { callback: function (data) { var goodsItem = data[0]; htmlstr = formatGoodsItem(goodsItem); $editBtn.parents('.js_goods_item').html(htmlstr); } }) }); $(document).on('click', '.js_del', function () { $delBtn = $(this); layer.confirm('您确认移除商品吗?', {title: "移除商品"}, function (index) { layer.close(index); $delBtn.parents('.js_goods_item').remove(); }); }); /** * 获取已选中的商品id * @returns {Array} */ function getSelectedIds() { formValueList = $('form').serializeArray(); selectedIds = []; for (var i = 0; i < formValueList.length; i++) { var item = formValueList[i]; if (item.name == 'row[goods_id][]') { selectedIds.push(item.value); } } return selectedIds; } /** * 获取商品选择框的加载列表的API地址 * @returns {string} */ function getGoodsSelectUrl() { selectedIds = getSelectedIds(); goodsSelectUrl = 'goods/select?business_line=' + Config.business_line; if (selectedIds.length > 0) { goodsSelectUrl += '&selected_ids=' + selectedIds.join('_'); } return goodsSelectUrl; } /** * 初始化商品列表 * @param list */ function initGoodsList(list) { for (i = 0; i < list.length; i++) { if (Config.business_line == list[i].business_line) { createGoodsItem(list[i]); } } } /** * 格式化商品单元格 * @param goodsItem 商品对象 * @returns {string} */ function formatGoodsItem(goodsItem) { var checked = goodsItem.default == '1' ? 'checked' : ''; var htmlstr = '
' + '
' + '
' + goodsItem.icon + '
' + '
' + goodsItem.show_type_text + '
' + '
' + goodsItem.title + '
' + '
' + '' + goodsItem.first_description + '' + '' + goodsItem.second_description + '' + '
' + '
' + '用户默认勾选'+ '' + '' + '
'; return htmlstr; } /** * 创建商品 * @param goodsItem */ function createGoodsItem(goodsItem) { htmlstr = formatGoodsItem(goodsItem); htmlstr = '
  • ' + htmlstr + '
  • '; $('.js_add_goods_item').before(htmlstr); } $(document).delegate('.js_move', 'click', function () { $(this).closest('.js_goods_item').addClass('js_goods_border'); if ($('.js_goods_border').length == 2) { var list = $('.js_goods_item').toArray(); var from = $('.js_goods_border').eq(0).index(); var to = $('.js_goods_border').eq(1).index(); var vfrom = list[from] var vto = list[to] list.splice(from,1,vto); list.splice(to,1,vfrom); $('.js_goods_list').html(list); $('.js_goods_border').removeClass('js_goods_border'); } }) customGoodsListStr = Config.customGoodsList; customGoodsList = JSON.parse(customGoodsListStr); initGoodsList(customGoodsList); var Controller = { index: function () { } }; return Controller; });