ShenNiusModularity項目源碼學習(20:ShenNius.Admin.Mvc項目分析-5)

??ShenNiusModularity項目的系統管理模塊主要用于配置系統的用戶、角色、權限、基礎數據等信息,上篇文章中學習的日志列表頁面相對獨立,而后面幾個頁面之間存在依賴關系,如角色頁面依賴菜單頁面定義菜單列表以便配置角色的權限,用戶頁面依賴角色頁面定義角色以便配置用戶角色,而用戶頁面則依賴租戶頁面定義租戶以便配置用戶所屬租戶,因此近幾篇文章的大致學習順序為租戶管理頁面、菜單列表頁面、角色列表頁面、用戶列表頁面,本文學習并記錄租戶管理頁面的實現方式。
??之前沒有接觸過多租戶模式,學習本項目過程中查了一下多租戶的概念,一般是指允許多個用戶(租戶)共享同一系統實例,同時保持數據與配置的隔離性,主要實現方式包括:獨立數據庫模式、共享數據庫-獨立Schema模式、共享數據庫-共享Schema模式,ShenNiusModularity項目應該屬于最后一種方式,其數據庫中幾乎每張表中都要記錄所屬TenantId,通過程序確保不同租戶之間的數據隔離,而租戶管理頁面專門用于定義及維護系統中可用的租戶信息。
??租戶管理頁面的布局比較簡單,上方為工具欄,支持新增和刪除操作,下方為分頁顯示數據表格區域,支持單行編輯和刪除操作。

在這里插入圖片描述
在這里插入圖片描述

??租戶管理頁面的文件為Index.cshtml,位于ShenNius.Mvc.Admin項目的Areas\Sys\Views\Tenant文件夾內,同文件夾內還有Modify.cshtml文件,用于新建或編輯單條租戶數據。租戶管理的后臺控制器類為同項目內的TenantController,使用的WebApi位于ShenNius.Admin.API的Controllers\Sys\TenantController類內,提供添加/編輯租戶、刪除/軟刪除租戶、獲取/分頁獲取所有租戶、切換租戶等接口服務。
??頁面加載后,先是調用layui的table.render函數分頁加載數據(項目中common.js文件封裝了項目常用的js操作函數),同時以開關樣式顯示“是否當前租戶”列。
??分別定義時間處理函數處理工具欄按鈕點擊事件及數據行中的按鈕點擊事件,新建和編輯按鈕調用的都是Modify.cshtml頁面,而刪除按鈕的話,點擊工具欄中的刪除按鈕,處理邏輯是將選中的記錄軟刪除,后續還能在回收站中恢復,而點擊數據行中的刪除按鈕,則是直接刪除數據庫中的數據,無法恢復。

在這里插入圖片描述

??Modify.cshtml頁面如下圖所示,按頁面支持點擊下一步和上一步按鈕切換頁面內容,但從頁面代碼來看,其實就是將上一步、下一步的內容分為兩個div,點擊上一步或者下一步按鈕時隱藏或顯示某一div,同時隱藏或顯示“上一步“或者“下一步”按鈕。
在這里插入圖片描述

??頁面布局及切換代碼如下所示,
在這里插入圖片描述
在這里插入圖片描述
??Modify.cshtml頁面支持上傳圖片,主要調用ShenNius.Admin.API項目下的UploadController控制器類上傳文件并返回文件路徑。
??租戶信息新建或者維護完成后,點擊“確認保存”按鈕保存信息,根據當前頁面中是否與租戶id判斷到底是新建還是編輯,然后調用相應的WebApi保存數據,并返回租戶管理主頁面,同時刷新主頁面中表格區域的數據。

在這里插入圖片描述

參考文獻:
[1]https://gitee.com/shenniu_code_group/shen-nius.-modularity
[2]https://baike.baidu.com/item/%E5%A4%9A%E7%A7%9F%E6%88%B7%E6%8A%80%E6%9C%AF/10061761

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77931.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77931.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77931.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JavaFX 實戰:從零打造一個功能豐富的英文“劊子手”(Hangman)游戲

