<template>
  <div v-if="loginShow" :class="prefixCls" class="relative w-full h-full px-4">
    <!-- <AppLocalePicker
      class="absolute text-white top-4 right-4 enter-x xl:text-gray-600"
      :showText="false"
      v-if="!sessionTimeout && showLocale"
    />
    <AppDarkModeToggle class="absolute top-3 right-7 enter-x" v-if="!sessionTimeout" /> -->

    <span class="-enter-x xl:hidden">
      <!-- <AppLogo :alwaysShowTitle="true" /> -->
    </span>

    <div class="container relative h-full py-2 mx-auto sm:px-10">
      <div class="flex h-full" style="flex-direction: column;justify-content: flex-start; align-items: center;">
        <!-- <div class="hidden min-h-full pl-4 mr-4 xl:flex xl:flex-col xl:w-6/12">
          <AppLogo class="-enter-x" />
          <div style="display: flex; margin-top: 10px">
            <img v-if="defaultLogo" :src="defaultLogo" style="width: 48px; height: 48px" />
            <img style="width: 48px; height: 48px" v-else src="/src/assets/images/logo.png" />
            <div
              class="ml-2 truncate md:opacity-100"
              style="
                line-height: 45px;
                margin-left: 5px;
                font-size: 24px;
                color: #fff;
                font-weight: 700;
              "
            >
              {{ defaultTitle }}
              空间数据管理平台
            </div>
          </div>
          <div v-if="ifCustom" class="my-auto">
            <img
              :alt="title"
              src="../../../assets/svg/thingskit-login-background.svg"
              class="w-1/2 -mt-16 -enter-x"
            />
            <div class="mt-10 font-medium text-white -enter-x">
              <span class="inline-block mt-4 text-3xl"> {{ t('sys.login.signInTitle') }}</span>
            </div>
            <div class="mt-5 font-normal text-white text-md dark:text-gray-500 -enter-x">
              {{ t('sys.login.signInDesc') }}
            </div>
          </div>
        </div> -->
        <!-- <div class="flex w-full h-full py-5 xl:h-auto xl:py-0 xl:my-0 xl:w-6/12">
          <div
            :class="`${prefixCls}-form`"
            class="relative w-full px-5 py-8 mx-auto my-auto rounded-md shadow-md xl:ml-16 xl:bg-transparent sm:px-8 xl:p-4 xl:shadow-none sm:w-3/4 lg:w-2/4 xl:w-auto enter-x"
          >
            <LoginForm />
            <ForgetPasswordForm />
            <RegisterForm />
            <MobileForm />
          </div>
        </div> -->
        <div class="logo-title-box" style="margin-top: 8%;margin-bottom: 7%;">
          <img :src="logoBg" alt="">
        </div>
        <div class="login-box" style="width: 380px;height: 420px;padding: 56px 40px;">
          <LoginForm />
        </div>
        <!-- <span style="
            height: 30px;
            width: 650px;
            white-space: nowrap;
            position: fixed;
            top: 96%;
            left: 30%;
            color: #000;
          ">
          Copyright © tofly.com 2001-2023
          <a-button type="text" href="https://www.tofly.cn/" target="_blank" style="color: black; cursor: pointer">
            成都同飞科技有限责任公司 </a-button>&nbsp;版权所有 &nbsp;<a-button type="text" href="http://beian.miit.gov.cn/"
            target="_blank" style="color: black; cursor: pointer">
            备案号： 蜀ICP备05002285号
          </a-button>
        </span> -->
      </div>
    </div>
  </div>
</template>
<script lang="ts" setup>
import { ref, onMounted } from 'vue';
// import { AppLogo } from '/@/components/Application';
import { AppLocalePicker, AppDarkModeToggle } from '/@/components/Application';
import LoginForm from './LoginForm.vue';
// import ForgetPasswordForm from './ForgetPasswordForm.vue';
// import RegisterForm from './RegisterForm.vue';
// import MobileForm from './MobileForm.vue';
import { useGlobSetting } from '/@/hooks/setting';
import { useI18n } from '/@/hooks/web/useI18n';
import { useDesign } from '/@/hooks/web/useDesign';
import { useLocaleStore } from '/@/store/modules/locale';
// import { useUserStore } from '/@/store/modules/user';
import { getPlatForm } from '/@/api/oem/index';
import defaultShowLogoImg from '/@/assets/svg/login-bg.svg';
import defaultShowLogoDarkImg from '/@/assets/svg/login-bg-dark.svg';
import { useTitle } from '@vueuse/core';
import { createLocalStorage } from '/@/utils/cache';
// import {usePlatform} from '/@/views/system/customize/hook/usePlatformInfo'
import logoBg from '/@/assets/images/login/title.png';

defineProps({
  sessionTimeout: {
    type: Boolean,
  },
});
const { title } = useGlobSetting();
const defaultTitle = ref('');
const defaultLogo = ref('');
const logoUrl = ref('');
// const userStore = useUserStore();
const storage = createLocalStorage();

