123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- 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;
- });
|