大家好!今天我們要挑戰一個經典的單詞猜謎游戲——“劊子手”(Hangman),并使用 JavaFX 這個強大的 GUI 工具包來賦予它現代化的交互體驗。這個項目不僅有趣,而且是學習和實踐 JavaFX 核心概念的絕佳途徑,涵…

【自我介紹前端界面分享】附源碼

我用夸克網盤分享了「800套HTML模板」&#xff0c;鏈接&#xff1a;https://pan.quark.cn/s/a205a794552c <!DOCTYPE HTML> <html> <head> <title>Miniport</title> <meta http-equiv"content-type" content&q…

安寶特分享|AR智能裝備賦能企業效率躍升

AR裝備開啟智能培訓新時代 在智能制造與數字化轉型浪潮下&#xff0c;傳統培訓體系正面臨深度重構。安寶特基于工業級AR智能終端打造的培訓系統&#xff0c;可助力企業構建智慧培訓新生態。 AR技術在不同領域的助力 01遠程指導方面 相較于傳統視頻教學的單向輸出模式&#x…

今日html筆記

原手寫筆記 ------------------------------------------------------------------------------------------------------- 關于超鏈接的使用 <a href"https://www.luogu.com.cn/" target"_blank">//href屬性指定了超鏈接的目標地址,即當用戶點擊超…

【人工智能】Ollama 負載均衡革命:多用戶大模型服務的高效調度與優化

《Python OpenCV從菜鳥到高手》帶你進入圖像處理與計算機視覺的大門! 解鎖Python編程的無限可能:《奇妙的Python》帶你漫游代碼世界 在 多用戶大模型推理 場景下,負載均衡 是確保高并發、低延遲的關鍵挑戰。本文以 Ollama(一個流行的本地大模型運行框架)為例,深入探討 …

線上救急-AWS限頻

線上救急-AWS限頻 問題 在一個天氣炎熱的下午&#xff0c;我正喝著可口可樂&#xff0c;悠閑地看著Cursor生成代碼&#xff0c;忽然各大群聊中出現了加急?全體的消息&#xff0c;當時就心里一咯噔&#xff0c;點開一看&#xff0c;果然&#xff0c;線上服務出問題&#xff0…

Maven 項目中引入本地 JAR 包

在日常開發過程中&#xff0c;我們有時會遇到一些未上傳到 Maven 中央倉庫或公司私有倉庫的 JAR 包&#xff0c;比如第三方提供的 SDK 或自己編譯的庫。這時候&#xff0c;我們就需要將這些 JAR 包手動引入到 Maven 項目中。本文將介紹兩種常見方式&#xff1a;將 JAR 安裝到本…

解鎖webpack:對html、css、js及圖片資源的抽離打包處理

面試被問到webpack&#xff0c;可別只知道說 HtmlWebpackPlugin 了哇。 前期準備 安裝依賴 npm init -y npm install webpack webpack-cli --save-dev配置打包命令 // package.json {"scripts": {// ... 其他配置信息"build": "webpack --mode pr…

SpringBoot整合SSE,基于okhttp

一、引入依賴 <dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.10.0</version> </dependency> <dependency><groupId>com.squareup.okhttp3</groupId><…

【哈希表】1399. 統計最大組的數目

1399. 統計最大組的數目 - 力扣&#xff08;LeetCode&#xff09; 給你一個整數 n 。請你先求出從 1 到 n 的每個整數 10 進制表示下的數位和&#xff08;每一位上的數字相加&#xff09;&#xff0c;然后把數位和相等的數字放到同一個組中。 請你統計每個組中的數字數目&…

手動實現LinkedList

前言 大家好&#xff0c;我是Maybe。最近在學習數據結構中的鏈表&#xff0c;自己手動實現了一個LinkedList。我想與大家分享一下。 思維導圖 代碼部分 package Constant;public class constant {public static final String INDEX_IS_WRONG"輸入的下標不合法"; }p…

