var mainTable; var mainRowID; var mainPos; $(document).ready(function () { loadDataTable(); loadPrm(); loadyearmonth(); flatpickr("#dateStart", { "plugins": [ new monthSelectPlugin({ shorthand: true, //defaults to false dateFormat: "Y/m", //defaults to "F Y" altFormat: "Y M", //defaults to "F Y" theme: "light" // defaults to "light" }) ] }); flatpickr("#dateEnd", { "plugins": [ new monthSelectPlugin({ shorthand: true, //defaults to false dateFormat: "Y/m", //defaults to "F Y" altFormat: "Y M", //defaults to "F Y" theme: "light" // defaults to "light" }) ] }); $('#resetBtn').on('click', function () { $.ajax({ url: "/Api/projectList", type: "post", data: null, success: function (data, textStatus, jqXHR) { var obj = data.projectList; if (data.ret == "yes") { $('#adv-search-btn').trigger('click'); $('#dateStart').val(''); $('#dateEnd').val(''); $('#dt-responsive').dataTable().fnClearTable(); if (data.projectList.length > 0) { $('#dt-responsive').dataTable().fnAddData(data.projectList); } } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); }); $('#filiterBtn').on('click', function () { var start = $('#dateStart').val(); var end = $('#dateEnd').val(); var isExec = $('input[name="rdGroup1[]"]:checked').val(); if (!((start == "" && end == "") || (start != "" && end != ""))) { alert('起訖時間未輸入完全!'); return; } var formData = { is_filiter: 'Y', start: start, end: end, isExec: isExec } $.ajax({ url: "/Api/projectList", type: "post", data: formData, success: function (data, textStatus, jqXHR) { var obj = data.projectList; if (data.ret == "yes") { $('#dt-responsive').dataTable().fnClearTable(); if (data.projectList.length > 0) { $('#dt-responsive').dataTable().fnAddData(data.projectList); } } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); }); $('#projectSaveBtn').on('click', function () { var method = $('#method').val(); var project_isPrm = $('input:radio[name="project_isExec[]"]:checked').val(); var project_year = $('#project_year').val(); var project_month = $('#project_month').val(); var project_name = $('#project_name').val(); var prm_serial = $('#select2-data-remote').val(); var prm_name = $('#select2-data-remote').find(':selected').text(); var project_uid = $('#project_uid').val(); if (typeof project_isPrm === "undefined") { alert('請先選擇已執行或僅提案!'); return; } if (project_isPrm == 'no' && project_name == '') { alert('請輸入專案名稱!'); return; } if (project_isPrm == 'yes' && prm_serial == '') { alert('請選擇已執行的PRM專案!'); return; } if (project_isPrm == 'yes' && prm_serial == null) { alert('請選擇已執行的PRM專案!'); return; } if (project_isPrm == 'yes') { project_isPrm = 'Y'; project_name = prm_name.replace('(' + prm_serial + ') ', ""); project_year = "20" + prm_serial.substr(0, 2); project_month = parseInt(prm_serial.substr(2, 2)); } else { project_isPrm = 'N'; } mainTable = $('#dt-responsive').dataTable(); var formData = { method: method, project_isPrm: project_isPrm, project_prmSerial: prm_serial, project_name: project_name, project_year: project_year, project_month: project_month, project_uid: project_uid } $.ajax({ url: "/Api/projectAddEditDelGet", type: "post", data: formData, success: function (data, textStatus, jqXHR) { var obj = data.data; if (data.ret == "yes") { if (method == "add") { mainTable.fnAddData(obj); } if (method == "edit") { mainTable.fnUpdate(obj, mainPos); } $('#clientNewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "99999") { location.href = "/Root/Login"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); }); $('#projectNewModal').on('click', function () { //var src = $('#fileupload-avatar').parent().children('img').prop('src'); //var origin = location.origin; //src = src.replace(origin, ''); //alert(src); $('#file_div').hide(); $("#select2-data-remote").val(null).trigger('change'); $('input:radio[name="project_isExec[]"]').prop('checked', false); $('#project_name').val(''); $('#prm_project_serial').hide(); $('#project_year_month_div').hide(); $('#project_name_div').hide(); $('#method').val('add'); $('#clientNewModal').modal('toggle'); }); $('input:radio[name="project_isExec[]"]').change( function () { if ($(this).is(':checked') && $(this).val() == 'yes') { // append goes here $('#prm_project_serial').show(); $('#project_year_month_div').hide(); $('#project_name_div').hide(); } if ($(this).is(':checked') && $(this).val() == 'no') { // append goes here $('#prm_project_serial').hide(); $('#project_year_month_div').show(); $('#project_name_div').show(); } }); function loadyearmonth() { var actualDate = new Date(); // convert to actual date var nowYear = actualDate.getFullYear(); for (tmpY = nowYear; tmpY >= 2019; tmpY--) { $("#project_year").append($("").attr("value", tmpY).text(tmpY + " 年度")); } for (tmpM = 1; tmpM <= 12; tmpM++) { $("#project_month").append($("").attr("value", tmpM).text(tmpM + " 月")); } } function loadPrm() { $('#select2-data-remote').select2({ language: 'zh-TW', width: '100%', // 最多字元限制 maximumInputLength: 12, // 最少字元才觸發尋找, 0 不指定 minimumInputLength: 1, // 當找不到可以使用輸入的文字 // tags: true, placeholder: '請輸入案號或專案名稱...', ajax: { url: '/Api/queryPrm', dataType: 'json', delay: 500, type: 'post', // 要送出的資料 data: function (params) { // 在伺服器會得到一個 POST 'search' return { search: params.term }; }, processResults: function (data, params) { console.log(data.data) // 一定要返回 results 物件 return { results: data.data, // 可以啟用無線捲軸做分頁 pagination: { more: params.page * 30 < data.total_count } } } } }); } 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: 25, 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/projectList', type: 'POST', data: function (d) { Object.assign(d, { bar_area: $('#bar_area').val(), is_lottery: $('#isLottery').val() }); return d; }, dataSrc: 'projectList' }, rowId: 'project_uid', deferRender: true, initComplete: function () { $('#dt-responsive').on('click', 'a', function () { buttonClick2(this); }); $('#dt-responsive').on('click', 'button', function () { buttonClick2(this); }); $('#dt-responsive').on('click', 'input[name="selectedRow[]"]', function () { checkboxClick(this); }); }, order: [[5, 'desc']], info: true, search: "搜尋:", searching: true, columns: [{ data: 'project_year', className: 'align-top', orderable: false, searchable: false }, { data: 'project_prmSerial', className: 'align-top text-left', orderable: true, searchable: true }, { data: 'project_name', className: 'align-top text-left', orderable: true, searchable: true }, { data: 'project_isExec', className: 'align-top text-left', orderable: false, searchable: true }, { data: 'project_uid', className: 'align-top text-left', orderable: false, searchable: true }, { data: 'project_modifydate', className: 'align-top text-left', orderable: false, searchable: true }, { data: 'project_uid', className: 'align-top text-center', orderable: false, searchable: false }], columnDefs: [ { targets: 2, orderable: false, searchable: true, render: function render(data, type, row, meta) { return '' + row.project_name + ''; } } , { targets: 3, className: 'align-middle text-center', orderable: false, searchable: false, render: function render(data, type, row, meta) { if (row.project_isExec == 'Y') { return "執行"; } if (row.project_isExec == 'N') { if (row.project_reason == '') { return "未執行"; } else { return "未執行,原因:" + row.project_reason; } } return ''; //return row.gift_city + row.gift_area + row.gift_address; //var editRet = ' '; //if (row.quotationUser_perm == "A" || row.quotationUser_perm == "D" || row.quotationUser_perm == "admin" || row.quotationUser_perm == "pro") { // editRet = editRet + ' '; //} //return editRet; } } , { targets: 4, orderable: false, searchable: false, render: function render(data, type, row, meta) { var ret = ''; $.each(row.kolList, function (key, value) { var isExec = '未執行'; if (value.kolProject_isExec == 'Y') { isExec = '執行'; ret += '' + value.kol_name + ' (' + isExec + ')
'; } else { isExec = '未執行'; if (value.kolProject_noExecReason != '') { isExec += ':' + value.kolProject_noExecReason; } ret += '' + value.kol_name + ' (' + isExec + ')
'; } }); //ret = ret.replace(/^\/+|\/+$/g, ''); //ret = '尚在開發中'; return ret; //return '' + row.company_name + ''; } } , { targets: 5, orderable: false, searchable: false, render: function render(data, type, row, meta) { return (new Date(row.project_modifydate)).format("yyyy/MM/dd hh:mm:ss"); } } , { targets: 6, orderable: false, searchable: false, render: function render(data, type, row, meta) { var ret = ''; ret += ''; ret += ''; return ret; } } ], }); }, 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(); } }); function kolProjectPreview(obj) { var uid = obj.getAttribute('data-uid'); //alert(uid); var formData = { method: "get", kolProject_uid: uid } $.ajax({ url: "/Api/kolProjectAddEditDelGet", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var trList = $("#previewPrice_table").find("tbody").find("tr"); $.each(trList, function (index, item) { $(item).remove(); }); var trList = $("#previewFile_table").find("tbody").find("tr"); $.each(trList, function (index, item) { $(item).remove(); }); var trList = $("#previewLink_table").find("tbody").find("tr"); $.each(trList, function (index, item) { $(item).remove(); }); var trList = $("#previewCut_table").find("tbody").find("tr"); $.each(trList, function (index, item) { $(item).remove(); }); var obj = data.data; $('#previewProject_name').val('(' + obj.project.project_year + '年度' + obj.project.project_month + '月) ' + obj.project.project_name); var cooperStr = ''; $.each(obj.kolCooperateTypeDetails, function () { cooperStr += this.optionItem_name + '/'; }); cooperStr = cooperStr.replace(/\/+$/, ''); $('#previewProject_Cooper').val(cooperStr); $.each(obj.kolProjectPrices, function () { var trHtml = ""; trHtml += ''; trHtml += ' ' + this.optionItem_name + ' '; trHtml += ' ' + this.mediaItem_name + ' '; trHtml += ' ' + this.kolProjectPrice_num + ' '; trHtml += ' ' + AppendComma(this.kolProjectPrice_cost) + ' '; trHtml += ' ' + this.kolProjectPrice_date + ' '; trHtml += ''; $('#previewPrice_table tbody').append(trHtml); }); if (obj.kolProject.kolProject_isExec == 'Y') { $('#previewProject_isCooper').val('是'); } else { $('#previewProject_isCooper').val('否'); if (obj.kolProject.kolProject_noExecReason != '') { $('#previewProject_isCooper').val('否,原因【' + obj.kolProject.kolProject_noExecReason + '】'); } } $.each(obj.kolProjectFiles, function () { var ret = ''; ret += ' ' + this.kolProjectFile_originFileName + ''; var trHtml = ""; trHtml += ''; trHtml += ' ' + ret + ' '; trHtml += ''; $('#previewFile_table tbody').append(trHtml); }); var qualityStr = ''; $.each(obj.kolProjectEvaluates, function (key, value) { qualityStr += value.kolProjectEvaluate_text + "/"; }); qualityStr = qualityStr.replace(/\/+$/, ''); $('#previewProject_Quality').val(qualityStr); $.each(obj.kolProjectLinks, function () { var trHtml = ""; trHtml += ''; trHtml += ' ' + this.kolProjectLink_text + ''; trHtml += ''; $('#previewLink_table tbody').append(trHtml); }); $.each(obj.kolProjectImages, function () { var ret = ''; ret += '
'; ret += ' '; ret += '
'; var trHtml = ""; trHtml += ''; trHtml += ' ' + ret + ' '; trHtml += ' ' + this.kolProjectImage_desc + ' '; trHtml += ''; $('#previewCut_table tbody').append(trHtml); }); $('#previewkolProject_memo').val(obj.kolProject.kolProject_memo); $('#clientCasePreviewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "9999") { location.href = "/Home/Index"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } function buttonClick2(obj) { var type = obj.getAttribute('data-method'); var uid = obj.getAttribute('data-uid'); mainTable = $('#dt-responsive').dataTable(); mainRowID = $('#' + uid); mainPos = mainTable.fnGetPosition($('#' + uid)[0]); if (type == "preview") { var formData = { project_uid: uid } $.ajax({ url: "/Api/projectKolViewList", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var trList = $("#preview_kol_table").find("tbody").find("tr"); $.each(trList, function (index, item) { $(item).remove(); }); $.each(data.detail.kolList, function () { var trHtml = ""; trHtml += ''; trHtml += ' ' + this.kol_name + ' '; var execStr = ''; if (this.kolProject_isExec == 'N') { if (this.kolProject_noExecReason == '') { execStr = "未執行"; } else { execStr = "未執行,原因:" + this.kolProject_noExecReason; } } else { execStr = "執行"; } trHtml += ' ' + execStr + ' '; var evaStr = ''; $.each(this.kolProjectEvaluates, function () { evaStr += this.kolProjectEvaluate_text + ", "; }); evaStr = evaStr.trim().replace(/,+$/, ''); trHtml += ' ' + evaStr + ' '; trHtml += ''; $('#preview_kol_table tbody').append(trHtml); }); $('#clientPreviewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "9999") { location.href = "/Home/Index"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } if (type == "del") { if (confirm('確定刪除此筆資料? 刪除後將無任何方法回復!')) { var formData = { method: "del", project_uid: uid } $.ajax({ url: "/Api/projectAddEditDelGet", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { var row = mainTable.api().row(mainRowID).remove().draw(false); alert('刪除完成!'); } else { alert(data.message); if (data.err_code == "9999") { location.href = "/Home/Index"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } } if (type == "edit") { $('#file_div').hide(); $('#method').val('edit'); $('#project_uid').val(uid); var formData = { method: "get", project_uid: uid } $.ajax({ url: "/Api/projectAddEditDelGet", type: "post", data: formData, success: function (data, textStatus, jqXHR) { if (data.ret == "yes") { $("#select2-data-remote").val(null).trigger('change'); $('input:radio[name="project_isExec[]"]').prop('checked', false); $('#project_name').val(''); $('#prm_project_serial').hide(); $('#project_year_month_div').hide(); $('#project_name_div').hide(); var obj = data.data; $('#method').val('edit'); $('#project_uid').val(uid); if (obj.project_isPrm == 'Y') { $("#rd1").prop("checked", true).trigger("click"); $('#prm_project_serial').show(); $('#project_year_month_div').hide(); $('#project_name_div').hide(); var fileData = { quotation_serial: obj.project_prmSerial } $.ajax({ url: "/Api/queryPrmFile", type: "post", data: fileData, success: function (data, textStatus, jqXHR) { if (data.hasFile == 'Y') { $('#file_div').show(); $('#fileUrl').text(data.fileName); $('#fileUrl').prop('href', data.fileUrl); } else { $('#file_div').hide(); } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); var appendName = "(" + obj.project_prmSerial + ") " + obj.project_name; var newOption = new Option(appendName, obj.project_prmSerial, true, true); $("#select2-data-remote").append(newOption).trigger('change'); //$("#select2-data-remote").trigger('change.select2'); } else { $("#rd2").prop("checked", true).trigger("click"); $('#prm_project_serial').hide(); $('#project_year_month_div').show(); $('#project_name_div').show(); $("#project_year").val(obj.project_year); $("#project_month").val(obj.project_month); $("#project_name").val(obj.project_name).trigger('change');; } $('#clientNewModal').modal('toggle'); } else { alert(data.message); if (data.err_code == "9999") { location.href = "/Home/Index"; } } }, error: function (jqXHR, textStatus, errorThrown) { alert('網路或伺服器發生錯誤,請稍後重試!'); } }); } }