【Umi】項目初始化配置和用戶權限

app.tsx

import { RunTimeLayoutConfig } from '@umijs/max';
import { history, RequestConfig } from 'umi';
import { getCurrentUser } from './services/auth';
import { message } from 'antd';// 獲取用戶信息
export async function getInitialState(): Promise<{currentUser?: API.CurrentUser;fetchUserInfo?: () => Promise<API.CurrentUser | undefined>;
}> {const fetchUserInfo = async () => {try {const token = localStorage.getItem('token');if (!token) {return undefined;}const currentUser = await getCurrentUser();return currentUser;} catch (error) {history.push('/login');return undefined;}};// 如果不是登錄頁面,執行const { location } = history;if (location.pathname !== '/login' && location.pathname !== '/register') {const currentUser = await fetchUserInfo();return {currentUser,fetchUserInfo,};}return {fetchUserInfo,};
}// 布局配置
export const layout: RunTimeLayoutConfig = ({ initialState }) => {return {logo: 'https://img.ixintu.com/download/jpg/20200909/a27a8cb1fb9d6dbaf2bbaff07b6e4800_512_512.jpg!bg',menu: {locale: false,},rightContentRender: () => <div></div>,avatarProps: {src: 'https://gw.alipayobjects.com/zos/antfincdn/XAosXuNZyF/BiazfanxmamNRoxxVxka.png',title: initialState?.currentUser?.name || initialState?.currentUser?.username,render: (_, avatarChildren) => {return <div>{avatarChildren}</div>;},},footerRender: () => <div style={{ textAlign: 'center', padding: '20px' }}>霹靂舞比賽管理系統 ?2025</div>,};
};// 請求配置
export const request: RequestConfig = {timeout: 10000,errorConfig: {adaptor: (resData: any) => {return {...resData,success: resData.success,errorMessage: resData.message,};},},requestInterceptors: [(config: any) => {const token = localStorage.getItem('token');if (token) {config.headers['Authorization'] = `Bearer ${token}`;}return config;},],responseInterceptors: [(response) => {return response;},],
};

access.ts

export default function access(initialState: { currentUser?: API.CurrentUser }) {const { currentUser } = initialState || {};return {isAdmin: currentUser && currentUser.role === 'admin',isJudge: currentUser && currentUser.role === 'judge',isCompetitor: currentUser && currentUser.role === 'competitor',isStaff: currentUser && currentUser.role === 'staff',};
} 

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

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

相關文章

[學習] RTKLib詳解:qzslex.c、rcvraw.c與solution.c

RTKLib詳解&#xff1a;qzslex.c、rcvraw.c與solution.c 本文是 RTKLlib詳解 系列文章的一篇&#xff0c;目前該系列文章還在持續總結寫作中&#xff0c;以發表的如下&#xff0c;有興趣的可以翻閱。 [學習] RTKlib詳解&#xff1a;功能、工具與源碼結構解析 [學習]RTKLib詳解…

移植RTOS,發現任務棧溢出怎么辦?

目錄 1、硬件檢測方法 2、軟件檢測方法 3、預防堆棧溢出 4、處理堆棧溢出 在嵌入式系統中&#xff0c;RTOS通過管理多個任務來滿足嚴格的時序要求。任務堆棧管理是RTOS開發中的關鍵環節&#xff0c;尤其是在將RTOS移植到新硬件平臺時。堆棧溢出是嵌入式開發中常見的錯誤&am…

window 顯示驅動開發-使用有保證的協定 DMA 緩沖區模型

Windows Vista 的顯示驅動程序模型保證呈現設備的 DMA 緩沖區和修補程序位置列表的大小。 修補程序位置列表包含 DMA 緩沖區中命令引用的資源的物理內存地址。 在有保證的協定模式下&#xff0c;用戶模式顯示驅動程序知道 DMA 緩沖區和修補程序位置列表的確切大小&#xff0c;…

SD-HOST Controller design-----SD CLK 設計

hclk的分頻電路&#xff0c;得到的分頻時鐘作為sd卡時鐘。 該模塊最終輸出兩個時鐘&#xff1a;一個為fifo_sd_clk,另一個為out_sd_clk_dft。當不分頻時&#xff0c;fifo_sd_clk等于hclk&#xff1b;當分頻時候&#xff0c;div_counter開始計數&#xff0c;記到相應分頻的時候…

完全背包問題中「排列數」與「組合數」的核心區別

&#x1f3af; 一句話理解 求組合數&#xff08;不計順序&#xff09; → 外層遍歷物品&#xff0c;內層遍歷背包容量 求排列數&#xff08;計順序&#xff09; → 外層遍歷背包容量&#xff0c;內層遍歷物品 &#x1f3b2; 舉例說明 假設有硬幣 [1, 2, 3]&#xff0c;目標金…

NHANES指標推薦:MDS

文章題目&#xff1a;The association between magnesium depletion score (MDS) and overactive bladder (OAB) among the U.S. population DOI&#xff1a;10.1186/s41043-025-00846-x 中文標題&#xff1a;美國人群鎂耗竭評分 &#xff08;MDS&#xff09; 與膀胱過度活動癥…

C++:字符串操作函數

strcpy() 功能&#xff1a;把一個字符串復制到另一個字符串。 #include <iostream> #include <cstring> using namespace std;int main() {char src[] "Hello";char dest[10];strcpy(dest, src);cout << "Copied string: " << …

