abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之八(三十四)

来源:https://www.cnblogs.com/chillsrc/archive/2020/01/09/12173698.html
-Advertisement-
Play Games

在上面文章abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之七(三十三) 的學習之後,我們知道了ABP自動幫助我們生成了WebAPI介面,接下我們通過修改腳本文件中的新增、更新與刪除功能的腳本,通過這些WebAPI介面實現增刪改... ...


abp(net core)+easyui+efcore實現倉儲管理系統目錄

abp(net core)+easyui+efcore實現倉儲管理系統——ABP總體介紹(一) abp(net core)+easyui+efcore實現倉儲管理系統——解決方案介紹(二) abp(net core)+easyui+efcore實現倉儲管理系統——領域層創建實體(三)  abp(net core)+easyui+efcore實現倉儲管理系統——定義倉儲並實現 (四)

abp(net core)+easyui+efcore實現倉儲管理系統——創建應用服務(五)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之控制器(六) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之列表視圖(七) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改視圖(八) abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之菜單與測試(九) abp(net core)+easyui+efcore實現倉儲管理系統——多語言(十) abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十一) abp(net core)+easyui+efcore實現倉儲管理系統——菜單-上 (十六)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理一 (十九) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理八(二十六)  abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之一(二十七) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之二(二十八) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之三(二十九) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之四(三十) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之五(三十一) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之六(三十二) abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之七(三十三)

    在上面文章abp(net core)+easyui+efcore實現倉儲管理系統——ABP WebAPI與EasyUI結合增刪改查之七(三十三) 的學習之後,我們知道了ABP自動幫助我們生成了WebAPI介面,接下我們通過修改腳本文件中的新增、更新與刪除功能的腳本,通過這些WebAPI介面實現增刪改功能,而不是通過Controller來實現。

 

十四、修改新增、更新與刪除腳本

    1. 在Visual Studio 2017的“解決方案資源管理器”中,找到領域層“ABP.TPLMS.Web.Mvc”項目中的wwwroot目錄下的view-resources\orgs目錄中的找到Index.js文件

    2. 在Index.js文件中,我們寫入完整的腳本代碼。代碼如下:

//------------------------組織管理-->組織信息---------------------------------//
//刷新數據
function initable() {
    $("#dgOrg").treegrid({
        url: "/Orgs/List",
        title: "組織管理",
        pagination: false,
        fit: true,
        fitColumns: false,
        loadMsg: "正在載入組織信息...",
        nowarp: false,
        border: false,
        idField: "Id",
        sortName: "Id",
        sortOrder: "asc",
        treeField: "Name",
        frozenColumns: [[//凍結列
            {
                field: "chk", checkbox: true, align: "left", width: 50
            }           

        ]],
        columns: [[
            { title: "編號", field: "Id", width: 50, sortable: true },
            { title: "組織名稱", field: "Name", width: 200, sortable: true },
            { title: "代碼", field: "BizCode", width: 100, sortable: true },
            { title: "海關代碼", field: "CustomCode", width: 100, sortable: true },
            { title: "狀態", field: "Status", width: 80, sortable: false },
            { title: "類型", field: "Type", width: 80, sortable: false },
            { title: "父節點", field: "ParentName", width: 120, sortable: false },
            { title: '創建時間', field: 'CreationTime', width: 130, align: 'center' }
        ]]   
 });
}

function reloaded() {   //reload

    $("#reload").click(function () {
        $('#dgOrg').treegrid('reload');
    });
} 

//修改點擊按鈕事件
function updOrgInfo() {   

    $("#edit").click(function () {
BindTree();

        //判斷選擇的中
        var row = $("#dgOrg").treegrid('getSelected');       
        if (row) {        

            $.messager.confirm('編輯', '您想要編輯嗎?', function (r) {
                if (r) {                
                    //先綁定                   
                    showOrg(row);                 

                     //打開對話框編輯
                    $("#divAddUpdOrg").dialog({
                        closed: false,
                        title: "修改組織信息",
                        modal: true,
                        width: 600,
                        height: 450,
                        collapsible: true,
                        minimizable: true,
                        maximizable: true,
                        resizable: true,
                    });  
                }        
            });
        } else {
            $.messager.alert('提示', ' 請選擇要編輯的行!', 'warning');

        }
    });   
}

