define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
var Controller = {
index: function () {
// 初始化表格参数配置
Table.api.init({
extend: {
index_url: 'wwh/archives/index' + location.search,
add_url: 'wwh/archives/add',
edit_url: 'wwh/archives/edit',
del_url: 'wwh/archives/del',
multi_url: 'wwh/archives/multi',
import_url: 'wwh/archives/import',
table: 'wwh_archives',
dragsort_url:'',
}
});
var table = $("#table");
// 初始化表格
table.bootstrapTable({
url: $.fn.bootstrapTable.defaults.extend.index_url,
pk: 'id',
sortName: 'weigh',
fixedColumns: true,
fixedRightNumber: 1,
columns: [
[
{
checkbox: true, formatter:function (value,row,index){
if (row.status == 1){
return{
disabled:true
};
}
}
},
{field: 'id', title: __('Id')},
{
field: 'column',
title: __('Column_id'),
formatter: function (val,data) {
var lang = data.lang == 2?val.e_name:val.name;
return lang;
}
},
{
field: 'column_id',
title: __('Column_id'),
visible: false,
addclass: 'selectpage',
extend: 'data-source="wwh/column/index" data-field="name"',
operate: 'in',
formatter: Table.api.formatter.search
},
{
field: 'title', title: __('Title'), align: 'left', operate: 'like', customField: 'rec_data', formatter: function (value, row, index) {
var flagObj = $.extend({}, this, {searchList: {"0":__('Rec_data 0'),"1":__('Rec_data 1'),"10":__('Rec_data 10')},custom: {0: 'primary', 1: 'success', 10: 'warning'}});
if (row.rec_data == 0){
return '
';
} else {
return '' +
'' + Table.api.formatter.flag.call(flagObj, row['rec_data'], row, index) + '
';
}
}
},
{field: 'rec_data', title: __('Rec_data'), operate: 'find_in_set', visible: false, searchList: Config.recDataList, formatter: Table.api.formatter.flag},
{field: 'image', title: __('Image'), operate: false, events: Table.api.events.image, formatter: Table.api.formatter.image},
{
field: 'weigh',
title: __('Weigh'),
operate: false,
sortable: true,
formatter: function (value, row, index) {
return '';
},
events: {
"dblclick .text-weigh": function (e) {
e.preventDefault();
e.stopPropagation();
return false;
}
}
},
{field: 'views', title: __('Views')},
{field: 'time', title: __('Time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},
{field: 'status', title: __('Status'), searchList: {"0":__('Status 0'),"1":__('Status 1')}, custom: {0: 'grey', 1: 'info'}, formatter: Table.api.formatter.flag},
{field: 'lang', title: __('Lang'), searchList: {"1":__('Lang 1'),"2":__('Lang 2')}, custom: {1: 'success', 2: 'warning'}, formatter: Table.api.formatter.normal},
{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate,
buttons: [
{
name: 'faudit',
text: __('反审核'),
title: __('反审核'),
classname: 'btn btn-xs btn-danger btn-magic btn-ajax',
// icon: 'fa fa-close',
url: 'wwh/archives/faudit',
hidden:function(row){
if(row.status != '1'){
return true;
}
},
success: function (data, ret) {
table.bootstrapTable('refresh'); //自动刷新
},
}
],
formatter: function (value, row, index) {
var that = $.extend({}, this);
var table = $(that.table).clone(true);
if (row.status == 1){
$(table).data("operate-edit",null);
$(table).data("operate-del",null);
}
that.table = table;
return Table.api.formatter.operate.call(that, value, row, index);
}}
]
]
});
// 权重修改
$(document).on("change", ".text-weigh", function () {
$(this).data("params", {weigh: $(this).val()});
Table.api.multi('', [$(this).data("id")], table, this);
return false;
});
// 审核
$(document).on("click", ".btn-audit", function () {
var data = table.bootstrapTable('getSelections');
var ids = [];
if (data.length === 0) {
Toastr.error("请选择操作信息");
return;
}
for (var i = 0; i < data.length; i++) {
ids[i] = data[i]['id']
}
Layer.confirm(
'确认选中'+ids.length+'条审核吗?',
{icon: 3, title: __('Warning'), offset: '40%', shadeClose: true},
function (index) {
Layer.close(index);
Backend.api.ajax({
url: "wwh/archives/audit",
data: {ids:ids}
}, function(data, ret){//成功的回调
if (ret.code === 1) {
table.bootstrapTable('refresh');
Layer.close(index);
} else {
Layer.close(index);
Toastr.error(ret.msg);
}
}, function(data, ret){//失败的回调
console.log(ret);
Layer.close(index);
});
}
);
});
// 为表格绑定事件
Table.api.bindevent(table);
// 弹窗窗口大小
table.on('post-body.bs.table',function(e, settings, json, xhr){
$(".btn-add").data("area", ['80%','80%']);
$(".btn-editone").data("area", ['80%','80%']);
});
// TAB选项卡默认选中简体中文
$('ul.nav-tabs li a[data-toggle="tab"]').eq(0).trigger("click");
// 获取TAB选项卡值,通过options.extend.add_url传递
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var options = table.bootstrapTable('getOptions');
options.extend.add_url = 'wwh/archives/add?lang=' + $(this).data('value');
});
$(document).on("click", "a.btn-column", function () {
$("#archivespanel").toggleClass("col-md-9", $("#columnbar").hasClass("hidden"));
$("#archivespanel").toggleClass("col-full-width", !$("#columnbar").hasClass("hidden"));
$("#columnbar").toggleClass("hidden");
});
require(['jstree'], function () {
// 全选和展开
$(document).on("click", "#checkall", function () {
$("#columntree").jstree($(this).prop("checked") ? "check_all" : "uncheck_all");
});
$(document).on("click", "#expandall", function () {
$("#columntree").jstree($(this).prop("checked") ? "open_all" : "close_all");
});
$('#columntree').on("changed.jstree", function (e, data) {
$(".commonsearch-table input[name=column_id]").val(data.selected.join(","));
table.bootstrapTable('refresh', {});
return false;
});
$('#columntree').jstree({
"themes": {
"stripes": true
},
"checkbox": {
"keep_selected_style": false,
},
"types": {
"column": {
"icon": false,
},
"list": {
"icon": false,
},
"link": {
"icon": false,
},
"disabled": {
"check_node": false,
"uncheck_node": false
}
},
'plugins': ["types", "checkbox"],
"core": {
"multiple": true,
'check_callback': true,
"data": Config.columnList
}
});
});
},
add: function () {
// 将TAB选项卡赋值给lang
$('#c-lang option').each(function(){
if($(this).attr('value') == Fast.api.query('lang'))
{
$(this).attr('selected', 'selected');
}
});
Controller.api.bindevent();
},
edit: function () {
Controller.api.bindevent();
$("input[name='row[type]']:checked").trigger("fa.event.typeupdated", "edit");
},
api: {
formatter: {
subnode: function (value, row, index) {
return '';
}
},
bindevent: function () {
// 根据类型显示隐藏对应字段
$(document).on("click fa.event.typeupdated", "input[name='row[type]']", function (e, ref) {
$(".tf").addClass("hidden");
$(".tf.tf-" + $(this).val()).removeClass("hidden");
});
// 不验证隐藏元素
$('form[role=form]').data("validator-options", {
ignore: ':hidden'
});
Form.api.bindevent($("form[role=form]"));
}
}
};
return Controller;
});