<template>
  <div :class="prefixCls" class="relative w-full h-full px-4 login-main">
    <!-- <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="suoyuan">公安部鉴定中心 & 江门市公安局 & 五邑大学联合实验室 | 公安部科技强警基础工作计划(2022JC13)</div>
    <div class="container relative h-full py-2 mx-auto sm:px-10">
      <div class="flex h-full">
        <div class="hidden min-h-full pl-4 mr-4 xl:flex xl:flex-col xl:w-5/12">
          <AppLogo class="-enter-x" />
          <div class="my-auto" style="visibility: hidden">
            <img
              :alt="title"
              src="../../../assets/svg/login-box-bg.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-7/12">
          <div
            :class="`${prefixCls}-form`"
            class="
              relative
              2xl:left-48
              xl:left-16
              w-full
              px-5
              py-8
              mx-auto
              my-auto
              rounded-md
              shadow-md
              xl:ml-8
              2xl:ml-16
              xl:bg-transparent
              sm:px-8
              xl:p-4 xl:shadow-none
              sm:w-4/5
              lg:w-3/5
              xl:w-auto
              enter-x
            "
          >
            <div class="title" v-if="mytitle != '江门公安'">
              <div class="titleText" style="font-weight: bold; letter-spacing: 12px">
                <div style="margin-bottom: 0">案事件实景三维重建</div>
                <div>及数字化建档系统</div>
              </div>
              <div class="en text-sm font-normal mb-5 titleSubtext" style="line-height: 30px; margin-bottom:24px;color:#666">
                <div>3D Scene Reconstruction and Digital Archiving System of Police</div>
                <div>Cases and Events</div>
              </div>
            </div>
            <div class="title" v-else>
              <div class="titleText" style="font-weight: bold; letter-spacing: 12px">
                <div style="margin-bottom: 0">江门市公安局</div>
                <div>警用三维实景平台</div>
              </div>
              <div class="en text-sm font-normal mb-5 titleSubtext" style="line-height: 30px; margin-bottom:24px;color:#666">
                <div>Three-Dimensional Police Scene Platform for Public Security</div>
                <div>Bureau of Jiangmen Municipality</div>
              </div>
            </div>
            <LoginForm />
            <ForgetPasswordForm />
            <RegisterForm />
            <MobileForm />
            <QrCodeForm />
          </div>
        </div>
      </div>
    </div>
  </div>
</template>
<script lang="ts" setup>
  import { computed } 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 QrCodeForm from './QrCodeForm.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 { useRootSetting } from '/@/hooks/setting/useRootSetting';
  import { useUserStoreWithOut } from '/@/store/modules/user';
  import { addressKey } from '/@/api/jyUserPlatform/index';
  import { useAppStoreWithOut } from '/@/store/modules/app';
  import { useMessage } from '/@/hooks/web/useMessage';

  const appStore = useAppStoreWithOut();

  defineProps({
    sessionTimeout: {
      type: Boolean,
    },
  });
  const { getTitle } = useRootSetting();
  const mytitle = computed(() => getTitle.value);
  const globSetting = useGlobSetting();
  const useUserStore = useUserStoreWithOut();
  const { prefixCls } = useDesign('login');
  const { t } = useI18n();
  const localeStore = useLocaleStore();
  const showLocale = localeStore.getShowPicker;
  const title = computed(() => globSetting?.title ?? '');
  function getUrlParams2() {
    const { createConfirm } = useMessage();
    let url = window.location.href
    let urlStr = url.split('?')[1]
    const urlSearchParams = new URLSearchParams(urlStr)
    const result = Object.fromEntries(urlSearchParams.entries())
    let address = result['key']
    if(address){
      addressKey(address).then(res => {
        if(res.status == 1){
          createConfirm({
            iconType: 'warning',
            title: '警告',
            content: `此平台已被禁用`,
            onOk: async () => {
              onClose()
            },
            onCancel: async () => {
              onClose()
            },
          });
          return
        }
        appStore.setTitle(res.platformName);
      })
    }
  }
  const onClose = () => {
    window.opener = null;
    window.open('about:blank', '_top')?.close();
  };
  getUrlParams2()
</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;
    }
  }
  .title {
    .titleText {
      font-size: 40px;
      @media (max-width: @screen-xl) {
      font-size: 40px;
      }
      @media (min-width: 3000px) {
      font-size: 28px;
      }
    }
    .titleSubtext {
      font-size: 14px;
      @media (max-width: @screen-sm) {
        font-size: 12px;
      }
      @media (min-width: 3000px) {
        font-size: 12px;
        line-height: 20px !important;
        margin-bottom: 16px !important;
      }
    }
  }
  .@{prefix-cls} {
    min-height: 100%;
    overflow: hidden;
    @media (max-width: @screen-xl) {
      background-color: #293146;

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

    &::before {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      margin-left: -48%;
      background-position: 100%;
      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;
          font-size: 32px;
          font-family: Source Han Sans CN, Source Han Sans CN;
          font-weight: 500;
          color: #000000;
          line-height: 38px;
        }

        img {
          width: 40px;
          height: 40px;
        }
      }
    }

    &-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;
    }
  }
  .login-main {
    background-image: url(../bg_ga.jpg);
    background-position: 100%;
    background-repeat: no-repeat;
    background-size: cover;
  }
  .suoyuan {
    position: absolute;
    bottom: 30px;
    width: 100%;
    font-size: 14px;
    font-family: Microsoft YaHei, Microsoft YaHei;
    font-weight: 400;
    color: #999999;
    line-height: 30px;
    text-align: center;
  }
</style>
