define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) { var Controller = { index: function () { // 初始化表格参数 Table.api.init({ extend: { index_url: 'lottery/lotteryprize/index' + location.search, add_url: 'lottery/lotteryprize/add', edit_url: 'lottery/lotteryprize/edit', del_url: 'lottery/lotteryprize/del', multi_url: 'lottery/lotteryprize/multi', import_url: 'lottery/lotteryprize/import', table: 'shop_lottery_prize', } }); var table = $("#table"); // 初始化表格 table.bootstrapTable({ url: $.fn.bootstrapTable.defaults.extend.index_url, pk: 'id', sortName: 'sort_order', sortOrder: 'desc', fixedColumns: true, fixedRightNumber: 1, columns: [ [ {checkbox: true}, {field: 'id', title: __('Id'), operate: false}, {field: 'activity.name', title: __('活动名称'), operate: 'LIKE'}, {field: 'name', title: __('奖品名称'), operate: 'LIKE'}, {field: 'type', title: __('奖品类型'), searchList: {"1":"未中奖","2":"实物奖品","3":"优惠券","4":"红包","5":"兑换码","6":"商城奖品"}, formatter: Table.api.formatter.normal}, {field: 'image', title: __('奖品图片'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image}, {field: 'probability', title: __('中奖概率(%)'), operate: false}, {field: 'total_stock', title: __('总库存'), operate: false}, {field: 'remain_stock', title: __('剩余库存'), operate: false}, {field: 'win_count', title: __('已中奖'), operate: false}, {field: 'sort_order', title: __('排序'), operate: false}, {field: 'deliver_type', title: __('发放方式'), searchList: {"1":"自动发放","2":"手动发放"}, formatter: Table.api.formatter.normal}, {field: 'status', title: __('状态'), searchList: {"0":"禁用","1":"启用"}, formatter: Table.api.formatter.status}, {field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, buttons: [ { name: 'importCodes', title: __('导入兑换码'), classname: 'btn btn-xs btn-success btn-magic btn-ajax', icon: 'fa fa-upload', url: 'lottery/lotteryprize/importCodes', visible: function (row) { return row.type == '5'; // 只有兑换码类型才显示 } }, { name: 'addStock', title: __('补充库存'), classname: 'btn btn-xs btn-info btn-magic btn-ajax', icon: 'fa fa-plus', url: 'lottery/lotteryprize/addStock', visible: function (row) { return row.type != '1'; // 未中奖类型不显示 } } ], formatter: Table.api.formatter.operate } ] ] }); // 为表格绑定事件 Table.api.bindevent(table); }, add: function () { Controller.api.bindevent(); }, edit: function () { Controller.api.bindevent(); }, importCodes: function () { Controller.api.bindevent(); }, addStock: function () { Controller.api.bindevent(); }, api: { bindevent: function () { Form.api.bindevent($("form[role=form]")); // 奖品类型变化时的处理 $(document).on('change', 'input[name="row[type]"]', function(){ var type = $(this).val(); $('.prize-config-group').hide(); switch(type) { case '2': // 实物奖品 $('.goods-config-group').show(); break; case '3': // 优惠券 $('.coupon-config-group').show(); break; case '4': // 红包 $('.amount-config-group').show(); break; case '5': // 兑换码 $('.exchange-codes-group').show(); break; case '6': // 商城奖品 $('.shop-goods-config-group').show(); break; } }); // 发放方式变化时的处理 $(document).on('change', 'input[name="row[deliver_type]"]', function(){ var deliver_type = $(this).val(); if(deliver_type == '2') { layer.msg('手动发放需要在中奖记录中手动操作发放'); } }); // 概率输入验证 $(document).on('blur', 'input[name="row[probability]"]', function(){ var probability = parseFloat($(this).val()); if(probability < 0 || probability > 100) { layer.msg('中奖概率必须在0-100之间'); $(this).focus(); return false; } }); // 库存数量变化时同步剩余库存 $(document).on('blur', 'input[name="row[total_stock]"]', function(){ var total_stock = parseInt($(this).val()); var win_count = parseInt($('input[name="row[win_count]"]').val()) || 0; $('input[name="row[remain_stock]"]').val(total_stock - win_count); }); } } }; return Controller; });