238 lines
10 KiB
JavaScript
238 lines
10 KiB
JavaScript
define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'editable'], function ($, undefined, Backend, Table, Form, undefined) {
|
||
|
||
var Controller = {
|
||
index: function () {
|
||
// 初始化表格参数配置
|
||
Table.api.init({
|
||
extend: {
|
||
index_url: 'import/log/index' + location.search,
|
||
add_url: 'import/log/add',
|
||
del_url: 'import/log/del',
|
||
multi_url: 'import/log/multi',
|
||
table: 'import_log',
|
||
import_url: 'import/log/import',
|
||
}
|
||
});
|
||
|
||
var table = $("#table");
|
||
|
||
// 初始化表格
|
||
table.bootstrapTable({
|
||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||
pk: 'id',
|
||
sortName: 'id',
|
||
fixedColumns: true,
|
||
columns: [
|
||
[
|
||
{checkbox: true},
|
||
{field: 'id', title: __('Id')},
|
||
{field: 'table', title: __('Table')},
|
||
{field: 'row', title: __('Row')},
|
||
{
|
||
field: 'head_type',
|
||
title: __('head_type'),
|
||
searchList: {"comment": __('comment'), "name": __('name')},
|
||
formatter: Table.api.formatter.status
|
||
},
|
||
{field: 'path', title: __('Path'), formatter: Table.api.formatter.url},
|
||
// {field: 'admin_id', title: __('Admin_id')},
|
||
{
|
||
field: 'createtime',
|
||
title: __('Createtime'),
|
||
operate: 'RANGE',
|
||
addclass: 'datetimerange',
|
||
formatter: Table.api.formatter.datetime
|
||
},
|
||
{
|
||
field: 'updatetime',
|
||
title: __('Updatetime'),
|
||
operate: 'RANGE',
|
||
addclass: 'datetimerange',
|
||
formatter: Table.api.formatter.datetime
|
||
},
|
||
{
|
||
field: 'status',
|
||
title: __('Status'),
|
||
searchList: {"normal": __('Normal'), "hidden": __('Hidden')},
|
||
formatter: Table.api.formatter.status
|
||
},
|
||
{
|
||
field: 'operate',
|
||
title: __('Operate'),
|
||
table: table,
|
||
events: Table.api.events.operate,
|
||
formatter: Table.api.formatter.operate,
|
||
buttons: [
|
||
{
|
||
name: 'detail',
|
||
text: __('查看'),
|
||
title: __('查看'),
|
||
classname: 'btn btn-xs btn-primary btn-dialog',
|
||
icon: 'fa fa-eye',
|
||
extend: 'data-area=\'["1000px","800px"]\'',
|
||
url: 'import/log/edit',
|
||
callback: function (data) {
|
||
Layer.alert("接收到回传数据:" + JSON.stringify(data), {title: "回传数据"});
|
||
},
|
||
visible: function (row) {
|
||
//返回true时按钮显示,返回false隐藏
|
||
return true;
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
]
|
||
});
|
||
|
||
// 为表格绑定事件
|
||
Table.api.bindevent(table);
|
||
},
|
||
add: function () {
|
||
function reset() {
|
||
$("#step").val(0);
|
||
$("#import").hide();
|
||
$("#createtable").hide();
|
||
$("#updatetable").hide();
|
||
var table = $("#table");
|
||
var tableField = $("#tableField");
|
||
tableField.bootstrapTable('destroy');
|
||
table.bootstrapTable('destroy');
|
||
|
||
if ($("#c-row").val() && $("#selecthead_type select").val() && $("#selectable select").val() && $("#c-rowpath").val()) {
|
||
Toastr.success('开始预览结果');
|
||
$("#submit").trigger("click");
|
||
}
|
||
}
|
||
|
||
$("#selectable select").on("change", function () {
|
||
$("#c-newtable").val('')
|
||
reset()
|
||
})
|
||
|
||
$("#import").on("click", function () {
|
||
$("#submit").trigger("click");
|
||
})
|
||
|
||
$("#c-newtable").on("change", function () {
|
||
$("#selectable select").val("");
|
||
reset()
|
||
})
|
||
|
||
$("#c-row").on("change", function () {
|
||
reset()
|
||
})
|
||
$("#c-rowpath").on("change", function () {
|
||
reset()
|
||
})
|
||
$("#selecthead_type select").on("change", function () {
|
||
reset()
|
||
})
|
||
Controller.api.bindevent();
|
||
},
|
||
edit: function () {
|
||
Controller.api.bindevent();
|
||
},
|
||
|
||
api: {
|
||
bindevent: function () {
|
||
// Form.api.bindevent($("form[role=form]"));
|
||
Form.api.bindevent($("form[role=form]"), function (data, ret) {
|
||
console.log(ret)
|
||
if (ret.data.count) {
|
||
$("#step").val(1);
|
||
$("#import").show();
|
||
Toastr.success(ret.msg);
|
||
} else {
|
||
Toastr.error(ret.msg);
|
||
}
|
||
if (ret.data.params) {
|
||
// 初始化表格参数配置
|
||
var params = ret.data.params
|
||
Table.api.init({
|
||
extend: {
|
||
index_url: 'import/log/preview?' + params,
|
||
field_url: 'import/log/preview?path=' + ret.data.path,
|
||
}
|
||
});
|
||
|
||
var table = $("#table");
|
||
var tableField = $("#tableField");
|
||
tableField.bootstrapTable('destroy');
|
||
table.bootstrapTable('destroy');
|
||
Fast.api.ajax({
|
||
url: 'import/log/preview/?columns=1&' + params
|
||
}, function (data) {
|
||
console.log(data)
|
||
var columns = [ ];
|
||
$.each(data, function (i, item) {
|
||
var row;
|
||
row = {
|
||
"field": item.field,
|
||
"title": item.title,
|
||
"titleTooltip": item.field,
|
||
"class": item.class,
|
||
|
||
};
|
||
if (item.width) row.width = item.width
|
||
if (item.buttons) row.buttons = eval('(' + item.buttons + ')');
|
||
if (item.type) row.visible = item.type
|
||
if (item.visible) row.visible = item.visible
|
||
if (item.operate) row.operate = item.operate
|
||
if (item.addclass) row.addclass = item.addclass
|
||
if (item.table) row.table = eval(item.table)
|
||
if (item.events) row.events = eval(item.events)
|
||
if (item.formatter) row.formatter = eval(item.formatter)
|
||
columns.push(row);
|
||
});
|
||
console.log(data)
|
||
// 初始化表格
|
||
tableField.bootstrapTable({
|
||
data: data,
|
||
fixedColumns: true,
|
||
pagination: false,//是否分页
|
||
sidePagination: 'client',//server:服务器端分页|client:前端分页
|
||
pageSize: 20,//单页记录数
|
||
search: false, showColumns: false, showToggle: false, showExport: false,
|
||
columns: [
|
||
[
|
||
{field: 'field', title: __('匹配值')},
|
||
{field: 'fieldName', title: __('字段名')},
|
||
{field: 'type', title: __('类型')},
|
||
{field: 'title', title: __('注释')},
|
||
{field: 'class', title: __('匹配结果') }
|
||
]
|
||
]
|
||
});
|
||
|
||
// 为表格绑定事件
|
||
Table.api.bindevent(tableField);
|
||
// 初始化表格
|
||
table.bootstrapTable({
|
||
url: $.fn.bootstrapTable.defaults.extend.index_url,
|
||
fixedColumns: true,
|
||
pagination: true,//是否分页
|
||
sidePagination: 'client',//server:服务器端分页|client:前端分页
|
||
pageSize: 20,//单页记录数
|
||
dataField: 'rows',
|
||
columns: columns
|
||
});
|
||
|
||
// 为表格绑定事件
|
||
Table.api.bindevent(table);
|
||
|
||
}, function () {
|
||
return false;
|
||
});
|
||
return false;
|
||
}
|
||
if (ret.url) {
|
||
window.location.href = ret.url;
|
||
return false;
|
||
}
|
||
});
|
||
}
|
||
}
|
||
};
|
||
return Controller;
|
||
}); |