123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- 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 =
- '<div class="recl_info js_edit">' +
- '<div class="recl_box">' +
- '<div class="recl_mark">' + goodsItem.icon + '</div>' +
- '<div class="recl_tit">' + goodsItem.show_type_text + '</div>' +
- '<div class="recl_money">' + goodsItem.title + '</div>' +
- '<div class="recl_des">' +
- '<strong>' + goodsItem.first_description + '</strong>' +
- '<span>' + goodsItem.second_description + '</span>' +
- '</div></div><input type="hidden" name="row[goods_id][]" value="' + goodsItem.id + '"></div> ' +
- '<div class="recl_operate">' +
- '<span style="float: left;line-height: 30px;"><input type="radio" name="row[default]" value="'+goodsItem.id+'" '+checked+'>用户默认勾选</span>'+
- '<a href="javascript:;" class="btn btn-xs btn-danger btn-delone js_del" title=""' +
- 'data-table-id="table" data-field-index="4" data-row-index="0"' +
- 'data-button-index="2"><i class="fa fa-trash"></i></a>' +
- '<a href="javascript:;" class="btn btn-xs btn-success js_move" title=""' +
- 'data-table-id="table" data-field-index="4" data-row-index="0"' +
- 'data-button-index="2"><i class="fa fa-arrows"></i></a>' +
- '</div>';
- return htmlstr;
- }
- /**
- * 创建商品
- * @param goodsItem
- */
- function createGoodsItem(goodsItem) {
- htmlstr = formatGoodsItem(goodsItem);
- htmlstr = '<li class="js_goods_item" draggable="true">' + htmlstr + '</li>';
- $('.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;
- });
|