define(['jquery', 'table', 'form'], function($, Table, Form) { function formatStatus(val) { var map = {0:'未处理', 1:'处理中', 2:'已处理', 9:'无效'}; return map[val] || val; } function escapeAttr(value) { return String(value || '').replace(/&/g, '&').replace(/"/g, '"').replace(//g, '>'); } var Controller = { index: function() { Table.init = { table_elem: '#currentTable', table_render_id: 'currentTable' }; function getFilters() { return { keyword: $('#keyword').val(), feedback_type: $('#feedback_type').val(), lang: $('#lang').val(), status: $('#status').val(), ip: $('#ip').val(), source_page: $('#source_page').val(), createtime_start: $('#createtime_start').val(), createtime_end: $('#createtime_end').val() }; } Table.render({ init: Table.init, toolbar: ['refresh'], url: 'messagefeedback/index', cols: [[ {type:'checkbox', width:50}, {field:'id', width:80, title:'ID', sort:true}, {field:'feedback_type_text', width:110, title:'反馈类型'}, {field:'name', width:110, title:'姓名'}, {field:'phone', width:140, title:'电话'}, {field:'email', minWidth:180, title:'邮箱'}, {field:'content', minWidth:260, title:'反馈内容'}, {field:'lang', width:80, title:'语言'}, {field:'status', width:100, title:'状态', templet:function(d){ return formatStatus(parseInt(d.status, 10)); }}, {field:'admin_remark', minWidth:180, title:'备注'}, {field:'source_page', minWidth:220, title:'来源页面'}, {field:'privacy_agree', width:100, title:'隐私同意', templet:function(d){ return parseInt(d.privacy_agree,10) ? '已同意' : '未同意'; }}, {field:'ip', width:140, title:'提交IP'}, {field:'createtime', width:170, title:'提交时间', templet: Table.formatter.datetime}, {field:'operate', title:'操作', width:250, fixed:'right', templet:function(d){ return '' + '处理中' + '已处理' + '备注' + '无效'; }} ]], page: {} }); $('#searchBtn').on('click', function() { layui.table.reload('currentTable', { where: getFilters(), page: {curr: 1} }); }); $('#resetBtn').on('click', function() { $('#keyword,#feedback_type,#lang,#status,#ip,#source_page,#createtime_start,#createtime_end').val(''); layui.form.render('select'); layui.table.reload('currentTable', { where: {}, page: {curr: 1} }); }); $('#deleteBtn').on('click', function() { var rows = layui.table.checkStatus('currentTable').data || []; if (!rows.length) { layer.msg('请先勾选反馈记录'); return; } var ids = rows.map(function(i){ return i.id; }); layer.confirm('确认删除选中的 ' + ids.length + ' 条反馈记录吗?此操作不可恢复。', {icon:3,title:'警告'}, function(index) { $.post('messagefeedback/del', {ids: ids}, function(res) { layer.msg(res.msg || (res.code===1 ? '删除成功' : '删除失败')); if (res.code === 1) layui.table.reload('currentTable'); }, 'json').fail(function(){ layer.msg('删除请求失败'); }); layer.close(index); }); }); $(document).on('click', '[data-event="status"]', function() { $.post('messagefeedback/changeStatus', {id: $(this).data('id'), status: $(this).data('status')}, function(res) { layer.msg(res.msg || (res.code===1 ? '更新成功' : '更新失败')); if (res.code === 1) layui.table.reload('currentTable'); }, 'json').fail(function(){ layer.msg('状态更新失败'); }); }); $(document).on('click', '[data-event="remark"]', function() { var id = $(this).data('id'); var oldRemark = $(this).data('remark') || ''; layer.prompt({title:'填写处理备注', formType:2, value: oldRemark}, function(value, index) { $.post('messagefeedback/remark', {id: id, admin_remark: value}, function(res) { layer.msg(res.msg || (res.code===1 ? '保存成功' : '保存失败')); if (res.code === 1) layui.table.reload('currentTable'); }, 'json').fail(function(){ layer.msg('备注保存失败'); }); layer.close(index); }); }); Table.api.bindevent(); Form.api.bindevent($('form.layui-form')); } }; return Controller; });