abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理三 (二十一)

来源:https://www.cnblogs.com/chillsrc/archive/2019/10/09/11642618.html
-Advertisement-
Play Games

通過上一篇文章(abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理二 (二十))中,我們已經實現貨物信息管理功能所需要的服務類與控制器類,頁面呈現。在這一篇文章中我們來實現貨物信息管理所需要的前端功能,主要是通過javascript來實現。 ...


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實現倉儲管理系統——使用 WEBAPI實現CURD (十二)

 abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十三)

abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十四)

 abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十五)

abp(net core)+easyui+efcore實現倉儲管理系統——菜單-上 (十六)

 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之貨物管理二 (二十))中,我們已經實現貨物信息管理功能所需要的服務類與控制器類,頁面呈現。在這一篇文章中我們來實現貨物信息管理所需要的前端功能,主要是通過javascript來實現。

 

十、創建腳本文件

1. 在Visual Studio 2017的“解決方案資源管理器”中,找到領域層“ABP.TPLMS.Web.Mvc”項目中的wwwroot目錄下的view-resources目錄。使用滑鼠右鍵單擊此目錄,在彈出菜單中選擇“添加” > “新建文件夾”。並重命名為“Cargo”。

2. 在Visual Studio 2017的“解決方案資源管理器”中,滑鼠右鍵單擊“Cargo”文件夾,然後選擇“添加” > “新建項…”。 在“添加新項-ABP.TPLMS.Web.Mvc”對話框中,選擇“javascript文件”,並將名稱命名為cargomgr.js。如下圖。

 

3. 在cargomgr.js文件中,我們寫入貨物信息管理的前端功能腳本,具體代碼如下。

//------------------------系統功能-->貨物信息--------------------------------//
//刷新數據
function initable() {
    $("#dgCargo").datagrid({
        url: "/Cargo/List",
        title: "貨物管理",
        pagination: true,
        pageSize: 10,
        pageList: [10, 20, 30],
        fit: true,
        fitColumns: false,
        loadMsg: "正在載入貨物信息...",
        nowarp: false,
        border: false,
        idField: "Id",
        sortName: "Id",
        sortOrder: "asc",
        frozenColumns: [[//凍結列
            { field: "ck", checkbox: true, align: "left", width: 50 }
           ]],

        columns: [[
            { title: "編號", field: "Id", width: 50, sortable: true },
            { title: "供應商", field: "SupplierId", width: 80, sortable: true },           
            { title: "貨物代碼", field: "CargoCode", width: 100, sortable: true },
            { title: "貨物名稱", field: "CargoName", width: 80, sortable: false },
            { title: "規格型號", field: "Spcf", width: 100, sortable: false },
            { title: "產銷國", field: "Country", width: 80, sortable: false },
            { title: "計量單位", field: "Unit", width: 100, sortable: false },
            { title: "包裝", field: "Package", width: 100, sortable: false },
            { title: "單價", field: "Price", width: 100, sortable: false },
            { title: "幣制", field: "Curr", width: 80, sortable: false },
            { title: "長寬高", field: "Length", width: 100, sortable: false,  
formatter: function (value, row, index) { return row.Length + '*' + row.Width + '*' + row.Height ; } }, { title: "體積", field: "Vol", width: 80, sortable: false }, { title: "備註", field: "Remark", width: 80, sortable: false }, { field: 'CreateTime', title: '創建時間', width: 100, align: 'center' } ]] }); } function reloaded() { //reload $("#reload").click(function () { $('#dgCargo').datagrid('reload'); });} //修改點擊按鈕事件 function updCargoInfo() { $("#edit").click(function () { var row = $("#dgCargo").datagrid('getSelected'); if (row) { $.messager.confirm('編輯', '您想要編輯嗎?', function (r) { if (r) { showCargo(row); //打開對話框編輯 $("#divAddUpdCargo").dialog({ closed: false, title: "修改貨物信息", modal: true, width: 700, height: 450, collapsible: true, minimizable: true, maximizable: true, resizable: true, }); } }); } else { $.messager.alert('提示', ' 請選擇要編輯的行!', 'warning'); } }); } //刪除 function deleteCargo() { $("#del").click(function () { var rows = $("#dgCargo").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); } $.post("/Cargo/Delete", { "ids": codes.join(',') }, function (data) { if (data == "OK") { $.messager.alert("提示", "刪除成功!"); $("#dgCargo").datagrid("clearChecked"); $("#dgCargo").datagrid("clearSelections"); $("#dgCargo").datagrid("load", {}); } else if (data == "NO") { $.messager.alert("提示", "刪除失敗!"); return; } }); } }); } }) } //清空文本框 function clearAll() { $("#IDUpdate").val(""); $("#UpdCargoCode").val(""); $("#CreateTimeUpdate").val(getNowFormatDate()); $("#UnitUpdate").val(""); $("#CargoNameUpdate").val(""); } //獲取當前時間,格式YYYY-MM-DD function getNowFormatDate() { var date = new Date(); var seperator1 = "-"; var year = date.getFullYear(); var month = date.getMonth() + 1; var strDate = date.getDate(); if (month >= 1 && month <= 9) { month = "0" + month; } if (strDate >= 0 && strDate <= 9) { strDate = "0" + strDate; } var currentdate = year + seperator1 + month + seperator1 + strDate; return currentdate; } //彈出 添加貨物信息的對話框 function showCargoDialog() { $("#add").click(function () { clearAll(); $("#divAddUpdCargo").dialog({ closed: false, title: "添加貨物信息", modal: true, width: 700, height: 450, collapsible: true, minimizable: true, maximizable: true, resizable: true }); }); $("#btnSave").click(function () { // alert('1'); //啟用 //保存 var id = $("#IDUpdate").val(); if (id == "" || id == undefined) { //驗證 $.messager.confirm('確認', '您確認要保存嗎?', function (r) { if (r) { var postData = GetCargo(); if (postData == null || postData == undefined || postData.SupplierId == ""
|| postData.CargoCode == ""|| postData.CargoName == ""|| postData.Unit== "") { $.messager.alert('提示', ' 請填寫相關必填項!', 'warning'); return; } $.post("/Cargo/Add", postData, function (data) { // alert(data); var obj = JSON.parse(data); if (obj.result == "OK") { $("#IDUpdate").val(obj.Id) $("#divAddUpdCargo").dialog("close"); $.messager.alert("提示", "保存成功!"); initable(); } else if (obj.result == "NO") { $.messager.alert("提示", "保存失敗!"); return; } }); } }) } else { saveDetail(); } }); } function saveDetail() { $.messager.confirm('確認', '您確認要修改嗎?', function (r) { var postData = GetCargo(); if (postData==null || postData==undefined || postData.SupplierId == ""
|| postData.CargoCode == "") { $.messager.alert('提示', ' 請填寫相關必填項!', 'warning'); return; } $.post("/Cargo/Update", postData, function (data) { // alert(data);
var obj = JSON.parse(data);

                        if (obj.result == "OK") {

               if (data=="OK") {
                    $.messager.alert("提示", "修改成功!");                
                    $("#divAddUpdCargo").dialog("close");                  
                    initable();
                }
                else {
                    $.messager.alert("提示",  "修改失敗!");
                    return;
                }           

            });     

        })  
}

