From c4d18744b685f03c2fb8cbe2720fec18c97c1e66 Mon Sep 17 00:00:00 2001
From: rain <167982779@qq.com>
Date: Wed, 27 Nov 2024 11:16:58 +0800
Subject: [PATCH] 遥控器上云

---
 src/pages/page-pilot/pilot-index.vue |  164 ++++++++++++++++++++++++++++++++----------------------
 1 files changed, 96 insertions(+), 68 deletions(-)

diff --git a/src/pages/page-pilot/pilot-index.vue b/src/pages/page-pilot/pilot-index.vue
index 51670e8..9e54cbb 100644
--- a/src/pages/page-pilot/pilot-index.vue
+++ b/src/pages/page-pilot/pilot-index.vue
@@ -55,13 +55,35 @@
 import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
 import djiLogo from '/@/assets/icons/dji_logo.png'
 import { useMyStore } from '/@/store'
-// const root = getRoot()
+const root = getRoot()
 
+const store = useMyStore()
 // const formState: UnwrapRef<LoginBody> = reactive({
 //   username: 'pilot',
 //   password: 'pilot123',
 //   flag: EUserType.Pilot,
 // })
+const formState: UnwrapRef<LoginBody> = reactive({
+  // 租户ID
+  tenantId: '000000',
+  // 部门ID
+  deptId: '',
+  // 角色ID
+  roleId: '',
+  // 用户名
+  username: '',
+  // 密码
+  password: '',
+  // 账号类型
+  type: 'account',
+  // 验证码的值
+  code: '',
+  // 验证码的索引
+  key: '',
+  // 预加载白色背景
+  image: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
+  flag: EUserType.Web,
+})
 const isVerified = ref<boolean>(false)
 onMounted(async () => {
   verifyLicense()
@@ -75,6 +97,7 @@
   if (token) {
     await refreshToken({})
       .then(res => {
+        console.log('e' + CURRENT_CONFIG.baseURL)
         apiPilot.setComponentParam(EComponentName.Api, {
           host: CURRENT_CONFIG.baseURL,
           token: res.data.access_token
@@ -93,38 +116,63 @@
       })
   }
 })
-const root = getRoot()
+const onSubmit = async (e: any) => {
+  try {
+    // 调用登录方法
+    const loginResponse = await store.dispatch('LoginByUsername', formState)
 
-const store = useMyStore()
+    if (loginResponse) {
+      // 调用 refreshToken 方法获取 access_token
+      const refreshTokenResponse = await refreshToken({})
+      console.log(refreshTokenResponse)
+      if (refreshTokenResponse && refreshTokenResponse.data.access_token) {
+        const accessToken = refreshTokenResponse.data.access_token
 
-const formState: UnwrapRef<LoginBody> = reactive({
-  // 租户ID
-  tenantId: '000000',
-  // 部门ID
-  deptId: '',
-  // 角色ID
-  roleId: '',
-  // 用户名
-  username: 'pilot',
-  // 密码
-  password: 'pilot123',
-  // 账号类型
-  type: 'account',
-  // 验证码的值
-  code: '',
-  // 验证码的索引
-  key: '',
-  // 预加载白色背景
-  image: 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7',
-  flag: EUserType.Pilot,
-})
-// const onSubmit = async (e: any) => {
+        console.log('Current Base URL:', CURRENT_CONFIG.baseURL)
+        console.log('Current Base URL:', accessToken)
+        // 配置 API 组件参数
+        apiPilot.setComponentParam(EComponentName.Api, {
+          host: CURRENT_CONFIG.baseURL,
+          token: accessToken,
+        })
+
+        // 加载 API 组件
+        const jsres = apiPilot.loadComponent(
+          EComponentName.Api,
+          apiPilot.getComponentParam(EComponentName.Api)
+        )
+
+        if (!jsres) {
+          message.error('加载 API 模块失败')
+          return
+        }
+
+        // 设置 token
+        apiPilot.setToken(accessToken)
+
+        // 存储 token 到 localStorage
+        localStorage.setItem(ELocalStorageKey.Token, accessToken)
+
+        // 跳转到首页
+        root.$router.push(ERouterName.PILOT_HOME)
+      } else {
+        throw new Error('Failed to retrieve access token from refreshToken method')
+      }
+    }
+  } catch (err) {
+    // 错误处理
+    console.error(err)
+    message.error(err.message || 'An error occurred during login')
+  }
+}
+
+// const onSubmit = async () => {
 //   await login(formState)
 //     .then(res => {
-// if (!isVerified.value) {
-//   message.error('请先核实许可证.')
-//   return
-// }
+//       if (!isVerified.value) {
+//         message.error('请先核实许可证.')
+//         return
+//       }
 //       console.log('login res:', res)
 //       if (res.code === 0) {
 //         apiPilot.setComponentParam(EComponentName.Api, {
@@ -135,46 +183,26 @@
 //           EComponentName.Api,
 //           apiPilot.getComponentParam(EComponentName.Api)
 //         )
-//         console.log('load api module res:', jsres)
-//         apiPilot.setToken(res.data.access_token)
-//         localStorage.setItem(ELocalStorageKey.Token, res.data.access_token)
-//         localStorage.setItem(ELocalStorageKey.WorkspaceId, res.data.workspace_id)
-//         localStorage.setItem(ELocalStorageKey.UserId, res.data.user_id)
-//         localStorage.setItem(ELocalStorageKey.Username, res.data.username)
-//         localStorage.setItem(ELocalStorageKey.Flag, EUserType.Pilot.toString())
-//         message.success('登录成功')
-//         root.$router.push(ERouterName.PILOT_HOME)
-//       }
-//     })
-//     .catch(err => {
-//       message.error(err)
-//     })
+// store
+//   .dispatch('LoginByUsername', formState)
+//   .then((res) => {
+//     root.$router.push(ERouterName.PILOT_HOME)
+//   })
+//   .catch(() => {
+//   })
+// const password = encrypt(formState.password)
+// const result = await login(formState)
+// if (result.code === 0) {
+//   localStorage.setItem(ELocalStorageKey.Token, result.data.access_token)
+//   localStorage.setItem(ELocalStorageKey.WorkspaceId, result.data.workspace_id)
+//   localStorage.setItem(ELocalStorageKey.Username, result.data.username)
+//   localStorage.setItem(ELocalStorageKey.UserId, result.data.user_id)
+//   localStorage.setItem(ELocalStorageKey.Flag, EUserType.Web.toString())
+//   root.$router.push(ERouterName.PROJECT_LIST)
+// } else {
+//   message.error(result.message)
 // }
-const onSubmit = async () => {
-  if (!isVerified.value) {
-    message.error('请先核实许可证.')
-    return
-  }
-  store
-    .dispatch('LoginByUsername', formState)
-    .then((res) => {
-      root.$router.push(ERouterName.PILOT_HOME)
-    })
-    .catch(() => {
-    })
-  // const password = encrypt(formState.password)
-  // const result = await login(formState)
-  // if (result.code === 0) {
-  //   localStorage.setItem(ELocalStorageKey.Token, result.data.access_token)
-  //   localStorage.setItem(ELocalStorageKey.WorkspaceId, result.data.workspace_id)
-  //   localStorage.setItem(ELocalStorageKey.Username, result.data.username)
-  //   localStorage.setItem(ELocalStorageKey.UserId, result.data.user_id)
-  //   localStorage.setItem(ELocalStorageKey.Flag, EUserType.Web.toString())
-  //   root.$router.push(ERouterName.PROJECT_LIST)
-  // } else {
-  //   message.error(result.message)
-  // }
-}
+// }
 function verifyLicense () {
   isVerified.value = apiPilot.platformVerifyLicense(CURRENT_CONFIG.appId, CURRENT_CONFIG.appKey, CURRENT_CONFIG.appLicense) &&
     apiPilot.isPlatformVerifySuccess()

--
Gitblit v1.9.3