define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'shop/comment/index' + location.search,
add_url: 'shop/comment/add',
edit_url: 'shop/comment/edit',
del_url: 'shop/comment/del',
multi_url: 'shop/comment/multi',
import_url: 'shop/comment/import',
table: 'shop_comment',
}
});
var table = $("#table");
// 绑定评价状态tab事件
$('.panel-heading .nav-tabs[data-field="evaluate_status"] a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var value = $(this).data("value");
var options = table.bootstrapTable('getOptions');
var queryParams = options.queryParams;
options.pageNumber = 1;
options.queryParams = function (params) {
if (value) {
params.filter = JSON.stringify({evaluate_status: value});
params.op = JSON.stringify({evaluate_status: '='});
}
params = queryParams.call(this, params);
return params;
};
table.bootstrapTable('refresh', {});
return false;
});
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'id',
fixedColumns: true,
fixedRightNumber: 1,
columns: [
[
{checkbox: true},
{field: 'id', title: __('Id')},
{field: 'user_id', title: __('User_id'), formatter: Table.api.formatter.search,visible: false},
{
field: 'user.username',
title: __('User_id'),
operate: 'LIKE',
formatter: function (value, row, index) {
// 显示用户头像和用户名
console.log(row);
var avatar = row.user && row.user.avatar ? row.user.avatar : '/assets/img/avatar.png';
var username = row.user && row.user.username ? row.user.username : '游客';
return '
' +
'

' +
'
' + username + '' +
'
';
}
},
{field: 'order_id', title: __('Order_id')},
// {field: 'pid', title: __('Pid')},
{field: 'goods.title', title: __('Goods')},
{field: 'star', title: __('Star')},
{field: 'content', title: __('Content'), formatter: Controller.api.content},
{field: 'images', title: __('Images'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.images},
// {field: 'subscribe', title: __('Subscribe')},
{field: 'createtime', title: __('Createtime'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false, formatter: Table.api.formatter.datetime},
{field: 'updatetime', title: __('Updatetime'), operate: 'RANGE', addclass: 'datetimerange', autocomplete: false, formatter: Table.api.formatter.datetime, visible: false},
{field: 'status', title: __('Status'), searchList: Controller.api.parseConfigJson('statusSearchList'), formatter: Table.api.formatter.status},
{
field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate,
buttons: [
{
name: '审核通过',
title: '审核通过',
classname: 'btn btn-xs btn-success btn-ajax',
text: '审核通过',
icon: 'fa fa-check',
url: 'shop/comment/audit/evaluate_status/2',
visible: function (row) {
//返回true时按钮显示,返回false隐藏
return row.evaluate_status == 1;
},
confirm: '确认审核通过吗',
success: function (data, ret) {
Layer.alert(ret.msg + ",返回数据:" + JSON.stringify(data));
//如果需要阻止成功提示,则必须使用return false;
//return false;
},
error: function (data, ret) {
console.log(data, ret);
Layer.alert(ret.msg);
return false;
}
},
{
name: '审核拒绝',
title: '审核拒绝',
classname: 'btn btn-xs btn-danger btn-ajax',
text: '审核拒绝',
icon: 'fa fa-close',
url: 'shop/comment/audit/evaluate_status/3',
visible: function (row) {
//返回true时按钮显示,返回false隐藏
return row.evaluate_status == 1;
},
confirm: '确认审核拒绝吗',
success: function (data, ret) {
Layer.alert(ret.msg + ",返回数据:" + JSON.stringify(data));
//如果需要阻止成功提示,则必须使用return false;
//return false;
},
error: function (data, ret) {
console.log(data, ret);
Layer.alert(ret.msg);
return false;
}
},
// {
// name: '回复',
// title: function (row) {
// return '回复(' + (row.user ? row.user.nickname : '未知') + ')';
// },
// classname: 'btn btn-xs btn-primary btn-dialog',
// text: function (row) {
// return '回复(' + row.comments + ')';
// },
// icon: 'fa fa-comment',
// url: 'shop/comment/reply/pid/{id}'
// }
]
}
]
]
});
// 为表格绑定事件
Table.api.bindevent(table);
},
add: function () {
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
},
reply: function () {
let refresh = function () {
window.location.reload();
parent.$("#table").bootstrapTable('refresh', {});
}
$(document).on('click', '.btn-reply', function () {
Form.api.submit($("form[role=form]"));
setTimeout(refresh, 1500)
})
$('.btn-delone').data('success', refresh)
$('.btn-dialog').data('end', refresh)
Controller.api.bindevent();
},
api: {
// 解析Config中的JSON字符串的辅助函数
parseConfigJson: function(configKey, defaultValue) {
var configValue = Config[configKey] || defaultValue || {};
// 如果是字符串,尝试解析JSON
if (typeof configValue === 'string') {
try {
return JSON.parse(configValue);
} catch (e) {
return defaultValue || {};
}
}
return configValue;
},
bindevent: function () {
Form.api.bindevent($("form[role=form]"));
},
content: function (value, row, index) {
var width = this.width != undefined ? (this.width.match(/^\d+$/) ? this.width + "px" : this.width) : "250px";
return "" + value + "
";
}
}
};
return Controller;
});