function GetCargo() {   
    var postData = {
        "id": $("#IDUpdate").val(),
        "CargoName": $("#CargoNameUpdate").val(),
        "CargoCode": $("#UpdCargoCode").val(),
        "CreationTime": $("#CreateTimeUpdate").val(),
        "SupplierId": $("#SupplierIdUpdate").val(),
        "Brand": $("#BrandUpdate").val(),
        "Country": $("#CountryUpdate").val(),
        "Curr": $("#CurrUpdate").val(),
        "GrossWt": $("#GrossWtUpdate").val(),
        "Height": $("#HeightUpdate").val(),
        "HSCode": $("#HSCodeUpdate").val(),
        "Length": $("#LengthUpdate").val(),
        "MaxNum": $("#MaxNumUpdate").val(),

        "MinNum": $("#MinNumUpdate").val(),
        "NetWt": $("#NetWtUpdate").val(),
        "Package": $("#PackageUpdate").val(),
        "Price": $("#PriceUpdate").val(),
        "Remark": $("#RemarkUpdate").val(),
        "Spcf": $("#SpcfUpdate").val(),
        "Unit": $("#UnitUpdate").val(),
        "UpdateTime": $("#CreateTimeUpdate").val(),

        "Vol": $("#VolUpdate").val(),
        "Width": $("#WidthUpdate").val(),
        "UpdOper": $("#SupplierIdUpdate").val()
    };
    return postData;

} 

