zhangwencui
3 天以前 b30a42537dbbb35883b2cfe31c6d6c53ed5eaccd
src/views/login.vue
@@ -2,13 +2,14 @@
  <div class="login-page">
    <main class="page">
      <section class="factory">
        <div class="brand">
          <div class="logo">
            <img :src="brandLogoUrl" :alt="`${companyName} logo`" class="logo-image" @error="handleLogoError" />
          </div>
          <div class="brand-copy">
            <div class="brand-title">{{ companyName }}</div>
            <small>{{ companySubtitle }}</small>
        <div class="brand hero-brand">
          <div class="logo hero-logo">
            <img
              :src="brandLogoUrl"
              :alt="`${companyName} logo`"
              class="logo-image hero-logo-image"
              @error="handleLogoError"
            />
          </div>
        </div>
@@ -101,12 +102,12 @@
        <form class="login-card" @submit.prevent="handleLogin">
          <div class="brand card-brand">
            <div class="logo">
              <img :src="brandLogoUrl" :alt="`${companyName} logo`" class="logo-image" @error="handleLogoError" />
              <img :src="brandIconUrl" :alt="`${companyName} icon`" class="logo-image card-logo-image" />
            </div>
            <div class="brand-copy card-brand-copy">
              <div class="brand-title">{{ companyName }}</div>
              <small>数字工厂统一入口</small>
            </div>
                  <div class="brand-copy card-brand-copy">
                     <div class="brand-title">{{ companyName }}</div>
                     <small>数字工厂统一入口</small>
                  </div>
          </div>
          <h2>欢迎登录</h2>
@@ -168,6 +169,7 @@
const companySubtitle = String(import.meta.env.VITE_LOGIN_SUBTITLE || "Digital Factory Operation Center").trim()
const configuredLogo = String(import.meta.env.VITE_APP_LOGO || "").trim()
const logoModules = import.meta.glob("/src/assets/logo/*.png", { eager: true })
const brandIconUrl = `${import.meta.env.BASE_URL}favicon.ico`
const redirect = ref("")
const loading = ref(false)
@@ -403,16 +405,13 @@
.brand {
  position: relative;
  z-index: 2;
  display: flex;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  font-weight: 900;
  letter-spacing: 0.4px;
}
.logo {
  width: 48px;
  height: 48px;
  width: 76px;
  height: 76px;
  border-radius: 14px;
  display: grid;
  place-items: center;
@@ -423,29 +422,30 @@
}
.logo-image {
  width: 70%;
  height: 70%;
  width: 82%;
  height: 82%;
  object-fit: contain;
}
.brand-copy {
  min-width: 0;
}
.brand-title {
  font-size: 16px;
  font-weight: inherit;
  line-height: 1.2;
  word-break: break-word;
}
.brand-copy small {
.hero-brand {
  display: block;
  margin-top: 3px;
  font-size: 12px;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.64);
  word-break: break-word;
}
.hero-logo {
  width: 240px;
  height: 84px;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
  place-items: center start;
}
.hero-logo-image {
  width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
}
.hero {
@@ -624,13 +624,24 @@
  margin-bottom: 18px;
}
.card-brand-copy .brand-title {
  color: #0d2c5e;
  font-size: 16px;
.card-brand .logo {
  width: 52px;
  height: 52px;
}
.card-brand-copy small {
  color: #7a8da8;
.card-brand-copy {
  margin-left: 12px;
}
.card-logo-image {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.card-brand .logo {
  width: 68px;
  height: 68px;
}
.login-card h2 {