rain
2024-11-27 c4d18744b685f03c2fb8cbe2720fec18c97c1e66
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()