安裝部屬

git clone https://github.com/vbenjs/vue-vben-admin.git  
pnpm install
pnpm run dev

理論上這樣就可以在本地打開測試環境

但是這沒用啊~我們要使用這個系統是要接我們自己的API的所以我們要將路徑和環境改成我們自己的

修改環境

step1 API 環境設定

預設他是用 mock 模擬,我們要將他換掉,如果是在測試開發環境的話請前往.env.development
將 VITE_GLOB_API_URL 變數改成我們自己的,例如我自己在本機的 8000 是API 所以

VITE_GLOB_API_URL=http://localhost:8000/

step2 修改登入頁面

跟登入有關的他都會放在 sys相關的資料夾,例如登入頁的 vue src/views/sys/login/LoginForm.vue
這裡要調整的是

      const userInfo = await userStore.login({
        password: data.password,
        username: data.account,
        mode: 'none', //不要默认的错误提示
      });

這邊要改成自己的參數名稱

step3 修改 API

我們剛剛提到登入相關的都會放在 sys 相關的資料夾,所以按照這個線索我們可以找到
src/api/sys/user.ts
這個檔案就會有我們要的 loginApi 這個

enum Api {
  Login = '/login',
  Logout = '/logout',
  GetUserInfo = '/getUserInfo',
  GetPermCode = '/getPermCode',
  TestRetry = '/testRetry',
}

/**
 * @description: user login api
 */
export function loginApi(params: LoginParams, mode: ErrorMessageMode = 'modal') {
  return defHttp.post<LoginResultModel>(
    {
      url: Api.Login,
      params,
    },
    {
      errorMessageMode: mode,
    },
  );
}

這邊的話可以注意一下,API 的輸入有被 LoginParams 設定 ,而輸出被 LoginResultModel 鎖定。如果要修改的話可以去
src/api/sys/model/userModel.ts 中調整
我自己是直接把他解除綁定啦!不會出問題,就是很不嚴謹

step3 修改 ajax 封裝

理論上這樣改好以後就可以用了~如果你的API回傳的結構跟 mock 那邊的設定都一樣的話,那應該是沒問題。偏偏我的不是,所以我們要去改一下 ajax 的封裝邏輯src/utils/http/axios/index.ts

//  这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
    const { code, result, message } = data;
    const hasSuccess = data && Reflect.has(data, 'code') && code === ResultEnum.SUCCESS;

這段可以多試幾次直到抓到值可以回傳

step4 sotre 中寫入 token

當我們送出 api 然後成功取回資料後要寫入 token 才能繼續下去
src/store/modules/user.ts

async login(
      params: LoginParams & {
        goHome?: boolean;
        mode?: ErrorMessageMode;
      },
    ): Promise<GetUserInfoModel | null> {
      try {
        const { goHome = true, mode, ...loginParams } = params;
        const data = await loginApi(loginParams, mode);
        const { token } = data;

        // save token
        this.setToken(token);
        return this.afterLoginAction(goHome);
      } catch (error) {
        return Promise.reject(error);
      }
    },

這邊要確認 token 的變數要跟你的 key 值相同,才有辦法寫入token

step5 用 token 取得使用者內容

vben admin 會判斷 token 有效才會真正登入可以進入
src/api/sys/user.ts
在這邊找到 getUserInfo 這個 function 改成自訂的 token 取值 api

大功告成

下載路徑

http://https://github.com/vbenjs/vue-vben-admin

教學文件

http://https://jacobhsu.github.io/vue-vben-admin-docs/components/introduction.html

最後修改日期: 2024 年 1 月 24 日

作者