123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361 |
- define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefined, Backend, Table, Form) {
- var Controller = {
- index: function () {
- // 初始化表格参数配置
- Table.api.init({
- extend: {
- index_url: 'tablemake/index',
- add_url: 'tablemake/add',
- edit_url: 'tablemake/edit',
- del_url: 'tablemake/del',
- multi_url: 'tablemake/multi',
- table: 'tablemake_tables',
- },
- showExport: false,//导出按钮导出整个表的所有行
- showToggle: false,//切换卡片视图和表格视图
- showColumns: false,//切换显示隐藏列
- search: true,//关闭快速搜索
- commonSearch: false,//关闭通用搜索
- pageSize: 25,//设置默认每页显示数量
- pageList: [25, 50, 'All'],//可选每页显示数量
- });
- var table = $("#table");
- var dictionary_url = $("#toolbar").attr("data-dictionary-url");
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- sortName: 'weigh',
- columns: [
- [
- {checkbox: true},
- {field: 'id', title: __('Id')},
- {field: 'name', title: "自建表名称"},
- {
- field: 'table', title: "自建表表名", formatter: function (value, row, index) {
- return '' + value;
- }
- },
- {field: 'desc', title: "自建表描述"},
- {
- field: 'createtime',
- title: __('Createtime'),
- operate: 'RANGE',
- addclass: 'datetimerange',
- formatter: Table.api.formatter.datetime
- },
- {
- field: 'operate',
- title: __('Operate'),
- buttons: [
- {
- name: 'dictionary',
- title: "数据字典",
- text: "数据字典",
- icon: 'fa fa-text-width',
- classname: 'btn btn-info btn-xs btn-execute btn-click',
- click: function (btn, row) {
- window.open(dictionary_url + "#" + row.table);
- return false;
- },
- },
- {
- name: 'fields',
- title: "字段管理",
- text: "字段管理",
- extend: "data-area='[\"\90%\"\,\"\90%\"\]'",
- url: 'tablemake/fields',
- icon: 'fa fa-table',
- classname: 'btn btn-success btn-xs btn-execute btn-dialog'
- },
- ],
- table: table,
- events: Table.api.events.operate,
- formatter: Table.api.formatter.operate
- }
- ]
- ]
- });
- // 绑定TAB事件
- $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
- var field = $(this).closest("ul").data("field");
- var value = $(this).data("value");
- var options = table.bootstrapTable('getOptions');
- options.pageNumber = 1;
- options.queryParams = function (params) {
- var filter = {};
- if (value !== '') {
- filter[field] = value;
- }
- params.filter = JSON.stringify(filter);
- return params;
- };
- table.bootstrapTable('refresh', {});
- return false;
- });
- $('.btn-dictionary').on('click', function () {
- window.open(dictionary_url);
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- },
- add: function () {
- Controller.api.bindevent();
- },
- edit: function () {
- Controller.api.bindevent();
- },
- api: {
- bindevent: function () {
- Form.api.bindevent($("form[role=form]"));
- }
- },
- fields: function () {
- // 初始化表格参数配置
- var ids = $("#assign-data-ids").val();
- Table.api.init({
- extend: {
- index_url: 'tablemake/fields/ids/' + ids,
- add_url: 'tablemake/field_add/mid/' + ids,
- edit_url: 'tablemake/field_edit',
- del_url: 'tablemake/field_del',
- table: 'tablemake_fields',
- },
- showExport: false,//导出按钮导出整个表的所有行
- showToggle: false,//切换卡片视图和表格视图
- showColumns: false,//切换显示隐藏列
- search: true,//关闭快速搜索
- commonSearch: false,//关闭通用搜索
- pageSize: 25,//设置默认每页显示数量
- pageList: [25, 50, 'All'],//可选每页显示数量
- });
- var table = $("#table");
- // 初始化表格
- table.bootstrapTable({
- url: $.fn.bootstrapTable.defaults.extend.index_url,
- pk: 'id',
- sortName: 'weigh',
- columns: [
- [
- {checkbox: true},
- {field: 'id', title: __('Id')},
- {field: 'mid', title: '模型ID'},
- {field: 'title', title: "字段标题 "},
- {field: 'field', title: "字段名称"},
- {field: 'type', title: "字段类型"},
- {field: 'length', title: "字段长度"},
- {field: 'default', title: "默认值"},
- {field: 'comment', title: "备注说明"},
- {
- field: 'createtime',
- title: __('Createtime'),
- operate: 'RANGE',
- addclass: 'datetimerange',
- formatter: Table.api.formatter.datetime
- },
- {
- field: 'operate',
- title: __('Operate'),
- table: table,
- events: Table.api.events.operate,
- formatter: Table.api.formatter.operate
- }
- ]
- ]
- });
- // 绑定TAB事件
- $('.panel-heading a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
- var field = $(this).closest("ul").data("field");
- var value = $(this).data("value");
- var options = table.bootstrapTable('getOptions');
- options.pageNumber = 1;
- options.queryParams = function (params) {
- var filter = {};
- if (value !== '') {
- filter[field] = value;
- }
- params.filter = JSON.stringify(filter);
- return params;
- };
- table.bootstrapTable('refresh', {});
- return false;
- });
- // 为表格绑定事件
- Table.api.bindevent(table);
- },
- field_add: function () {
- Controller.api.bindevent();
- $(".field-category").on("click", function (e) {
- var _value = $(this).val();
- var required = $(this).attr("data-required");
- var required_list = required.split(",");
- $("#field-suffix").val("");
- $("#field-type").val("");
- $(".form-input").hide();
- $(".form-input input").attr("disabled", "disabled");
- $(".form-input input").attr("readonly", "readonly");
- for (let value of required_list) {
- $(".form-input-" + value).show();
- $(".form-input-" + value + " input").attr("disabled", false);
- $(".form-input-" + value + " input").attr("readonly", false);
- }
- });
- $(".form-selection").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "list-enum" || _value == "list-set" || _value == "data-enum" || _value == "data-set" || _value == "enum" || _value == "set") {
- $(".form-input-comment").show();
- $(".form-input-comment input").attr("disabled", false);
- $(".form-input-comment input").attr("readonly", false);
- } else {
- $(".form-input-comment").hide();
- $(".form-input-comment input").attr("disabled", "disabled");
- $(".form-input-comment input").attr("readonly", "readonly");
- }
- });
- $("#c-special").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "status") {
- $(".form-input-comment").show();
- $(".form-input-comment input").attr("disabled", false);
- $(".form-input-comment input").attr("readonly", false);
- } else {
- $(".form-input-comment").hide();
- $(".form-input-comment input").attr("disabled", "disabled");
- $(".form-input-comment input").attr("readonly", "readonly");
- }
- });
- $("#field-suffix").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "content") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- });
- $("#field-type").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "text" || _value == "datetime" || _value == "date" || _value == "year" || _value == "timestamp") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- });
- $(".field-category:checked").click();
- },
- field_edit: function () {
- Controller.api.bindevent();
- $(".field-category").on("click", function (e) {
- var _value = $(this).val();
- var required = $(this).attr("data-required");
- var required_list = required.split(",");
- $(".form-input").hide();
- $(".form-input input").attr("disabled", "disabled");
- $(".form-input input").attr("readonly", "readonly");
- for (let value of required_list) {
- $(".form-input-" + value).show();
- $(".form-input-" + value + " input").attr("disabled", false);
- $(".form-input-" + value + " input").attr("readonly", false);
- }
- //初始化键值对选项
- var suffix_value = $("#field-suffix").val();
- var type_value = $("#field-type").val();
- var special_values = $("#c-special").val();//
- if (suffix_value == "list-enum" || suffix_value == "list-set" || suffix_value == "data-enum" || suffix_value == "data-set" || type_value == "enum" || type_value == "set" || special_values == "status") {
- $(".form-input-comment").show();
- $(".form-input-comment input").attr("disabled", false);
- $(".form-input-comment input").attr("readonly", false);
- } else {
- $(".form-input-comment").hide();
- $(".form-input-comment input").attr("disabled", "disabled");
- $(".form-input-comment input").attr("readonly", "readonly");
- }
- //后缀选项
- if (suffix_value == "content") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- //类型选项
- if (type_value == "text" || type_value == "datetime" || type_value == "date" || type_value == "year" || type_value == "timestamp") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- });
- $(".form-selection").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "list-enum" || _value == "list-set" || _value == "data-enum" || _value == "data-set" || _value == "enum" || _value == "set") {
- $(".form-input-comment").show();
- $(".form-input-comment input").attr("disabled", false);
- $(".form-input-comment input").attr("readonly", false);
- } else {
- $(".form-input-comment").hide();
- $(".form-input-comment input").attr("disabled", "disabled");
- $(".form-input-comment input").attr("readonly", "readonly");
- }
- });
- $("#c-special").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "status") {
- $(".form-input-comment").show();
- $(".form-input-comment input").attr("disabled", false);
- $(".form-input-comment input").attr("readonly", false);
- } else {
- $(".form-input-comment").hide();
- $(".form-input-comment input").attr("disabled", "disabled");
- $(".form-input-comment input").attr("readonly", "readonly");
- }
- });
- $("#field-suffix").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "content") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- });
- $("#field-type").on("change", function (e) {
- var _value = $(this).val();
- if (_value == "text" || _value == "datetime" || _value == "date" || _value == "year" || _value == "timestamp") {
- $("#row-length").attr("disabled", "disabled");
- $("#row-default").attr("disabled", "disabled");
- } else {
- $("#row-length").attr("disabled", false);
- $("#row-default").attr("disabled", false);
- }
- });
- $(".field-category:checked").click();
- },
- };
- return Controller;
- });
|