|
@@ -17,6 +17,24 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
|
|
|
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,
|
|
@@ -28,8 +46,23 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
[
|
|
|
{checkbox: true},
|
|
|
{field: 'id', title: __('Id')},
|
|
|
- {field: 'user_id', title: __('User_id'), formatter: Table.api.formatter.search},
|
|
|
- {field: 'user.nickname', title: __('Nickname')},
|
|
|
+ {field: 'user_id', title: __('会员信息'), 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 '<div style="display:flex;align-items:center;">' +
|
|
|
+ '<img src="' + avatar + '" style="width:40px;height:40px;border-radius:50%;margin-right:10px;" />' +
|
|
|
+ '<span style="color:#a55bff;">' + username + '</span>' +
|
|
|
+ '</div>';
|
|
|
+ }
|
|
|
+ },
|
|
|
{field: 'order_id', title: __('Order_id')},
|
|
|
// {field: 'pid', title: __('Pid')},
|
|
|
{field: 'goods.title', title: __('Goods')},
|
|
@@ -39,20 +72,65 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
// {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: {"normal": __('Normal'), "hidden": __('Hidden')}, formatter: Table.api.formatter.status},
|
|
|
+ {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: function (row) {
|
|
|
- return '回复(' + (row.user ? row.user.nickname : '未知') + ')';
|
|
|
+ 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) {
|
|
|
+ table.bootstrapTable('refresh'); //自动刷新
|
|
|
},
|
|
|
- classname: 'btn btn-xs btn-primary btn-dialog',
|
|
|
- text: function (row) {
|
|
|
- return '回复(' + row.comments + ')';
|
|
|
+ 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;
|
|
|
},
|
|
|
- icon: 'fa fa-comment',
|
|
|
- url: 'shop/comment/reply/pid/{id}'
|
|
|
- }]
|
|
|
+ confirm: '确认审核拒绝吗',
|
|
|
+ success: function (data, ret) {
|
|
|
+ table.bootstrapTable('refresh'); //自动刷新
|
|
|
+ },
|
|
|
+ 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}'
|
|
|
+ // }
|
|
|
+ ]
|
|
|
}
|
|
|
]
|
|
|
]
|
|
@@ -81,13 +159,27 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
|
|
|
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 "<div style='white-space: nowrap; text-overflow:ellipsis; overflow: hidden; max-width:" + width + ";' title='" + value + "' data-toggle='tooltip' data-placement='right'>" + value + "</div>";
|
|
|
- },
|
|
|
+ }
|
|
|
}
|
|
|
};
|
|
|
return Controller;
|