123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476 |
- define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'selectpage'], function ($, undefined, Backend, Table, Form, selectPage) {
- var Controller = {
- index: function () {
- // 初始化表格参数配置
- Table.api.init({
- extend: {
- index_url: 'famysql/table/index',
- add_url: Config.group ? 'famysql/table/table_add?group=' + Config.group : 'famysql/table/table_add',
- },
- showExport: false,//导出按钮导出整个表的所有行
- showToggle: false,//切换卡片视图和表格视图
- showColumns: false,//切换显示隐藏列
- search: false,//关闭快速搜索
- commonSearch: false,//关闭通用搜索
- });
- var table = $("#table");
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- sortName: 'id',
- columns: [
- [
- { field: 'id', title: __('Id') },
- { field: 'name', title: __('Name') },
- { field: 'engine', title: __('Engine'), width: '80px' },
- { field: 'charset', title: __('Charset'), width: '80px' },
- { field: 'collation', title: __('Collation'), width: '150px' },
- { field: 'comment', title: __('Comment') },
- { field: 'rows', title: __('Rows') },
- { field: 'createtime', title: __('Create time') },
- { field: 'updatetime', title: __('Update time') },
- {
- field: 'operate', title: __('Table Operate'), width: '400px', table: table, operate: false,
- events: {
- 'click .btn-copy-1': function (e, value, row) {
- Layer.prompt({
- title: "请输入你需要新复制的数据表名",
- success: function (layero) {
- var name = row.name;
- var name_arr = name.split("_");
- if (row.is_has) {
- name_arr.shift()
- }
- const str = name_arr.join('_');
- $("input", layero).prop("placeholder", "例如:test,请不要加前缀").val(str);
- }
- }, function (value) {
- Fast.api.ajax({
- url: "famysql/table/copy?name=" + row.name + "&type=1",
- data: { table: value },
- }, function (data, ret) {
- Layer.closeAll();
- parent.location.reload();
- return false;
- });
- });
- },
- 'click .btn-copy-2': function (e, value, row) {
- Layer.prompt({
- title: "请输入你需要新复制的数据表名",
- success: function (layero) {
- var name = row.name;
- var name_arr = name.split("_");
- if (row.is_has) {
- name_arr.shift()
- }
- const str = name_arr.join('_');
- $("input", layero).prop("placeholder", "例如:test,请不要加前缀").val(str);
- }
- }, function (value) {
- Fast.api.ajax({
- url: "famysql/table/copy?name=" + row.name + "&type=2",
- data: { table: value },
- }, function (data, ret) {
- Layer.closeAll();
- parent.location.reload();
- return false;
- });
- });
- }
- },
- buttons: [
- {
- name: 'copy',
- text: __('Copy 1'),
- title: __('Copy 1'),
- dropdown: __('Copy'),
- classname: 'btn btn-xs btn-warning btn-copy-1',
- icon: 'fa fa-copy',
- },
- {
- name: 'copy-2',
- text: __('Copy 2'),
- title: function (row) {
- return __('Copy 2') + "(" + row.rows + ")";
- },
- dropdown: __('Copy'),
- classname: 'btn btn-xs btn-warning btn-copy-2',
- icon: 'fa fa-copy',
- },
- {
- name: 'truncate',
- text: function (row) {
- return __('Truncate') + "(" + row.rows + ")";
- },
- title: function (row) {
- return __('Truncate') + "(" + row.rows + ")";
- },
- dropdown: __('More Table Operate'),
- classname: 'btn btn-xs btn-danger btn-truncate',
- icon: 'fa fa-minus-circle',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/truncate?name=" + row.name);
- },
- classname: 'btn btn-xs btn-danger btn-ajax',
- confirm: function (row) {
- return '是否确定清空该“' + row.name + '”数据表?';
- },
- success: function (data, ret) {
- $(".btn-refresh").trigger("click"); //刷新数据
- },
- visible: function (row) {
- return row.is_admin !== 0;
- },
- error: function (data, ret) {
- Layer.alert(ret.msg);
- return false;
- }
- },
- {
- name: 'optimize',
- text: __('Optimize'),
- title: __('Optimize'),
- dropdown: __('More Table Operate'),
- classname: 'btn btn-xs btn-danger btn-optimize',
- icon: 'fa fa-exclamation-triangle',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/optimize?name=" + row.name);
- },
- classname: 'btn btn-xs btn-danger btn-ajax',
- confirm: function (row) {
- return '是否确定优化该“' + row.name + '”数据表?';
- },
- success: function (data, ret) {
- $(".btn-refresh").trigger("click"); //刷新数据
- },
- visible: function (row) {
- return row.is_admin !== 0;
- },
- error: function (data, ret) {
- Layer.alert(ret.msg);
- return false;
- }
- },
- {
- name: 'repair',
- text: __('Repair'),
- title: __('Repair'),
- dropdown: __('More Table Operate'),
- classname: 'btn btn-xs btn-danger btn-repair',
- icon: 'fa fa-check-circle-o',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/repair?name=" + row.name);
- },
- classname: 'btn btn-xs btn-danger btn-ajax',
- confirm: function (row) {
- return '是否确定修复该“' + row.name + '”数据表?';
- },
- success: function (data, ret) {
- $(".btn-refresh").trigger("click"); //刷新数据
- },
- visible: function (row) {
- return row.is_admin !== 0;
- },
- error: function (data, ret) {
- Layer.alert(ret.msg);
- return false;
- }
- },
- {
- name: 'editone',
- icon: 'fa fa-pencil',
- text: __('Edit'),
- title: __('Edit'),
- dropdown: __('More Table Operate'),
- extend: 'data-toggle="tooltip"',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/table_edit?name=" + row.name);
- },
- visible: function (row) {
- return row.is_admin !== 0;
- },
- classname: 'btn btn-xs btn-success btn-dialog'
- },
- {
- name: 'delone',
- icon: 'fa fa-trash',
- text: __('Del'),
- title: __('Del'),
- dropdown: __('More Table Operate'),
- extend: 'data-toggle="tooltip"',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/table_del?name=" + row.name);
- },
- classname: 'btn btn-xs btn-danger btn-ajax',
- confirm: function (row) {
- return '是否确定删除该“' + row.name + '”数据表,不可恢复?';
- },
- success: function (data, ret) {
- if (ret.data == 0) {
- parent.location.reload();
- } else {
- $(".btn-refresh").trigger("click"); //刷新数据
- }
- },
- visible: function (row) {
- return row.is_admin !== 0;
- },
- error: function (data, ret) {
- Layer.alert(ret.msg);
- return false;
- }
- },
- {
- name: 'crud',
- text: 'CRUD',
- title: function (row) {
- return "(表" + row.name + ")" + __('CRUD');
- },
- extend: 'data-area=\'["90%", "90%"]\'',
- dropdown: __('More Table Operate'),
- classname: 'btn btn-warning btn-xs btn-primary btn-dialog ',
- visible: function (row) {
- return row.group !== 'system';
- },
- url: function (row) {
- return Fast.api.fixurl('famysql/table/check?addon_name=' + row.group + '&table_name=' + row.name);
- },
- icon: 'fa fa-terminal',
- },
- {
- name: 'indexs',
- title: __('Index manager'),
- text: __('Index manager'),
- extend: 'data-area=\'["90%", "90%"]\'',
- url: function (row) {
- return Fast.api.fixurl("famysql/index/indexs?name=" + row.name + "&is_admin=" + row.is_admin);
- },
- icon: 'fa fa-list-ol',
- classname: 'btn btn-xs btn-danger btn-dialog'
- },
- {
- name: 'fields',
- title: function (row) {
- return "(" + row.name + ")" + __('Field manager');
- },
- text: function (row) {
- return __('Field manager') + "(" + row.field_nums + ")";
- },
- extend: 'data-area=\'["90%", "90%"]\'',
- url: function (row) {
- return Fast.api.fixurl("famysql/field/fields?name=" + row.name + "&is_admin=" + row.is_admin);
- },
- icon: 'fa fa-table',
- classname: 'btn btn-success btn-xs btn-execute btn-dialog'
- },
- ],
- formatter: Table.api.formatter.operate
- },
- ]
- ],
- //启用固定列
- fixedColumns: true,
- //固定右侧列数
- fixedRightNumber: 1,
- queryParams: function (params) {
- if (Config.group) {
- params.group = Config.group;
- }
- return params;
- },
- });
- // 绑定TAB事件
- $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
- var value = $(this).data("value");
- var options = table.bootstrapTable('getOptions');
- options.queryParams = function (params) {
- params.group = value;
- return params;
- };
- return false;
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- },
- backuplist: function () {
- // 初始化表格参数配置
- Table.api.init({
- extend: {
- index_url: 'famysql/table/backuplist'
- }
- });
- var table = $("#table");
- table.on('load-success.bs.table', function (e, json) {
- if (json && typeof json.rows != 'undefined' && $(".nav-addon li").size() == 1) {
- var addons = [];
- $.each(json.rows, function (i, j) {
- if (addons.indexOf(j.addon) == -1 && j.addon != 'all') {
- $(".nav-addon").append("<li><a href='javascript:;' data-value='" + j.addon + "'>" + j.addon_name + "</a></li>");
- addons.push(j.addon);
- }
- });
- }
- });
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- columns: [
- [
- {
- field: 'id', title: __('ID'), operate: false, formatter: function (value, row, index) {
- return index + 1;
- }
- },
- { field: 'addon', title: __('Addon'), visible: false },
- { field: 'type', title: __('File'), visible: false },
- {
- field: 'file', title: __('File'), operate: false, formatter: function (value, row, index) {
- var url = Fast.api.fixurl("famysql/table/download?file=" + row.file);
- return '<a href="' + url + '" data-toggle="tooltip" title="' + __('Download file') + '" target="_blank">' + row.file + '</a>';
- }
- },
- { field: 'size', title: __('Size'), operate: false },
- { field: 'date', title: __('Date'), operate: false },
- {
- field: 'operate', title: __('Operate'), table: table, operate: false,
- buttons: [
- {
- name: 'restore',
- text: __('恢复'),
- icon: 'fa fa-reply',
- classname: 'btn btn-primary btn-restore btn-xs btn-ajax ',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/restore?action=restore&file=" + row.file);
- }
- },
- {
- name: 'delone',
- text: __('Del'),
- icon: 'fa fa-times',
- classname: 'btn btn-danger btn-delete btn-xs btn-ajax',
- extend: 'data-toggle="tooltip"',
- url: function (row) {
- return Fast.api.fixurl("famysql/table/restore?action=delete&file=" + row.file);
- },
- confirm: function (row) {
- return '是否确定删除该“' + row.file + '”备份文件,不可恢复?';
- },
- refresh: true
- },
- ],
- formatter: Table.api.formatter.buttons
- }
- ]
- ],
- commonSearch: true,
- search: false,
- templateView: false,
- clickToSelect: false,
- showColumns: false,
- showToggle: false,
- showExport: false,
- showSearch: false,
- searchFormVisible: false,
- queryParams: function (params) {
- if (Config.group) {
- //这里可以追加搜索条件
- var filter = JSON.parse(params.filter);
- var op = JSON.parse(params.op);
- filter.addon = Config.group;
- op.addon = "=";
- params.filter = JSON.stringify(filter);
- params.op = JSON.stringify(op);
- }
- return params;
- },
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- // 切换
- $(document).on("click", ".btn-switch", function () {
- $(".btn-switch").removeClass("active");
- $(this).addClass("active");
- $("form.form-commonsearch input[name='type']").val($(this).data("type"));
- table.bootstrapTable('refresh', { url: $.fn.bootstrapTable.defaults.extend.index_url, pageNumber: 1 });
- return false;
- });
- $(document).on("click", ".nav-addon li a", function () {
- $(".nav-addon li").removeClass("active");
- $(this).parent().addClass("active");
- $("form.form-commonsearch input[name='addon']").val($(this).data("value"));
- table.bootstrapTable('refresh', { url: $.fn.bootstrapTable.defaults.extend.index_url, pageNumber: 1 });
- return false;
- });
- //上传完成后刷新
- $(".faupload").data("upload-complete", function (files) {
- if (files[0].ret.code) {
- Toastr.success(files[0].ret.msg);
- } else {
- Toastr.error(files[0].ret.msg);
- }
- $(".btn-refresh").trigger("click"); //刷新数据
- });
- Controller.api.bindevent();
- },
- backup: function () {
- $(document).on("change", "#c-addon", function () {
- $("#c-ignore_tables").selectPageRefresh();
- });
- $("#c-ignore_tables").data("params", function (obj) {
- //obj为SelectPage对象
- return { custom: { addon: $("#c-addon").val() } };
- });
- Controller.api.bindevent();
- },
- table_add: function () {
- $(document).on("change", "#c-charset", function () {
- $("#c-collation").selectPageRefresh();
- });
- Controller.api.bindevent();
- },
- table_batch_add: function () {
- $("#c-name").data("params", function (obj) {
- //obj为SelectPage对象
- return { custom: { addon: $("#c-addon").val() } };
- });
- Controller.api.bindevent();
- },
- table_edit: function () {
- $(document).on("change", "#c-charset", function () {
- $("#c-collation").selectPageRefresh();
- });
- Controller.api.bindevent();
- },
- api: {
- bindevent: function () {
- $("#c-collation").data("params", function (obj) {
- //obj为SelectPage对象
- return { custom: { charset: $("#c-charset").val() } };
- });
- $("#c-type").data("params", function (obj) {
- //obj为SelectPage对象
- if ($("#field-suffix").val() !== "无") {
- return { custom: { suffix: $("#field-suffix").val() } };
- }
- });
- Form.api.bindevent($("form[role=form]"));
- }
- }
- };
- return Controller;
- });
|