var mainItemTable; var mainItemRowID; var mainItemRowPos; var subItemTable; var subItemRowID; var subItemRowPos; $(document).ready(function () { loadDataTable(); $('#maintItemNewModal').on('click', function () { $("#company_method").val('add'); $('#mainItemModal').modal('toggle'); }); $('#mainItemDialogSaveBtn').on('click', function () { var method = $('#company_method').val(); var company_uid = $('#company_uid').val(); var company_name = $('#modal_company_name').val(); var company_serialNo = $('#modal_company_serialNo').val(); var company_address = $('#modal_company_address').val(); var company_fax = $('#modal_company_fax').val(); var company_tel = $('#modal_company_tel').val(); if (company_name == "") { alert('請輸入公司名稱'); retur; } var formData = { method: method, company_uid: company_uid, company_name: company_name, company_serialNo: company_serialNo, company_address: company_address, company_tel: company_tel, company_fax: company_fax } $.ajax({ url: "/Api/addEditDelGetCompany", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.companys[0]; if (method == "add") { mainItemTable.fnAddData(obj); } if (method == "edit") { mainItemTable.fnUpdate(obj, mainItemRowPos); } $('#mainItemModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); }); }); function buttonClick(obj) { var type = obj.getAttribute('data-method'); var uid = obj.getAttribute('data-uid'); mainItemRowID = $('#' + uid); mainItemRowPos = mainItemTable.fnGetPosition($('#' + uid)[0]); if (type == "preview") { var mainItem_name = obj.innerText.trim(); var formData = { dept_uid: dept_uid, mainItem_uid: uid } $.ajax({ url: "/AuthApi/authSubItemList", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.subItems; $('#dt-responsive-subItem').dataTable().fnClearTable(); if (obj.length > 0) { $('#dt-responsive-subItem').dataTable().fnAddData(obj); } $('#mainItemTitle').val(mainItem_name + ' 的子項目列表').trigger('change'); $('#subItemList_mainItem_uid').val(uid); $('#clientSubItemListModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } if (type == "edit") { var formData = { method: 'get', company_uid: uid } $.ajax({ url: "/Api/addEditDelGetCompany", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var obj = data.companys[0]; $("#company_method").val('edit'); $("#company_uid").val(obj.company_uid); $("#modal_company_name").val(obj.company_name).trigger('change'); $("#modal_company_serialNo").val(obj.company_serialNo).trigger('change'); $("#modal_company_address").val(obj.company_address).trigger('change'); $("#modal_company_tel").val(obj.company_tel).trigger('change'); $("#modal_company_fax").val(obj.company_fax).trigger('change'); $('#mainItemModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } if (type == "del") { if (confirm('確定刪除此筆資料? 所有子項目也會一併刪除~')) { if (confirm('再次確認是否刪除所有此公司資料與成員?')) { var formData = { method: 'del', company_uid: uid } $.ajax({ url: "/Api/addEditDelGetCompany", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var row = mainItemTable.api().row(mainItemRowID).remove().draw(false); alert('刪除成功'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } } } } function loadDataTable() { var dataTables = { init: function init() { this.bindUIActions(); }, bindUIActions: function bindUIActions() { // event handlers this.table = this.handleDataTables(); // add buttons //this.table.buttons().container().appendTo('#dt-buttons').unwrap(); }, handleDataTables: function handleDataTables() { //$('#myTable').append(""); return $('#dt-responsive').DataTable({ dom: '<\'text-muted\'Bif>\n <\'table-responsive\'trl>\n <\'mt-4\'p>', lengthChange: true, lengthMenu: [[25, 50, 100, -1], [25, 50, 100, "All"]], pageLength: 50, buttons: [ //{ // text: '休假設定', // action: function (e, dt, node, config) { // vacationBtnFun(); // } //}, //'excelHtml5' ], language: { paginate: { previous: '', next: '' }, buttons: { copyTitle: 'Data copied', copyKeys: 'Use your keyboard or menu to select the copy command' } }, autoWidth: false, ajax: { url: '/Api/companyList', type: 'POST', data: function (d) { Object.assign(d, { dept_uid: '' }); return d; }, dataSrc: 'companys' }, rowId: 'company_uid', deferRender: true, initComplete: function () { mainItemTable = $('#dt-responsive').dataTable(); $('#dt-responsive').on('click', 'a', function () { buttonClick(this); }); $('#dt-responsive').on('click', 'button', function () { buttonClick(this); }); }, order: [[1, 'desc']], info: true, search: "搜尋:", searching: true, columns: [ { data: 'company_name', className: 'align-top text-left', orderable: true, searchable: true }, { data: 'company_serialNo', className: 'align-top text-center', orderable: false, searchable: true }, { data: 'company_tel', className: 'align-top text-center', orderable: false, searchable: true }, { data: 'company_address', className: 'align-top text-center', orderable: false, searchable: true } ], columnDefs: [ { targets: 0, className: 'align-middle text-left', orderable: false, searchable: true, render: function render(data, type, row, meta) { return '' + row.company_name + ''; } }, { targets: 4, orderable: false, searchable: false, render: function render(data, type, row, meta) { var ret = ''; ret += ''; ret += ''; return ret; } } ], responsive: { details: { display: $.fn.dataTable.Responsive.display.childRowImmediate, type: '' } } }); }, handleSearchRecords: function handleSearchRecords() { var self = this; $('#table-search, #filterBy').on('keyup change focus', function (e) { var filterBy = $('#filterBy').val(); var hasFilter = filterBy !== ''; var value = $('#table-search').val(); self.table.search('').columns().search('').draw(); if (hasFilter) { self.table.columns(filterBy).search(value).draw(); } else { self.table.search(value).draw(); } }); } } dataTables.init(); }