如何檢查瀏覽器是否啟用了WebGL2.0硬件加速

一:WebGL Inspector使用 打開 Chrome 或 Edge(推薦使用 Chromium 內核瀏覽器)。 安裝插件: ?? Spector.js on Chrome Web Store 安裝完成后,在瀏覽器工具欄看到綠色的 S 圖標 二:捕獲 WebGL 渲染幀 打開你要分析的 Web3D 網站(比如 https://3dviewer.net)。 點擊瀏…

“時間”,在數據處理中的真身——弼馬溫一般『無所不能』(DeepSeek)

電子表格時間處理真理&#xff1a;數值存儲最瘦身&#xff0c;真身闖關通四海。 筆記模板由python腳本于2025-04-23 22:25:59創建&#xff0c;本篇筆記適合喜歡在電子表格中探求時間格式的coder翻閱。 【學習的細節是歡悅的歷程】 博客的核心價值&#xff1a;在于輸出思考與經驗…

AXOP39062: 25MHz軌到軌輸入輸出雙通道運算放大器

AXOP39062是用于低壓應用(1.5V~5.5V)的雙通道運算放大器&#xff0c;具有軌到軌的輸入輸出工作范圍&#xff0c;非常適合需要小尺寸、大容性負載驅動能力的低壓應用。產品具有25MHz的增益帶寬&#xff0c;具有優異的噪聲性能和極低的失真度。 主要特性 軌到軌的輸入輸出范圍低…

基于大模型的胃食管反流病全周期預測與診療方案研究

目錄 一、引言 1.1 研究背景與意義 1.2 研究目的與創新點 二、胃食管反流病概述 2.1 疾病定義與分類 2.2 流行病學特征 2.3 發病機制 三、大模型技術原理與應用基礎 3.1 大模型簡介 3.2 適用于胃食管反流病預測的大模型類型 3.3 數據收集與預處理 四、大模型在胃食…

西門子S7-200SMART 控制Profinet閉環步進MD-4250-PN (1)電機及專欄介紹

一、前言 本系列是我繼 《西門子S7-1200PLC 控制步進電機 MD-4240-PN》系列專欄后&#xff0c;新開的一篇專欄。 系列的主題圍繞 S7-200SMART Profinet閉環步進(MD-4250-PN) 觸摸屏的硬件&#xff0c;預計作四篇文章&#xff0c;分別為&#xff1a;專欄介紹、硬件介紹、PLC…

bedtools coverage 獲取每個位置的測序深度

1.bedtools 文檔 $ bedtools --version bedtools v2.31.1coverage Compute the coverage over defined intervals. Usage:bedtools coverage [OPTIONS] -a <FILE> \-b <FILE1, FILE2, ..., FILEN>(or):coverageBed [OPTIONS] -a <FILE> \-b <FILE1,…

反向代理和DDNS的區別是什么?

反向代理&#xff08;Reverse Proxy&#xff09;和動態域名解析&#xff08;DDNS&#xff0c;Dynamic Domain Name System&#xff09;是兩種不同的網絡技術&#xff0c;雖然它們都與外部訪問內部服務相關&#xff0c;但解決的問題和應用場景完全不同。具體區別如下&#xff1a…

縮放點積注意力

Scaled Dot-Product Attention 論文地址 https://arxiv.org/pdf/1706.03762 注意力機制介紹 縮放點積注意力是Transformer模型的核心組件&#xff0c;用于計算序列中不同位置之間的關聯程度。其核心思想是通過查詢向量&#xff08;query&#xff09;和鍵向量&#xff08;key&am…

可吸收聚合物:醫療科技與綠色未來的交匯點

可吸收聚合物&#xff08;Biodegradable Polymers&#xff09;作為生物醫學工程的核心材料&#xff0c;正引領一場從“金屬/塑料植入物”到“智能降解材料”的范式轉移。根據QYResearch&#xff08;恒州博智&#xff09;預測&#xff0c;2031年全球可吸收聚合物市場銷售額將突破…