lex-xin 3 năm trước cách đây
mục cha
commit
c79a0ac0ca

+ 12 - 0
src/components/live-broadcast/action-bar.module.less

@@ -44,6 +44,18 @@
     border-color: var(--live-color);
     background-color: #00D6C9;
   }
+  .el-dropdown-menu {
+    background-color: var(--live-main-color);
+    color: var(--live-color);
+    border-radius: 2px;
+    .el-dropdown-menu__item {
+      color: inherit;
+    }
+    .el-dropdown-menu__item:not(.is-disabled):focus {
+      background-color: var(--live-main-color);
+      color: var(--live-color);
+    }
+  }
 }
 
 

+ 2 - 2
src/components/live-broadcast/action-bar.tsx

@@ -12,7 +12,7 @@ export default defineComponent({
   },
   render() {
     return (
-      <div class={styles['action-bar']}>
+      <div class={styles['action-bar']} id="action-bar">
         <div style={{ display: 'flex' }}>
           <ElDropdown
             placement="top"
@@ -40,7 +40,7 @@ export default defineComponent({
           </ElDropdown>
           <ElDropdown
             placement="top-start"
-            popper-class={styles['popper-class']}
+            popper-options={{ boundariesElement: '#action-bar', gpuAcceleration: false }}
             // @ts-ignore
             vSlots={{
               dropdown: () => (

+ 3 - 3
src/components/live-message/index.tsx

@@ -37,17 +37,17 @@ export default defineComponent({
           <ElTabPane
             // @ts-ignore
             vSlots={{
-              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-message" class={styles.tabIcon} />聊天</span>
+              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-message" color={this.modelIndex === 'message' ? '#00FFF0' : '#fff'} class={styles.tabIcon} />聊天</span>
             }} name="message"></ElTabPane>
           <ElTabPane
             // @ts-ignore
             vSlots={{
-              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-evenEtc" class={styles.tabIcon} />连麦</span>
+              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-evenEtc" color={this.modelIndex === 'join' ? '#00FFF0' : '#fff'} class={styles.tabIcon} />连麦</span>
             }} name="join"></ElTabPane>
           <ElTabPane
             // @ts-ignore
             vSlots={{
-              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-look" class={styles.tabIcon} />观看</span>
+              label: () => <span style={{ display: 'flex', alignItems: 'center' }}><SvgIcon name="message-look" color={this.modelIndex === 'look' ? '#00FFF0' : '#fff'} class={styles.tabIcon} />观看</span>
             }} name="look"></ElTabPane>
         </ElTabs>
         <div class={styles.tabContent}>

+ 1 - 1
src/icons/svg/password.svg

@@ -1 +1 @@
-<svg width="128" height="128" fill="#999" xmlns="http://www.w3.org/2000/svg"><path d="M108.8 44.322H89.6v-5.36c0-9.04-3.308-24.163-25.6-24.163-23.145 0-25.6 16.881-25.6 24.162v5.361H19.2v-5.36C19.2 15.281 36.798 0 64 0c27.202 0 44.8 15.281 44.8 38.961v5.361zm-32 39.356c0-5.44-5.763-9.832-12.8-9.832-7.037 0-12.8 4.392-12.8 9.832 0 3.682 2.567 6.808 6.407 8.477v11.205c0 2.718 2.875 4.962 6.4 4.962 3.524 0 6.4-2.244 6.4-4.962V92.155c3.833-1.669 6.393-4.795 6.393-8.477zM128 64v49.201c0 8.158-8.645 14.799-19.2 14.799H19.2C8.651 128 0 121.359 0 113.201V64c0-8.153 8.645-14.799 19.2-14.799h89.6c10.555 0 19.2 6.646 19.2 14.799z"/></svg>
+<svg width="128" height="128" fill="curentColor" xmlns="http://www.w3.org/2000/svg"><path d="M108.8 44.322H89.6v-5.36c0-9.04-3.308-24.163-25.6-24.163-23.145 0-25.6 16.881-25.6 24.162v5.361H19.2v-5.36C19.2 15.281 36.798 0 64 0c27.202 0 44.8 15.281 44.8 38.961v5.361zm-32 39.356c0-5.44-5.763-9.832-12.8-9.832-7.037 0-12.8 4.392-12.8 9.832 0 3.682 2.567 6.808 6.407 8.477v11.205c0 2.718 2.875 4.962 6.4 4.962 3.524 0 6.4-2.244 6.4-4.962V92.155c3.833-1.669 6.393-4.795 6.393-8.477zM128 64v49.201c0 8.158-8.645 14.799-19.2 14.799H19.2C8.651 128 0 121.359 0 113.201V64c0-8.153 8.645-14.799 19.2-14.799h89.6c10.555 0 19.2 6.646 19.2 14.799z"/></svg>

+ 1 - 1
src/icons/svg/user.svg

@@ -1 +1 @@
-<svg width="130" height="130" fill="#999" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg>
+<svg width="130" height="130" fill="curentColor" xmlns="http://www.w3.org/2000/svg"><path d="M63.444 64.996c20.633 0 37.359-14.308 37.359-31.953 0-17.649-16.726-31.952-37.359-31.952-20.631 0-37.36 14.303-37.358 31.952 0 17.645 16.727 31.953 37.359 31.953zM80.57 75.65H49.434c-26.652 0-48.26 18.477-48.26 41.27v2.664c0 9.316 21.608 9.325 48.26 9.325H80.57c26.649 0 48.256-.344 48.256-9.325v-2.663c0-22.794-21.605-41.271-48.256-41.271z" stroke="#979797"/></svg>

BIN
src/pages/login/images/from-bg.png


+ 70 - 126
src/pages/login/index.module.less

@@ -25,7 +25,7 @@ body {
   background-color: #22B4A9;
   text-align: center;
   margin: 0 auto;
-  width: 85%;
+  width: 100%;
   height: 50px;
   line-height: 50px;
   color: #fff;
@@ -37,28 +37,28 @@ body {
   background-color: rgba(34, 180, 169, .5);
 }
 
-// :global {
-//   ::-webkit-input-placeholder {
-//     color: #444;
-//     font-size: 14px;
-//   }
-
-//   ::-moz-placeholder {
-//     color: #444;
-//     font-size: 14px;
-//   }
-
-//   :-ms-input-placeholder {
-//     color: #444;
-//     font-size: 14px;
-//   }
-// }
-
 .loginContainer {
   :global {
     .el-input input {
-      color: #444 !important;
-      caret-color: #444 !important;
+      color: #fff !important;
+      caret-color: #fff !important;
+    }
+  }
+
+  :global {
+    ::-webkit-input-placeholder {
+      color: #B2B2B2;
+      font-size: 14px;
+    }
+
+    ::-moz-placeholder {
+      color: #B2B2B2;
+      font-size: 14px;
+    }
+
+    :-ms-input-placeholder {
+      color: #B2B2B2;
+      font-size: 14px;
     }
   }
 }
@@ -66,13 +66,13 @@ body {
 .remberBox {
   display: flex;
   flex-direction: row;
-  justify-content: flex-start;
-  margin-bottom: 30px;
-  padding-top: 10px;
+  justify-content: flex-end;
+  // margin-bottom: 30px;
+  padding-top: 40px;
   align-items: center;
   cursor: pointer;
-  color: #6D7278;
-  font-size: 16px;
+  color: #fff;
+  font-size: 14px;
 
   .dotWrap {
     width: 21px;
@@ -144,9 +144,7 @@ body {
     }
 
     .el-form-item {
-      border: 1px solid #E5E6E8;
-      border-radius: 8px;
-      color: #454545;
+      border-bottom: 1px solid rgba(255, 255, 255, 0.12);
     }
   }
 
@@ -157,18 +155,19 @@ body {
 @light_gray: #eee;
 
 .loginContainer {
-  height: 100vh;
+  min-height: 100vh;
   display: flex;
   align-items: center;
-  justify-content: space-between;
-  background: url("./images/login-bg.png") no-repeat center left #fff;
+  justify-content: center;
+  // background: url("./images/login-bg.png") no-repeat center left #202129;
+  background-color: #202129;
   background-size: cover;
 
   .loginForm {
+    width: 300px;
     border-radius: 15px;
-    padding: 50px 60px 70px;
-    background-color: #fff;
-    box-shadow: 0px 0px 16px 1px #ebf6f5;
+    padding: 60px;
+    color: #fff;
   }
 
   .tips {
@@ -185,9 +184,8 @@ body {
 
   .svgContainer {
     padding: 6px 5px 6px 15px;
-    color: #999999;
     vertical-align: middle;
-    width: 30px;
+    width: 20px;
     display: inline-block;
     .icon {
       width: 1em;
@@ -203,11 +201,11 @@ body {
     display: flex;
     flex-direction: column;
     align-items: flex-start;
-    font-size: 26px;
-    color: #333;
+    font-size: 22px;
+    line-height: 30px;
+    color: #fff;
     font-weight: 600;
     margin-bottom: 30px;
-    border-bottom: 1px solid #E5E6E8;
 
     &::after {
       margin-top: 12px;
@@ -217,7 +215,6 @@ body {
       height: 4px;
       background: #22B4A9;
       margin-bottom: -2px;
-      margin-left: 13px;
     }
   }
 
@@ -230,22 +227,23 @@ body {
     cursor: pointer;
     user-select: none;
     .icon {
-      width: 1em;
-      // height: 1em;
-      vertical-align: -0.15em;
-      fill: currentColor;
+      width: 14px;
+      // vertical-align: -0.15em;
+      height: 14px;
       overflow: hidden;
+      margin-top: 12px;
     }
   }
 
   .loginHeader {
-    margin-top: 80px;
+    position: absolute;
+    top: 40px;
+    left: 40px;
     font-size: 18px;
-    color: #333333;
+    color: #6D7278;
     display: flex;
     align-items: center;
     justify-content: flex-start;
-    margin-bottom: 30px;
 
     .logo {
       img {
@@ -262,88 +260,34 @@ body {
     }
   }
 
-  .loginLeft {
-    display: flex;
-    flex-direction: column;
-    justify-content: space-between;
-    height: 100%;
-    margin-left: 170px;
-
-    .footer {
-      margin-bottom: 30px;
-      font-size: 14px;
-      position: absolute;
-      color: #B2B2B2;
-      bottom: 0;
-      width: 100%;
-      left: 0;
-      text-align: center;
-    }
+  .footer {
+    margin-top: 40px;
+    font-size: 14px;
+    color: rgba(178, 178, 178, 0.5);
+    width: 100%;
+    text-align: center;
   }
 }
 
 .loginSection {
-  margin-right: 250px;
-  width: 500px;
-}
-
-/* 大屏幕(大桌面显示器,大于等于 1200px) */
-@media screen and (max-width: 1600px) {
-  .loginSection {
-    margin-right: 200px;
-  }
-
-  .loginContainer .login-left {
-    margin-left: 100px;
-  }
-
-  // .loginContainer .login-left .footer {
-  //   margin-left: 120px;
-  // }
-}
-
-/* 大屏幕(大桌面显示器,大于等于 1200px) */
-@media screen and (max-width: 1200px) {
-  .loginSection {
-    margin-right: 100px;
-  }
-
-  .loginContainer .login-left {
-    margin-left: 50px;
-  }
-
-  // .loginContainer .login-left .footer {
-  //   margin-left: 100px;
-  // }
-}
-
-/* 中等屏幕(桌面显示器,大于等于 992px) */
-@media screen and (max-width: 992px) {
-  .loginSection {
-    margin-right: 100px;
-  }
-
-  .loginContainer .login-left {
-    margin-left: 20px;
+  margin-top: 40px;
+  width: 840px;
+  height: 520px;
+  display: flex;
+  align-items: center;
+  border-radius: 8px;
+  overflow: hidden;
+  background: rgba(255, 255, 255, 0.12);
+  border: 1px solid rgba(255, 255, 255, 0.5);
+  .formBg {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    width: 420px;
+    height: 100%;
+    background: #fff;
+    img {
+      width: 357px;
+    }
   }
-
-  // .loginContainer .login-left .footer {
-  //   margin-left: 50px;
-  // }
 }
-
-/* 小屏幕(平板,大于等于 768px) */
-@media screen and (max-width: 768px) {
-  .loginSection {
-    margin-right: 50px;
-  }
-
-  .loginContainer .login-left {
-    margin-left: 10px;
-    display: none;
-  }
-
-  // .loginContainer .login-left .footer {
-  //   margin-left: 20px;
-  // }
-}

+ 59 - 54
src/pages/login/index.tsx

@@ -99,66 +99,71 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.loginContainer}>
-        <div class={styles.loginLeft}>
-          <div class={styles.loginHeader}>
-            <div class={styles.logo}>
-              <img src="/src/pages/login/images/login-logo.png" alt="" />
+        <div class={styles.loginHeader}>
+          <div class={styles.logo}>
+            <img src="/src/assets/home/logo.png" alt="" />
+          </div>
+          <i class={styles.line}></i>
+          <div class={styles.logoName}>乐团管理系统</div>
+        </div>
+
+
+        <div>
+          <div class={styles.loginSection}>
+            <div class={styles.formBg}>
+              <img src="/src/pages/login/images/from-bg.png" alt="" />
             </div>
-            <i class={styles.line}></i>
-            <div class={styles.logoName}>乐团管理系统</div>
+            <ElForm ref="loginForm"
+              model={this.loginForm}
+              rules={this.loginRules}
+              class={styles.loginForm}
+              auto-complete="on"
+              label-position="left">
+              <div class={styles.titleContainer}>登录</div>
+              <ElFormItem prop="username"
+                class={styles.logitem}>
+                <span class={styles.svgContainer}>
+                  {/* <img class={styles.icon} src="/src/icons/svg/user.svg" alt="" /> */}
+                  <SvgIcon class={styles.icon} name="svg-user" color="#fff" />
+                </span>
+                <ElInput ref="username"
+                  class={styles.loginInput}
+                  v-model={this.loginForm.username}
+                  placeholder="请输入用户名"
+                  type="text"
+                  tabindex="1"
+                  auto-complete="off" />
+              </ElFormItem>
+              <ElFormItem prop="password"
+                class={styles.logitem}>
+                <span class={styles.svgContainer}>
+                  {/* <img class={styles.icon} src="/src/icons/svg/password.svg" alt="" /> */}
+                  <SvgIcon class={styles.icon} name="svg-password" color="#fff" />
+                </span>
+                <ElInput
+                  ref="password"
+                  class={styles.loginInput}
+                  v-model={this.loginForm.password}
+                  type={this.passwordType}
+                  placeholder="请输入密码"
+                  tabindex="2"
+                  auto-complete="off" />
+                <span class={styles.showPwd} onClick={this.showPwd}>
+                  {this.passwordType === 'password' ? <SvgIcon class={styles.icon} name="svg-eye" color="#fff" /> : <SvgIcon class={styles.icon} name="svg-eye-open" color="#fff" />}
+                </span>
+              </ElFormItem>
+              <div class={[!this.loginForm.username || !this.loginForm.password ? styles.disabled : '', styles.loginBtn]}
+                onClick={this.handleLogin}>登录</div>
+              <div class={styles.remberBox} onClick={() => { this.isSaveUserInfo = !this.isSaveUserInfo }}>
+                <div class={[this.isSaveUserInfo ? styles.checked : '', styles.dotWrap]}></div>
+                记住密码
+              </div>
+            </ElForm>
           </div>
           <div class={styles.footer}>
             Copyright © 2022 管乐迷, Inc.ALL Rights Reserved
           </div>
         </div>
-
-        <div class={styles.loginSection}>
-          <ElForm ref="loginForm"
-            model={this.loginForm}
-            rules={this.loginRules}
-            class={styles.loginForm}
-            auto-complete="on"
-            label-position="left">
-            <div class={styles.titleContainer}>登录</div>
-            <ElFormItem prop="username"
-              class={styles.logitem}>
-              <span class={styles.svgContainer}>
-                <img class={styles.icon} src="/src/icons/svg/user.svg" alt="" />
-              </span>
-              <ElInput ref="username"
-                class={styles.loginInput}
-                v-model={this.loginForm.username}
-                placeholder="请输入用户名"
-                type="text"
-                tabindex="1"
-                auto-complete="off" />
-            </ElFormItem>
-            <ElFormItem prop="password"
-              class={styles.logitem}>
-              <span class={styles.svgContainer}>
-                <img class={styles.icon} src="/src/icons/svg/password.svg" alt="" />
-              </span>
-              <ElInput
-                ref="password"
-                class={styles.loginInput}
-                v-model={this.loginForm.password}
-                type={this.passwordType}
-                placeholder="请输入密码"
-                tabindex="2"
-                auto-complete="off" />
-              <span class={styles.showPwd} onClick={this.showPwd}>
-                { this.passwordType === 'password' ? <img class={styles.icon} src="/src/icons/svg/eye.svg" alt="" /> : <img class={styles.icon} src="/src/icons/svg/eye-open.svg" alt="" /> }
-              </span>
-            </ElFormItem>
-            <div class={styles.remberBox} onClick={() => { this.isSaveUserInfo = !this.isSaveUserInfo }}>
-              <div class={[this.isSaveUserInfo ? styles.checked : '', styles.dotWrap]}></div>
-              记住密码
-            </div>
-            <div class={[!this.loginForm.username || !this.loginForm.password ? styles.disabled : '', styles.loginBtn]}
-              onClick={this.handleLogin}>登录</div>
-          </ElForm>
-
-        </div>
       </div>
     )
   }