ant design pro V2菜單欄顯示流程, 用戶輸入用戶名,密碼,登錄調用登錄接口,校驗后返回該用戶的權限字段currentAuthority,然后通過調用setAuthority(currentAuthority)函數來設置該用戶的菜單欄權限,(setAuthority函數位於src/utils/authorty.js中),setAuthority函數將權限字段放在緩存中,登錄后與菜單欄路由文件中的authorty字段比對。源程序針對登錄返回的currentAuthority字段為單個權限字段,如果需要多個權限,則不能返回正確的比對字段,所以需要修改源程序。
首先setAuthority(currentAuthority)函數傳入的多個權限字段的格式為字符串,中間用逗號隔開,如”user,admin“,然后修改src/utils/authorty.js中的setAuthority函數,在判斷authority是否為字符串之前,先對傳入的參數authority進行一個判斷,判斷authority中的‘,’個數是否大於零,如果大於0,說明有多個權限,調用split()函數將字符串分割成字符串數組,否則保持原樣。這樣authority字段就會變成權限數組,用戶將擁有多個權限。
src/models/login.js代碼如圖所示。
src/utils/authorty.js中etAuthority()函數如圖所示