From 8e498fc28217bbca7f8ef608f77d4fcca2cd2a95 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=98=89=E7=A5=A5=20=E8=A9=B9?= Date: Sat, 3 Aug 2024 00:39:39 +0800 Subject: [PATCH] updates --- Views/Home/RateList.cshtml | 57 +++++- wwwroot/assets/javascript/custom/globalJS.js | 14 +- wwwroot/assets/javascript/custom/ratelist.js | 191 ++++++++++++++++++- 3 files changed, 255 insertions(+), 7 deletions(-) diff --git a/Views/Home/RateList.cshtml b/Views/Home/RateList.cshtml index c3a2560f..8c9c491f 100644 --- a/Views/Home/RateList.cshtml +++ b/Views/Home/RateList.cshtml @@ -147,8 +147,9 @@ 子項目名稱 - - + 單價 + 單位 + @@ -164,4 +165,56 @@ + + + +
+
\ No newline at end of file diff --git a/wwwroot/assets/javascript/custom/globalJS.js b/wwwroot/assets/javascript/custom/globalJS.js index 90e47584..e895d72b 100644 --- a/wwwroot/assets/javascript/custom/globalJS.js +++ b/wwwroot/assets/javascript/custom/globalJS.js @@ -335,4 +335,16 @@ function TextAreaLength(item, length) { if (item.value.length > length) { item.value = item.value.substring(0, length); } -} \ No newline at end of file +} + +function thousands(value) { + if (value) { + value += ""; + var arr = value.split("."); + var re = /(\d{1,3})(?=(\d{3})+$)/g; + + return arr[0].replace(re, "$1,") + (arr.length == 2 ? "." + arr[1] : ""); + } else { + return '' + } +} \ No newline at end of file diff --git a/wwwroot/assets/javascript/custom/ratelist.js b/wwwroot/assets/javascript/custom/ratelist.js index a048e4b6..cf2063b8 100644 --- a/wwwroot/assets/javascript/custom/ratelist.js +++ b/wwwroot/assets/javascript/custom/ratelist.js @@ -8,7 +8,11 @@ var subItemRowID; var subItemRowPos; $(document).ready(function () { deptList(); - + + $('#subItemListNewBtn').on('click', function () { + $("#clientSubItem_method").val('add'); + $('#clientSubItemModal').modal('toggle'); + }); $('#maintItemNewModal').on('click', function () { $("#mainItem_method").val('add'); @@ -69,7 +73,82 @@ $(document).ready(function () { }); }); - + $('#clientSubItemSaveBtn').on('click', function () { + var mainItem_uid = $('#subItemList_mainItem_uid').val(); + var subItem_uid = $('#clientSubItem_subItem_uid').val(); + var method = $('#clientSubItem_method').val(); + var subItem_name = $('#modal_subItem_name').val(); + var subItem_descript = $('#modal_subItem_descript').val(); + var subItem_price = $('#modal_subItem_price').val(); + var subItem_unitType = $('#modal_subItem_unitType').val(); + var dept_uid = $("#dept_select").val(); + + var msg = ''; + + if (subItem_name == '') { + msg += '請輸入次項目名稱!\n'; + } + + if (subItem_price == '') { + msg += '請輸入單價!\n'; + } else { + if (subItem_price.isNumber() == false) { + msg += '單價必須為數字!\n'; + } + } + + if (subItem_unitType == '') { + msg += '請輸入次項目的單位!\n'; + } + + if (msg != '') { + alert(msg); + return; + } + + var formData = { + mainItem_uid: mainItem_uid, + subItem_uid: subItem_uid, + method: method, + subItem_name: subItem_name, + subItem_descript: subItem_descript, + subItem_price: subItem_price, + subItem_unitType: subItem_unitType, + dept_uid: dept_uid + } + + $.ajax({ + url: "/AuthApi/addEditDelGetSubItem", + type: "post", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + var obj = data.subItems[0]; + + if (method == "add") { + subItemTable.fnAddData(obj); + } + + if (method == "edit") { + subItemTable.fnUpdate(obj, subItemRowPos); + } + + + + $('#clientSubItemModal').modal('toggle'); + } else { + alert(data.message); + + if (data.err_code == "99999") { + location.href = "/Root/Login"; + } + } + }, + error: function (jqXHR, textStatus, errorThrown) { + alert('網路或伺服器發生錯誤,請稍後重試!'); + } + }); + }); }); @@ -135,6 +214,8 @@ function loadSubItemDataTable() { searching: true, columns: [ { data: 'subItem_name', className: 'align-top text-left', orderable: true, searchable: true }, + { data: 'subItem_price', className: 'align-top text-right', orderable: true, searchable: true }, + { data: 'subItem_unitType', className: 'align-top text-right', orderable: true, searchable: true }, { data: 'subItem_uid', className: 'align-top text-center', orderable: false, searchable: false } ], columnDefs: [ @@ -145,13 +226,26 @@ function loadSubItemDataTable() { searchable: true, render: function render(data, type, row, meta) { - - return '' + row.subItem_name + ''; + return row.subItem_name; + //return '' + row.subItem_name + ''; } }, { targets: 1, + className: 'align-middle text-right', + orderable: true, + searchable: true, + render: function render(data, type, row, meta) { + + return thousands(row.subItem_price); + //return '' + row.subItem_name + ''; + + } + }, + { + targets: 3, + className: 'align-middle text-center', orderable: false, searchable: false, render: function render(data, type, row, meta) { @@ -363,6 +457,93 @@ function deptList() { }); } +function buttonSubItemClick(obj) { + var type = obj.getAttribute('data-method'); + var uid = obj.getAttribute('data-uid'); + var dept_uid = $('#dept_select').val(); + var mainItem_uid = $('#subItemList_mainItem_uid').val(); + + subItemRowID = $('#' + uid); + + subItemRowPos = subItemTable.fnGetPosition($('#' + uid)[0]); + + if (type == "edit") { + var formData = { + method: 'get', + mainItem_uid: mainItem_uid, + subItem_uid: uid, + dept_uid: dept_uid + } + + $.ajax({ + url: "/AuthApi/addEditDelGetSubItem", + type: "post", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + var obj = data.subItems[0]; + + $("#clientSubItem_method").val('edit'); + $("#clientSubItem_subItem_uid").val(obj.subItem_uid); + $("#modal_subItem_name").val(obj.subItem_name).trigger('change'); + + $("#modal_subItem_descript").val(obj.subItem_descript).trigger('change'); + $("#modal_subItem_price").val(obj.subItem_price).trigger('change'); + $("#modal_subItem_unitType").val(obj.subItem_unitType).trigger('change'); + + $('#clientSubItemModal').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('確定刪除此筆子項目資料? ')) { + + var formData = { + method: 'del', + mainItem_uid: mainItem_uid, + subItem_uid: uid, + dept_uid: dept_uid + } + + $.ajax({ + url: "/AuthApi/addEditDelGetSubItem", + type: "post", + data: formData, + success: function (data, textStatus, jqXHR) { + if (data.ret == "yes") { + var row = subItemTable.api().row(subItemRowID).remove().draw(false); + alert('刪除成功'); + + } 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'); @@ -394,6 +575,8 @@ function buttonClick(obj) { $('#dt-responsive-subItem').dataTable().fnAddData(obj); } $('#mainItemTitle').val(mainItem_name + ' 的子項目列表').trigger('change'); + + $('#subItemList_mainItem_uid').val(uid); $('#clientSubItemListModal').modal('toggle'); } else { alert(data.message);