function showCargo(row) { 

    $("#IDUpdate").val(row.Id);
    $("#CargoNameUpdate").val(row.CargoName);
    $("#UpdCargoCode").val(row.CargoCode);
    $("#CreateTimeUpdate").val(row.UpdateTime);
    $("#BrandUpdate").val(row.Brand);
    $("#CountryUpdate").val(row.Country);
    $("#CurrUpdate").val(row.Curr);
    $("#GrossWtUpdate").val(row.GrossWt);
    $("#HeightUpdate").val(row.Height);
    $("#HSCodeUpdate").val(row.HSCode);
    $("#LengthUpdate").val(row.Length);
    $("#MaxNumUpdate").val(row.MaxNum);
     $("#MinNumUpdate").val(row.MinNum);
    $("#NetWtUpdate").val(row.NetWt);
    $("#PackageUpdate").val(row.Package);
     $("#PriceUpdate").val(row.Price);
    $("#RemarkUpdate").val(row.Remark);
    $("#SpcfUpdate").val(row.Spcf);
    $("#UnitUpdate").val(row.Unit);
    $("#VoleUpdate").val(row.Vol);
    $("#WidthUpdate").val(row.Width);
}

function calcSumVol(){    
    var vol = 0;
    var len = $("#LengthUpdate").val();
    var height = $("#HeightUpdate").val();
    var width = $("#WidthUpdate").val();

    //計算體積
   var l = parseFloat(len);
    var h = parseFloat(height);
    var w = parseFloat(width);
    vol = ((l * h * w)/(100*100*100)).toFixed(3);  

    $("#VolUpdate").val(vol);
}

function init() {
    $("#LengthUpdate").blur(function () {
        calcSumVol();
    });
    $("#HeightUpdate").blur(function () {
        calcSumVol();
    });
    $("#WidthUpdate").blur(function () {
        calcSumVol();
    });
}

//------------------------系統功能-->貨物信息結束----------------------------//

 

4. 在Visual Studio 2017的“解決方案資源管理器”中,找到“ABP.TPLMS.Web.Mvc”項目中的Views目錄下的Cargo目錄中的Index.cshtml文件。雙擊打開此文件,在文件的頂部寫入以下代碼,引用腳本。具體位置參見前一篇文章。

@section scripts
    {
    <script src="~/view-resources/Views/Cargo/cargomgr.js" asp-append-version="true"></script>
    <script type="text/javascript">
        $(function () {
            initable();
            init();
            reloaded();
            updCargoInfo();
            showCargoDialog();
            deleteCargo();
        });
    </script>
}

 

 

 


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

-Advertisement-
Play Games
更多相關文章
  • composer是什麼 composer是PHP的插件依賴管理工具,我個人感覺和java的Maven、Gradle很類似。 Windows OS下安裝composer 參考: https://www.php.cn/php weizijiaocheng 400785.html https://blog ...
  • 聊起中斷,大家可能最熟悉的例子就是線程休眠。下麵就是一個線程休眠的 demo,在這個例子中,當我們調用 方法,該方法將會拋出一個需要捕獲的中斷異常,這裡捕獲該異常並直接返回。 java for (int i = 0; i An interrupt is an indication to a thre ...
  • 使用Mybatis查詢客戶端信息 前面的例子使用了預設的jdbc配置來動態從資料庫查詢客戶端信息,下麵來改用更加靈活的mybatis來實現,改用mybatis,首先pom中換成mybatis的依賴: 然後新建一個實體類,並實現查詢需要的 ClientDetails 介面: 由於介面預設需要實現的方法 ...
  • 類型和變數 [C#類型和變數(原文參考官方教程)]https://docs.microsoft.com/zh-cn/dotnet/csharp/tour-of-csharp/types-and-variables C#有兩種類型: 1. 值類型 1. 簡單類型 2. 枚舉類型 格式為 enum E ...
  • 委托 1. C# 中的委托類似於 C 或 C++ 中指向函數的指針。委托表示引用某個方法的引用類型變數,運行時可以更改引用對象。 2. 特別地,委托可以用於處理事件或回調函數。並且,所有的委托類都是從 System.Delegate 類繼承而來。 聲明委托的語法規則:(被委托所引用的方法需有相同的參 ...
  • C#程式計算N階行列式的值及N元一次方程組 用了挺長時間自行完成了C#程式計算N階行列式的值及N元一次方程組。由於自己沒有在網上查閱其他資料,所以只能硬著頭皮用最朴素的思想和基礎的演算法進行編程。在給出代碼之前,我先簡單發表一些自己的粗鄙之見。。。 1.數學思想:有了線性代數中高斯提供的公式,我們很容 ...
  • 點這裡進入ABP進階教程目錄 添加實體 打開領域層(即JD.CRS.Core)的Entitys目錄 //用以存放實體對象添加一個類StatusCode.cs //狀態信息 1 using System; 2 using System.Collections.Generic; 3 using Syst ...
  • 場景 WInforn中設置ZedGraph的焦點顯示坐標格式化以及顯示三個坐標數的解決辦法: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102466190 Winform中實現ZedGraph的多條Y軸(附源碼下載): htt ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...