onMounted(async () => {
  let res = storage.get('platformInfo');
  if (res === '' || res === null) {
    res = await getPlatForm();
  }
  logoUrl.value = res?.background;
  defaultTitle.value = res?.name || title;
  defaultLogo.value = res?.logo;
  let link = (document.querySelector("link[rel*='icon']") ||
    document.createElement('link')) as HTMLLinkElement;
  link.type = 'image/x-icon';
  link.rel = 'shortcut icon';
  link.href = res?.icon ?? '/favicon.ico';
  document.getElementsByTagName('head')[0].appendChild(link);
  let defaultLogoBg = document.createElement('style');
  let defaultLogoDarkBg = document.createElement('style');
  if (logoUrl.value !== undefined) {
    //企业自定义
    ifCustom.value = false;
    //默认图片
    defaultLogoBg.innerHTML = `.vben-login::before{
      background-image:url("");
      position:absolute;
    }`;
    //切换黑暗模式图片
    defaultLogoDarkBg.innerHTML = `html[data-theme='dark'] .vben-login::before{
      background-image:url("");
      position:absolute;
    }`;
  } else {
    logoUrl.value = 'url(' + defaultShowLogoImg + ')';
    //默认图片
    defaultLogoBg.innerHTML = `.vben-login::before{
      background-image:url(${defaultShowLogoImg});
      position:absolute;
    }`;
    //切换黑暗模式图片
    defaultLogoDarkBg.innerHTML = `html[data-theme='dark'] .vben-login::before{
      background-image:url(${defaultShowLogoDarkImg});
      position:absolute;
    }`;
  }
  document.head.appendChild(defaultLogoBg);
  document.head.appendChild(defaultLogoDarkBg);
});

// const userStore = useUserStore();

const ifCustom = ref(true);
// const getLogo = computed(() => {
//   return userStore.platInfo?.logo;
// });
// const getTitle = computed(() => {
//   // 设置icon
//   let link = (document.querySelector("link[rel*='icon']") ||
//     document.createElement('link')) as HTMLLinkElement;
//   link.type = 'image/x-icon';
//   link.rel = 'shortcut icon';
//   link.href = userStore.platInfo?.icon ?? '/favicon.ico';
//   document.getElementsByTagName('head')[0].appendChild(link);
//   // logoUrl.value = userStore.platInfo?.background;
//   // if (logoUrl.value !== undefined) {
//   //   ifCustom.value = false;
//   // } else {
//   //   logoUrl.value = 'url(' + defaultShowLogoImg + ')';
//   // }
//   return userStore.platInfo?.name ?? title;
// });
// const globSetting = useGlobSetting();
const { prefixCls } = useDesign('login');
const { t } = useI18n();
const localeStore = useLocaleStore();
const showLocale = localeStore.getShowPicker;
// const title = computed(() => globSetting?.title ?? '');

var loginShow = ref(false);
onMounted(() => {
  useTitle('空间数据管理平台');
  loginShow.value = !(location.href.indexOf('refreshToken') > -1);
});
</script>
<style lang="less">
@prefix-cls: ~'@{namespace}-login';
@logo-prefix-cls: ~'@{namespace}-app-logo';
@countdown-prefix-cls: ~'@{namespace}-countdown-input';
@dark-bg: #293146;

html[data-theme='dark'] {
  .@{prefix-cls} {
    background-color: @dark-bg;

    // &::before {
    // background-image: url(/@/assets/svg/login-bg-dark.svg);
    // }

    .ant-input,
    .ant-input-password {
      background-color: #232a3b;
    }

    .ant-btn:not(.ant-btn-link):not(.ant-btn-primary) {
      border: 1px solid #4a5569;
    }

    &-form {
      background: transparent !important;
    }

    .app-iconify {
      color: #fff;
    }
  }

  input.fix-auto-fill,
  .fix-auto-fill input {
    -webkit-text-fill-color: #c9d1d9 !important;
    box-shadow: inherit !important;
  }
}

.@{prefix-cls} {
  min-height: 100%;
  overflow: hidden;
  background: url(/@/assets/images/login/bg.png) no-repeat;
  background-size: 100% 100%;

  @media (max-width: @screen-xl) {
    background-color: #293146;

    .@{prefix-cls}-form {
      background-color: #fff;
    }
  }

  .login-box {
    background: url(/@/assets/images/login/login-box.png) no-repeat;
    background-size: 100% 100%;
  }

  // &::before {
  //   position: absolute;
  //   top: 0;
  //   left: 0;
  //   width: 100%;
  //   height: 100%;
  //   margin-left: -48%;
  //   background-position: 100%;
  //   // background-image: url(/@/assets/svg/login-bg.svg);
  //   background-repeat: no-repeat;
  //   background-size: auto 100%;
  //   content: '';

  //   @media (max-width: @screen-xl) {
  //     display: none;
  //   }
  // }

  .@{logo-prefix-cls} {
    position: absolute;
    top: 12px;
    height: 30px;

    &__title {
      font-size: 16px;
      color: #fff;
    }

    img {
      width: 32px;
    }
  }

  .container {
    .@{logo-prefix-cls} {
      display: flex;
      width: 60%;
      height: 80px;

      &__title {
        font-size: 24px;
        color: #fff;
      }

      img {
        width: 48px;
      }
    }
  }

  &-sign-in-way {
    .anticon {
      font-size: 22px;
      color: #888;
      cursor: pointer;

      &:hover {
        color: @primary-color;
      }
    }
  }

  input:not([type='checkbox']) {
    // min-width: 360px;

    @media (max-width: @screen-xl) {
      min-width: 320px;
    }

    @media (max-width: @screen-lg) {
      min-width: 260px;
    }

    @media (max-width: @screen-md) {
      min-width: 240px;
    }

    @media (max-width: @screen-sm) {
      min-width: 160px;
    }
  }

  .@{countdown-prefix-cls} input {
    min-width: unset;
  }

  .ant-divider-inner-text {
    font-size: 12px;
    color: @text-color-secondary;
  }
}
</style>