1基·2臺·3空間·6主體——藍象智聯解碼可信數據空間的“數智密碼”

近日&#xff0c;由全國數據標準化技術委員會編制的《可信數據空間 技術架構》技術文件正式發布&#xff0c;標志著我國數據要素流通體系向標準化、規范化邁出關鍵一步。該文件從技術功能、業務流程、安全要求三大維度對可信數據空間進行系統性規范&#xff0c;為地方、行業及企…

基于TI AM6442+FPGA解決方案,支持6網口,4路CAN,8個串口

TI AM6442FPGA解決方案具有以下技術優勢及適用領域&#xff1a; 一、技術優勢 ?異構多核架構?&#xff1a;AM6442處理器集成7個內核&#xff08;2xCortex-A534xCortex-R5F1xCortex-M4F&#xff09;&#xff0c;可實現應用處理、實時控制和獨立任務分核協同&#xff0c;滿足…

android vlc播放rtsp

最近在做IOT開發&#xff0c;需要把IOT設備的RTSP流在手機端播放&#xff0c;VLC是個不錯的選擇&#xff0c;使用起來簡單方便。 1、在AndroidManifest.xml 中添加網絡權限 <uses-permission android:name"android.permission.INTERNET"/> <uses-permissi…

前端面經 9 JS中的繼承

借用Class實現繼承 實現繼承 extends super extends 繼承父類 super調用父類的構造函數 子類中存在方法采取就近原則 &#xff0c;子類構造函數需要使用super()調用父類的構造函數 JS 靜態屬性和私有屬性 寄生組合式繼承

jQuery知識框架

一、jQuery 基礎 核心概念 $ 或 jQuery&#xff1a;全局函數&#xff0c;用于選擇元素或創建DOM對象。 鏈式調用&#xff1a;多數方法返回jQuery對象&#xff0c;支持連續操作。 文檔就緒事件&#xff1a; $(document).ready(function() { /* 代碼 */ }); // 簡寫 $(function…

【HCIA】BFD

前言 前面我們介紹了浮動路由以及出口路由器的默認路由配置&#xff0c;可如此配置會存在隱患&#xff0c;就是出口路由器直連的網絡設備并不是運營商的路由器&#xff0c;而是交換機。此時我們就需要感知路由器的存活狀態&#xff0c;這就需要用到 BFD&#xff08;Bidirectio…

前端流行框架Vue3教程:18. _組件數據傳遞

透傳 Attributes 透傳attribute指的是傳遞給一個組件&#xff0c;卻沒有被該組件聲明為props或emits的attribute或者v-on事件監聽器。最常見的例子就是class、style和id 當一個組件以單個元素為根作渲染時&#xff0c;透傳的attribute會自動被添加到根元素上 透傳 Attributes …

卓力達電鑄鎳網:精密制造與跨領域應用的創新典范

目錄 引言 一、電鑄鎳網的技術原理與核心特性 二、電鑄鎳網的跨領域應用 三、南通卓力達電鑄鎳網的核心優勢 四、未來技術展望 引言 電鑄鎳網作為一種兼具高精度與高性能的金屬網狀材料&#xff0c;通過電化學沉積工藝實現復雜結構的精密成型&#xff0c;已成為航空航天、電…

1.2.3.2 數據安全發展歷程-大數據安全產品領域

從電商到物流&#xff1a;中國大數據安全產品如何進化&#xff1f; 在數字化時代&#xff0c;我們的一舉一動都可能被記錄——購物記錄、聊天信息、位置軌跡……這些數據不僅關系到個人隱私&#xff0c;更涉及企業運營和國家安全的命脈。近年來&#xff0c;隨著數據的爆發式增長…

服務器性能參數分析基礎:磁盤-CPU-內存

在Linux系統中&#xff0c;"掛載"&#xff08;Mount&#xff09;是指將物理存儲設備&#xff08;如磁盤分區&#xff09;或邏輯存儲卷&#xff08;如LVM、網絡存儲&#xff09;關聯到文件系統目錄樹的特定路徑節點&#xff08;即掛載點&#xff09;&#xff0c;使得該…

密碼學刷題小記錄

base 64 打開后發現是一串字符串&#xff0c;&#xff0c;我們直接進行base64解密即可 Caesar 根據標題分析&#xff0c;我們知道這是凱撒解密&#xff0c;拖進去經過嘗試在偏移量為12時直接得解&#xff08;這道題就是找偏移量比較麻煩&#xff09; Morse 這道題打開后&am…

Spring框架(三)

目錄 一、JDBC模板技術概述 1.1 什么是JDBC模板 二、JdbcTemplate使用實戰 2.1 基礎使用&#xff08;手動創建對象&#xff09; 2.2 使用Spring管理模板類 2.3 使用開源連接池&#xff08;Druid&#xff09; 三、模擬轉賬開發 3.1 基礎實現 3.1.1 Service層 3.1.2 Da…

[計算機網絡]網絡層

文章目錄 408考研大綱IPV4數據報格式協議: IPv4 地址DHCP協議IP組播 408考研大綱 IPV4數據報格式 協議: 1:ICMP 6:TCP 17:UDP IPv4 地址 特殊IP 網絡號全1又稱直接廣播地址&#xff0c;32位全1又稱受限廣播地址 因為255.255.255.255只能在本網絡內廣播&#xff0c;路由器不…