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