ZR.Admin小改和VUE3版本體驗

資料酷軟體發表於2023-04-11

前言

孔乙己顯出極高興的樣子,將兩個指頭的長指甲敲著櫃檯,點頭說:“對呀,對呀!......回字有四樣寫法,你知道麼?”

大家好,我是44歲的大齡程式設計師碼農阿峰。阿峰從事程式設計二十年了,雖然沒有成為架構師,卻也用過很多種架構。幾年前開始研究JAVA企業級快速開發框架若依,後來發現了它的.net 版本實現-ZR.Admin。從此一發不可收拾,崇拜的五體投地。對它作了些改動,記錄下來。

以下是我自願加的廣告

## ? 線上體驗

- 官方檔案:http://www.izhaorui.cn/doc
- vue3.x 版本體驗:http://www.izhaorui.cn/vue3
- vue2.x 版本體驗:http://www.izhaorui.cn/admin
- 賬號密碼:admin/123456 

## ? 程式碼倉庫

| 倉庫        | Github | Gitee                                                            |
| ----------- | ------ | ---------------------------------------------------------------- |
| Vue2 + Net5 |        | [克隆/下載](https://gitee.com/izory/ZrAdminNetCore/)             |
| Vue3        |        | [克隆/下載](https://gitee.com/izory/ZRAdmin-vue)                 |
| Vue2 + Net7 |        | [克隆/下載](https://gitee.com/izory/ZrAdminNetCore/tree/net7.0/) |

## ? 前端技術

Vue 版前端技術棧 :基於 vue2.x/vue3.x、vuex、vue-router 、vue-cli 、axios、 element-ui、echats、i18n 國際化等,前端採用 vscode 工具開發

## ? 後端技術

- 核心框架:.Net5.0/.Net7.0 + Web API + sqlsugar + swagger + signalR + IpRateLimit + Quartz.net + Redis
- 定時計劃任務:Quartz.Net 元件,支援執行程式集或者 http 網路請求
- 安全支援:過濾器(資料許可權過濾)、Sql 注入、請求偽造
- 日誌管理:NLog、登入日誌、操作日誌、定時任務日誌
- 工具類:驗證碼、豐富公共功能
- 介面限流:支援介面限流,避免惡意請求導致服務層壓力過大
- 程式碼生成:高效率開發,程式碼生成器可以一鍵生成所有前後端程式碼
- 資料字典:支援資料字典,可以方便對一些狀態進行管理
- 分庫分表:使用 orm sqlsugar 可以很輕鬆的實現分庫分庫效能優越
- 多 租 戶:支援多租戶功能
- 快取資料:內建記憶體快取和 Redis

本文主要內容

  1. WEBAPI的預設路由改回swagger的介面列表
  2. 支援實體類主鍵是GUID 

1).WEBAPI的預設路由改回swagger的介面列表

 /// <summary>
        /// hello
        /// </summary>
        /// <returns></returns>
        [Route("/")]
        [HttpGet]
        public IActionResult Index()
        {
            return Ok("看到這裡頁面說明你已經成功啟動了本專案:)\n\n" +
                "如果覺得專案有用,打賞作者喝杯咖啡作為獎勵\n☛☛http://www.izhaorui.cn/doc/support.html\n");
        }

我覺得自己很不厚道。原作者只是提醒一下用他程式碼的人 “如果覺得專案有用,打賞作者喝杯咖啡作為獎勵”。這是應該的,但是我目前失業中,等我接大學生畢業設計賺了錢我會補上的!對作者的辛勤付出表示衷心的感謝!

 

因為作者把預設路由搞成了這個,那程式集釋出和部署完就會被路由到這裡,開啟一個網頁就是這句話。所以對不住了直接移除即可。

2).實體類或資料庫表主鍵支援GUID

這個更簡單,ZR.ADMIN是使用SqlSugar來做ORM元件的

  [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
   public int Cid { get; set; }

一般是使用的自增型別的整數型別來作主鍵的,而我自己經常是用GUID的,類似這樣:

  /// <summary>
        /// 描述 :主鍵 (產品ID)      
        /// </summary>
        [EpplusTableColumn(Header = "主鍵")]
        [SugarColumn(IsPrimaryKey = true, IsIdentity = false, ColumnName = "product_ID")]
        public string ProductId { get; set; }
  /// <summary>
        /// 刪除產品資訊
        /// </summary>
        /// <returns></returns>
        [HttpDelete("{ids}")]
        [ActionPermissionFilter(Permission = "trackingdict:mtsproduct:delete")]
        [Log(Title = "產品資訊", BusinessType = BusinessType.DELETE)]
        public IActionResult DeleteMtsProduct(string ids)
        {
            string[] idsArr = Tools.SpitGuidArrary(ids);
            if (idsArr.Length <= 0) { return ToResponse(ApiResult.Error($"刪除失敗Id 不能為空")); }

            var response = _MtsProductService.Delete(idsArr);

            return ToResponse(response);
        }


        public static int[] SpitIntArrary(string str, char split = ',')
        {
            if (string.IsNullOrEmpty(str)) { return Array.Empty<int>(); }
            string[] strIds = str.Split(split, (char)StringSplitOptions.RemoveEmptyEntries);
            int[] infoIdss = Array.ConvertAll(strIds, s => int.Parse(s));
            return infoIdss;
        }
        /// <summary>
        /// 拆分多個GUID
        /// </summary>
        /// <param name="str"></param>
        /// <param name="split"></param>
        /// <returns></returns>
        public static string[] SpitGuidArrary(string str, char split = ',')
        {
            if (string.IsNullOrEmpty(str)) { return Array.Empty<string>(); }
            string[] strIds = str.Split(split, (char)StringSplitOptions.RemoveEmptyEntries);
            string[] infoIdss = Array.ConvertAll(strIds, s => s.ToUpper());
            return infoIdss;
        }

直接看上面的程式碼吧,把程式碼生成器生成的"SpitIntArrary"改成“SpitGuidArrary”即可。

3)VUE3版本前端的體驗

速度挺快的,體驗也還行,就是有些不習慣,覺得不夠成熟,另外不想花太多的學習成本去學習,VUE2還不熟練呢。

 

文章就此結束,其實單純想幫ZR.ADMIN做個廣告。聊表心意!

相關文章