选择商品后保存
<!DOCTYPE html> <html xmlns:margin-bottom="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title><%= trans.index.title %></title> <link rel="stylesheet" type="text/css" href="<%= locals.webdownload %>/js/jquery-easyui-1.5.5.7/themes/bootstrap/easyui.css"> <link rel="stylesheet" type="text/css" href="<%= locals.webdownload %>/js/jquery-easyui-1.5.5.7/themes/icon.css"> <script type="text/javascript" src="<%= locals.webdownload %>/js/jquery-easyui-1.5.5.7/jquery.min.js"></script> <script type="text/javascript" src="<%= locals.webdownload %>/js/jquery-easyui-1.5.5.7/jquery.easyui.min.js"></script> <script type="text/javascript" src="<%= locals.webdownload %>/js/common.js"></script> </head> <body> <div style="margin:5px;"> <input id="name" class="easyui-textbox" prompt="活动名称"> <a href="#" class="easyui-linkbutton" οnclick="doSearch()" iconcls="icon-search"><%= trans.common.select %></a> <a id="reset" href="#" οnclick="resetSearch()" class="easyui-linkbutton" data-options="iconCls:'icon-reload'"><%= trans.common.reset %></a> <div style="display: inline-block;color: #ff0000"> <%=trans.common.dbClickTip%></div> </div> <div id="tableActivity"> <table id="activity-list"> </table> </div> <div id="activity-dialog" style="display: none; "> <form id="activity-form" method="post"> <div style="margin:20px 50px; " > <div style="margin-bottom:10px"> <input class="easyui-textbox" name="name" missingMessage="该输入框为必填项" data-options="label:'活动名称:',required:true,width:500" /> </div> <div style="margin-bottom:10px"> <div style="width: 14%;float: left;"> <label>活动类型:</label> </div> <div style="width: 86%;float: left"> <div style="margin-bottom:10px"> <input class="easyui-radiobutton" name="type" value="1" data-options="label:'商品折扣',labelPosition:'after',labelWidth:70" checked/> <input class="easyui-numberbox" id="discount1" data-options="required:true,value:0,min:0.1,max:9.9,precision:1,width:100" /> 折 </div> <div style="margin-bottom:10px"> <input class="easyui-radiobutton" name="type" value="2" data-options="label:'第二杯',labelPosition:'after',labelWidth:70" /> <input class="easyui-numberbox" id="discount2" data-options="required:true,value:0,min:0.1,max:9.9,precision:1,width:100" /> 折 </div> <div style="margin-bottom:10px"> <input class="easyui-radiobutton" name="type" value="3" data-options="label:'新用户首杯',labelPosition:'after',labelWidth:90" /> <input class="easyui-numberbox" id="discount3" data-options="required:true,value:0.1,min:0.1,max:9.9,precision:1,width:100" /> 折(开发中) </div> </div> </div> <div style="margin-bottom:10px"> <input class="easyui-datebox" name="start_time" missingMessage="该输入框为必填项" data-options="label:'开始时间:',required:true,width:250,editable:false"> </div> <div style="margin-bottom:10px"> <input class="easyui-datebox" name="end_time" missingMessage="该输入框为必填项" data-options="label:'结束时间:',required:true,width:250,editable:false"> </div> <div style="margin-bottom:10px"> <div style="width: 14%;float: left;"> <label>可用商品:</label> </div> <div style="width: 86%;float: left"> <div style="margin-bottom:10px"> <input class="easyui-radiobutton" name="goods_id" value="0" data-options="label:'全部商品',labelPosition:'after'" checked /> </div> <div style="margin-bottom:10px"> <input class="easyui-radiobutton" id="goods" name="goods_id" value="1" data-options="label:'部分商品',labelPosition:'after'" /><a href="#" οnclick="showGoodsDialog()">选择商品</a> </div> </div> </div> <div style="margin-bottom:10px"> <input class="easyui-textbox" name="remark" missingMessage="该输入框为必填项" data-options="label:'备注:',required:true,multiline:true,width:500,height:200" /> </div> </div> </div> </form> </div> <div id="goods-dialog" style="display: none; "> <div id="goods-list"></div> </div> </body> <script type="text/javascript"> //日期格式 $.fn.datebox.defaults.formatter = function (date) { //显示格式: 2017-05-08 17:15:15 var year = date.getFullYear(); var month = date.getMonth() + 1; var day = date.getDate(); var hour = date.getHours(); var min = date.getMinutes(); var ss = date.getSeconds(); month = month < 10 ? '0' + month : month; day = day < 10 ? '0' + day : day; // hour =hour<10 ? '0'+hour :hour; // min = min<10? '0'+min:min; // ss = ss<10? '0'+ss:ss; return year + "-" + month + "-" + day; } $.fn.datebox.defaults.parser = function (date) { //重写formatter 必须 重写parser, 否则无论选择哪天, 日期均为当天日期 //xxxx-x-x if (!date) return new Date(); var array = date.split(" ");// 分成日期和时间两部分 var arrayDate = array[0].split("-"); var yearStr = arrayDate[0]; var monthStr = arrayDate[1]; var dayStr = arrayDate[2]; var year = parseInt(yearStr, 10); var month = parseInt(monthStr, 10); var day = parseInt(dayStr, 10); // var arrayTime = array[1].split(":"); // var hour = parseInt(arrayTime[0],10); // var min = parseInt(arrayTime[1],10); // var ss = parseInt(arrayTime[2],10); if (!isNaN(year) && !isNaN(month) && !isNaN(day)) { return new Date(year, month - 1, day); } else { return new Date(); } } //活动编号 let activityId = null; //活动商品(部分商品) let goodsId = null; function doSearch() { $('#activity-list').datagrid('load', { name: $('#name').val().replace(/(^\s*)|(\s*$)/g, "") }); } //重置 function resetSearch() { $('#name').textbox("reset"); } function init() { $('#goods-list').datagrid({ url: '/mall/goods/list?clang=<%= lang %>', method: 'get', idField:'id', columns: [[ {field: 'id', title: 'ID', width: 100, align: 'center', checkbox: true}, {field: 'name', title: '<%= trans.goods.name %>', align: 'center', width: 150}, {field: 'typename', title: '<%= trans.goods.bigType %>', align: 'center', width: 150}, {field:'price',title:'<%= trans.goods.price %>', align:'center',width:150}, { field: 'url', title: '<%= trans.goods.pic %>', align: 'center', width: 150, formatter: function (value, row, index) { return '<img style="width: 100px;height: 100px" src="<%= locals.download %>/' + row.operator + '/goods/' + value + '">'; } }, {field:'activityName',title:'所属活动', align:'center',width:150} ]], fitColumns: false, fit: true }); $('#goods-dialog').dialog({ modal: true, top: 50, left: 200, width: 800, height:800, iconCls: 'icon-good', title: '<%= trans.ui.goods %>', closed: true, buttons: [{ text: '确认', iconCls: 'icon-ok', handler: function () { $('#goods-dialog').dialog('close'); } }, { text: '关闭', iconCls: 'icon-cancel', handler: function () { $('#goods-dialog').dialog('close'); } }] }) $('#activity-dialog').dialog({ modal: true, top: 10, left: 100, width: 700, height:700, iconCls: 'icon-save', title: '<%= trans.common.add %>', closed: true, buttons: [{ text: '<%= trans.common.save %>', iconCls: 'icon-ok', handler: function () { saveActivity(); } }, { text: '<%= trans.common.cancel %>', iconCls: 'icon-cancel', handler: function () { $('#activity-dialog').dialog('close'); } }] }) //初始商品维护商品信息 $('#activity-list').datagrid({ url: '/mall/activity/list', method: 'get', columns: [[ {field: 'id', title: 'ID', width: 100, align: 'center', checkbox: true}, {field: 'name', title: '活动名称', align: 'center', width: 180}, {field:'start_time',title:'活动开始时间', align:'center',width:200}, {field:'end_time',title:'活动结束时间', align:'center',width:200}, { field: 'type', title: '活动类型', align: 'center', width: 150, formatter: function (value, row, index) { switch (value) { case '1': return '折扣'; case '2': return '第二杯N折'; case '3': return '新用户首杯N折'; default: break; } } }, {field:'rule',title:'活动规则', align:'center',width:150, formatter: function (value, row, index) { switch (row.type) { case '1': return value*10+'折'; case '2': return value*10+'折'; case '3': return value*10+'折'; default: break; } } }, {field: 'operator', title: '<%= trans.sys.operate %>', align: 'center', width: 150}, { field: 'auditState', title: '审核状态', align: 'center', width: 150, formatter: function (value, row, index) { if(row.audit==0){ return '未审核'; }else if(row.audit==1){ return '审核中'; }else if(row.audit==2){ return '已审核'; }else if(row.audit==3){ return '已驳回'; } } }, { field: 'status', title: '<%= trans.sys.operation %>', align: 'center', width: 150, formatter: function (value, row, index) { if(row.audit==0 || row.audit==3){ return '<a href="#" onClick="audit(\''+ row.id +'\')">送审</a>'; }else if(row.audit==1){ return ''; }else if(row.enable==0){ return '<a href="#" onClick="able(\''+ row.id +'\',\''+row.end_time +'\',\''+row.goods_id+'\')">上线</a>'; }else if(row.enable==1) { return '<a href="#" onClick="disable(\''+ row.id +'\')">下线</a>'; }else { return '已过期' } } } ]], fitColumns: false, pagination: true, pageSize: 20, pageList: [20, 40, 60], fit: true, onDblClickRow:function (index,row) { activityId = row.id; goodsId = row.goods_id; $.ajax({ url: "/mall/activity/detail?activityId="+row.id, type: "get", success: function (data) { let out = data.data; $('#activity-form').form('load',out); switch (out.type) { case '1': //全场折扣 $('#discount1').numberbox('setValue',out.rule*10); break; case '2': //第二杯N折 $('#discount2').numberbox('setValue',out.rule*10); break; case '3': $('#discount3').numberbox('setValue',out.rule*10); break; default: break; } if(out.goods_id!=0){ $('#goods').radiobutton('check'); } $('#activity-dialog').dialog('open'); }, error: function (out) { $.messager.alert('', out.text); } }) }, toolbar: [{ iconCls: 'icon-add', text: '<%= trans.common.add %>', handler: function () { activityId = null; $('#activity-form').form('reset'); $('#activity-dialog').dialog('open'); } }, '-', { iconCls: 'icon-remove', text: '<%= trans.common.del %>', handler: function () { let rows = $('#activity-list').datagrid('getSelections'); if (rows.length < 1) { $.messager.alert('', '<%= trans.common.selectOne %>'); } else { $.messager.confirm("<%= trans.common.confirm %>", "<%= trans.common.confirmQ %>", function (isDelete) { if (isDelete) { let array = ''; for (let i = 0; i < rows.length; i++) { array += rows[i].id +','; } delCoupon(array.substring(0,array.length-1)); } }) } } }, '-', { iconCls: 'icon-ok', text: '一键送审', handler: function () { let rows = $('#activity-list').datagrid('getSelections'); if (rows.length < 1) { $.messager.alert('', '<%= trans.common.selectOne %>'); } else { $.messager.confirm("<%= trans.common.confirm %>", "确认一键送审", function (couponall) { if (couponall) { let array1 = ''; for (let i = 0; i < rows.length; i++) { array1 += rows[i].id +','; } sendactivityall(array1.substring(0,array1.length-1)); } }) } } } ] }); } $(document).ready(function () { $('#tableActivity').css('width', $(window).width() - 15) $('#tableActivity').css('height', $(window).height() - 51) init(); }); function saveActivity() { let url = '/mall/activity/add'; if (activityId) { url = '/mall/activity/mod'; } $('#activity-form').form('submit', { url: url, onSubmit: function (param) { let pass = $('#activity-form').form('validate'); if (!pass) { return false; } param.activityId = activityId; let json = $('#activity-form').serializeArray(); $.each(json, function(i, field){ // $("#results").append(field.name + ":" + field.value + " "); if(field.name=='type'){ //活动类型 switch (field.value) { case '1': param.rule = $('#discount1').numberbox('getValue')/10; break; case '2': param.rule = $('#discount2').numberbox('getValue')/10; break; case '3': param.rule = $('#discount3').numberbox('getValue')/10; break; default: break; } }else if(field.name=='goods_id'){ //可用商品 if(field.value==0){ //全部商品 param.goodsArr = 0; }else if(field.value==1){ //部分商品 let rows = $('#goods-list').datagrid('getSelections'); if(rows.length==0){ $.messager.alert('','请选择商品'); return false; }else { let ids = ''; for (let i = 0; i < rows.length; i++) { ids+=rows[i].id+','; } param.goodsArr = ids.substring(0,ids.length-1); } } } }); }, success: function (data) { data = JSON.parse(data); if (data.code == 1) { $.messager.alert('', 'success', 'info', function () { $('#activity-dialog').dialog('close'); $('#activity-list').datagrid('reload'); }) } else { $.messager.alert('', data.text); $('#activity-list').datagrid('reload'); } } }); } //显示弹窗 function showGoodsDialog() { $('#goods-list').datagrid('uncheckAll'); if(goodsId!=null && goodsId!=0 && $('#goods').radiobutton('options').checked){ let ids = goodsId.split(','); for (let i = 0; i < ids.length; i++) { let rowIndex = $('#goods-list').datagrid('getRowIndex',ids[i]); $('#goods-list').datagrid('checkRow',rowIndex); } } $('#goods-dialog').dialog('open'); } </script> </html>