//刪除
function deleteOrg() {
    $("#del").click(function () {
        var rows = $("#dgOrg").datagrid("getSelections");
        if (rows.length > 0) {
            $.messager.confirm("提示", "確定要刪除嗎?", function (res) {
                if (res) {
                    var codes = []; //重要不是{}
                    for (var i = 0; i < rows.length; i++) {
                        codes.push(rows[i].Id);
                        _orgService.delete({
                            id: rows[i].Id
                        }).done(function () {
                            $.messager.alert("提示", "刪除成功!");
                            $("#dgOrg").datagrid("clearChecked");
                            $("#dgOrg").datagrid("clearSelections");
                            $('#dgOrg').treegrid('reload');
                        });
                    }   
                }
            });
        }
    })
}

//清空文本框
function clearAll() {
    $("#IDUpdate").val("");
    $("#UpdBizCode").val("");
    $("#NameUpdate").val("");
    $("#UpdCustomCode").val("");
    $(':input[name]', this).each(function () {
            $(this).val("");
        });

}

var _orgService = abp.services.app.org;
var _$modal = $("#divAddUpdOrg").parent();
var _$form = _$modal.find('form');

//彈出 添加對話框
function showOrgDialog() {   

    $("#add").click(function () {
        clearAll();    
       BindTree();

        $("#divAddUpdOrg").dialog({
            closed: false,
            title: "添加組織信息",
            modal: true,
            width: 600,
            height: 450,
            collapsible: true,
            minimizable: true,
            maximizable: true,
            resizable: true
        });
    });

 

    $("#btnSave").click(function () {
            //保存
        if (!_$form.valid()) {
            return;
        }
        var id = $("#IDUpdate").val();
        if (id == "" || id == undefined || id=="0") {
            //驗證
            $.messager.confirm('確認', '您確認要保存嗎?', function (r) {
                if (r) {

                    $("#IDUpdate").val("0");
                    var postData = _$form.serializeFormToObject(); //serializeFormToObject is defined in main.js
                    if (postData == null || postData == undefined || postData.Name == "" || postData.BizCode == "") {
                        $.messager.alert('提示', ' 請填寫相關必填項!', 'warning');

                        return;
                    }

                    abp.ui.setBusy(_$modal);
                    _orgService.create(postData).done(function () {                                                               

                        $.messager.alert("提示", "保存成功!");
                        $("#IDUpdate").val("");
                        _$modal.modal('hide');
                        $("#divAddUpdOrg").dialog("close");
                        initable(); //reload page to see new user!

                    }).always(function () {
                         abp.ui.clearBusy(_$modal);

                        });
                   }
}) }
else { saveDetail(); } }); } function saveDetail() { if (!_$form.valid()) { return; } $.messager.confirm('確認', '您確認要修改嗎?', function (r) { var postData = _$form.serializeFormToObject(); if (postData==null || postData==undefined || postData.BizCode == "" || postData.Name == "") { $.messager.alert('提示', ' 請填寫相關必填項!', 'warning'); return; } abp.ui.setBusy(_$modal); _orgService.update(postData).done(function () { $.messager.alert("提示", "修改成功!"); _$modal.modal('hide'); $("#divAddUpdOrg").dialog("close"); initable(); //reload page to see new user! }).always(function () { abp.ui.clearBusy(_$modal); }); }) } function showOrg(row) { $("#IDUpdate").val(row.Id); $("#NameUpdate").val(row.Name); $("#UpdBizCode").val(row.BizCode); $("#UpdType").val(row.Type); $("#UpdCustomCode").val(row.CustomCode); $("#UpdIsAutoExpand").val(row.IsAutoExpand); $("#UpdIsLeaf").val(row.IsLeaf); $("#UpdStatus").val(row.Status); $("#UpdHotKey").val(row.HotKey); $("#UpdIconName").val(row.IconName); $("#RemarkUpdate").val(row.Remark); $("#AddTree").combotree('setValue', row.ParentId); $("#AddTree").combotree('setText', row.ParentName); $('#UpdParentName').val(row.ParentName); } function BindTree() { $('#AddTree').combotree({ url: '/Orgs/GetJsonTree', valueField: 'Id', textField: 'Name', multiple: false, editable: false, method: 'get', panelHeight: 'auto', checkbox: false, //required: true, //全部摺疊 onLoadSuccess: function (node, data) { $('#AddTree').combotree('tree').tree("expandAll"); //collapseAll }, onSelect: function (node) { $('#UpdParentName').val(node.text); } }); } //------------------------系統管理-->組織信息結束------------------------------//
    3. 在Visual Studio 2017的“解決方案資源管理器”中,找到“ABP.TPLMS.Web.Mvc”項目中的Views目錄下的Org目錄中的Index.cshtml文件。雙擊打開此文件,在文件的頂部寫入以下代碼,引用腳本。
@section scripts
    {
    <script src="~/view-resources/Views/orgs/Index.js" asp-append-version="true"></script>
    <script type="text/javascript">
    
        $(function () {
            initable();
            reloaded();
            updOrgInfo();
            showOrgDialog();
            deleteOrg();

        });
    </script>
}

  

 

 

十五、測試修改與刪除組織部門信息

    1.在Visual Studio 2017的解決方案資源管理器中,按F5運行應用程式。

    2.在瀏覽器中的地址欄中輸入“http://localhost:5000/”,然後輸入管理員用戶名進行登錄。

    3.在主界面的菜單中,選擇“Business->組織管理”菜單項,瀏覽器中呈現一個組織信息列表與四個按鈕。

     4.然後在組織信息列表中選中一條貨物信息,然後使用滑鼠點擊“修改”按鈕,對組織信息進行修改。如下圖。

 

     5.對於貨物信息進行修改完成之後,點擊“保存”按鈕,彈出一個“您確認要修改嗎?”對話框。點擊對話框中的“確定”按鈕。如下圖。

     6.如果修改成功,會有一個“修改成功”的提示信息,同時更新組織信息列表。如下圖。

 

    7.在組織信息列表中選中一條貨物信息,然後使用滑鼠點擊“刪除”按鈕。會彈出一個“您確認要刪除嗎?”對話框。點擊對話框中的“確定”按鈕。如下圖。

 

    8.如果刪除成功,會有一個“刪除成功!”的提示信息,同時更新組織信息列表。如下圖。

 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • django的model欄位在保存的時候做預處理怎麼辦? 比如這個model: class Book(Model): publish_date = DateField() 但是在保存時,用戶輸入數據是: book1 = Book(publish_date='20171001') 我希望這個publi ...
  • 簡單寫一下多對多查詢model 不是多對多的欄位我就沒寫上來的 class Tag(models.Model): name = models.CharField(max_length=20,verbose_name='標簽') add_time = models.DateField(default= ...
  • PHP+InfiniteScroll實現網頁無限滾動載入數據實例,實現原理:當滾動條到底離網頁底部一定長度的時候,向後臺發送頁數並獲取數據。 ...
  • """ 返回查詢集的方法稱為過濾器 all() 返回查詢集中所有數據 filter() 返回符合條件的數據 一、filter(鍵=值) 二、filter(鍵=值,鍵=值) #兩個關係為and 三、filter(鍵=值).filter(鍵=值) #兩個關係為and exclude()過濾掉符合邏輯的數 ...
  • from django.db import models class Blog(models.Model): name = models.CharField(max_length=100) tagline = models.TextField() def __str__(self): # __uni ...
  • 簡介 locale.h 頭文件定義了特定地域的設置,比如日期格式和貨幣符號。接下來我們將介紹一些巨集,以及一個重要的結構 struct lconv 和兩個重要的函數。 庫巨集 下麵列出了頭文件 locale.h 中定義的巨集,這些巨集將在下列的兩個函數中使用: | 序號 | 巨集 & 描述 | | : | : ...
  • 小伙伴們別急著立 Flag,讓員外幫你分析一下哪些技術正流行、哪些技術已過時後再立也不遲。時勢造英雄,技術也是一樣,新的技術層出不窮,要真正做到順勢而為卻又不隨波逐流(少學點保護頭髮)。 ...
  • 奮鬥沒有終點 ! 好好學習72變,因為將來 沒有人能替你阻擋81難 。 生如螻蟻,當有鴻鵠之志; 命如紙薄,應有不屈之心 。 ​ 今天被這句話觸動了,所以開篇分享給大家。雞湯有毒,但有時大家卻靠它激勵自己繼續前行! python開發GUI 程式員的自我救贖,使用python開發性格分析工具 這篇文章 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...