登录注册+重置一半
@ -43,6 +43,16 @@ const routes: Array<RouteRecordRaw> = [
 | 
			
		||||
    name: 'Sign',
 | 
			
		||||
    component: () => import('../views/login/Sign.vue')
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: '/reset',
 | 
			
		||||
    name: 'Reset',
 | 
			
		||||
    component: () => import('../views/login/Reset.vue')
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    path: '/about',
 | 
			
		||||
    name: 'About',
 | 
			
		||||
    component: () => import('../views/login/About.vue')
 | 
			
		||||
  },
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
const router = createRouter({
 | 
			
		||||
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 274 B After Width: | Height: | Size: 274 B  | 
| 
		 Before Width: | Height: | Size: 533 B After Width: | Height: | Size: 533 B  | 
| 
		 Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB  | 
| 
		 Before Width: | Height: | Size: 168 KiB After Width: | Height: | Size: 168 KiB  | 
| 
		 Before Width: | Height: | Size: 6.7 KiB After Width: | Height: | Size: 6.7 KiB  | 
| 
		 Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB  | 
| 
		 Before Width: | Height: | Size: 449 B After Width: | Height: | Size: 449 B  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB  | 
| 
		 Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB  | 
							
								
								
									
										23
									
								
								src/views/login/About.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,23 @@
 | 
			
		||||
<template>
 | 
			
		||||
<div class="about">
 | 
			
		||||
    
 | 
			
		||||
</div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent, ref } from "vue";
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  name: "About",
 | 
			
		||||
  components: {
 | 
			
		||||
  },
 | 
			
		||||
  setup() {
 | 
			
		||||
 | 
			
		||||
    return {
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
 | 
			
		||||
</style>
 | 
			
		||||
@ -114,9 +114,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="icons">
 | 
			
		||||
          <img src="../../../static/weixin.png" alt="" class="icon" />
 | 
			
		||||
          <img src="../../../static/weibo.png" alt="" class="icon" />
 | 
			
		||||
          <img src="../../../static/facebook.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/weixin.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/weibo.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/facebook.png" alt="" class="icon" />
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@ -131,10 +131,10 @@
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="relation">
 | 
			
		||||
          <div class="more">了解更多</div>
 | 
			
		||||
          <img src="../../../static/tel.png" alt="" class="icon">
 | 
			
		||||
          <img src="@/static/images/tel.png" alt="" class="icon">
 | 
			
		||||
          <div>136-0111-1111</div> 
 | 
			
		||||
 | 
			
		||||
          <img src="../../../static/email.png" alt="" class="icon email">
 | 
			
		||||
          <img src="@/static/images/email.png" alt="" class="icon email">
 | 
			
		||||
          <div>136-0111-1111</div>       
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@ -208,7 +208,7 @@ export default defineComponent({
 | 
			
		||||
.login {
 | 
			
		||||
  min-width: 100%;
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  background: url("../../../static/loginbg.png");
 | 
			
		||||
  background: url("../../static/images/loginbg.png");
 | 
			
		||||
  background-size: 100% 130%;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  padding-top: 145px;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										340
									
								
								src/views/login/Reset.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,340 @@
 | 
			
		||||
<template>
 | 
			
		||||
  <div class="login">
 | 
			
		||||
    <div class="box">
 | 
			
		||||
      <div :class="stepnow != 2 ? 'left' : 'left left1'">
 | 
			
		||||
        <div class="title">
 | 
			
		||||
         <span class="orgname">Beelink</span>密码重置
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div v-if="stepnow == 1">
 | 
			
		||||
          <div class="nosign">
 | 
			
		||||
            想起密码?
 | 
			
		||||
            <span class="tosign"> 去登录 </span>
 | 
			
		||||
          </div>
 | 
			
		||||
 | 
			
		||||
          <a-form :layout="formLayout">
 | 
			
		||||
            <a-form-item label="账户名" class="form-item">
 | 
			
		||||
                <a-input class="shuru" placeholder="请输入您的邮箱或者手机号" />
 | 
			
		||||
            </a-form-item>
 | 
			
		||||
            <div class="submit" @click="next(2)">下一步</div>
 | 
			
		||||
        
 | 
			
		||||
          </a-form>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div v-if="stepnow == 2">
 | 
			
		||||
          <div class="nosign">
 | 
			
		||||
            已有账号?
 | 
			
		||||
            <span class="tosign"> 去登录 </span>
 | 
			
		||||
          </div>
 | 
			
		||||
          <a-form :layout="formLayout">
 | 
			
		||||
            <div class="signform">
 | 
			
		||||
              <a-form-item label="手机号" class="form-item">
 | 
			
		||||
                <a-input style="width: 50%" placeholder="请输入您的手机号" />
 | 
			
		||||
 | 
			
		||||
            </a-form-item>
 | 
			
		||||
            <a-form-item label="验证码" class="form-item">
 | 
			
		||||
              <!-- <a-input-group compact>
 | 
			
		||||
                <div class="getcode" @/click="getcode">
 | 
			
		||||
                  点击获取验证码{{ time == 60 ? "" : "(" + time + ")" }}
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="line"></div>
 | 
			
		||||
                <a-input style="width: 50%" placeholder="请输入您的验证码" />
 | 
			
		||||
              </a-input-group> -->
 | 
			
		||||
 | 
			
		||||
               <a-input-group compact>
 | 
			
		||||
                   <div class="getcode" @click="getcode">
 | 
			
		||||
                  点击获取验证码{{ time == 60 ? "" : "(" + time + ")" }}
 | 
			
		||||
                </div>
 | 
			
		||||
      
 | 
			
		||||
                <div class="line"></div>
 | 
			
		||||
                <a-input style="width: 50%" placeholder="请输入您的手机号" />
 | 
			
		||||
              </a-input-group>
 | 
			
		||||
            </a-form-item>
 | 
			
		||||
            </div>
 | 
			
		||||
 | 
			
		||||
            <div class="submit" @click="next(3)">立刻注册</div>
 | 
			
		||||
            <div class="orginfo">Beelink公司版权所有 2019—2022</div>
 | 
			
		||||
          </a-form>
 | 
			
		||||
        </div>
 | 
			
		||||
 | 
			
		||||
        <div v-if="stepnow == 3">
 | 
			
		||||
          <div class="nosign">您已完成注册</div>
 | 
			
		||||
          <img src="@/static/images/success.png" alt="" class="success">
 | 
			
		||||
          <div class="ale">恭喜您注册成功,点击跳转到我的档案页面</div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
      <div :class="stepnow != 2 ? 'right' : 'right right1'">
 | 
			
		||||
        <div class="steps">
 | 
			
		||||
          <div class="step">
 | 
			
		||||
            <div :class="stepnow == 1 ? 'circle step1' : 'circle'">01</div>
 | 
			
		||||
            <div :class="stepnow == 1 ? 'stepnow' : ''">验证手机号</div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="stepline"></div>
 | 
			
		||||
          <div class="step">
 | 
			
		||||
            <div :class="stepnow == 2 ? 'circle step1' : 'circle'">02</div>
 | 
			
		||||
            <div :class="stepnow == 2 ? 'stepnow' : ''">填写帐号信息</div>
 | 
			
		||||
            <div class="back" @click="next(1)" v-if="stepnow==2">
 | 
			
		||||
              返回上一步
 | 
			
		||||
            </div>
 | 
			
		||||
          </div>
 | 
			
		||||
          <div class="stepline"></div>
 | 
			
		||||
          <div class="step">
 | 
			
		||||
            <div :class="stepnow == 3 ? 'circle step1' : 'circle'">03</div>
 | 
			
		||||
            <div :class="stepnow == 3 ? 'stepnow' : ''">帐号注册完成</div>
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="icons" v-if="stepnow == 2">
 | 
			
		||||
          <img src="@/static/images/weixin.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/weibo.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/facebook.png" alt="" class="icon" />
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
  </div>
 | 
			
		||||
</template>
 | 
			
		||||
 | 
			
		||||
<script lang="ts">
 | 
			
		||||
import { defineComponent, ref } from "vue";
 | 
			
		||||
export default defineComponent({
 | 
			
		||||
  name: "Sign",
 | 
			
		||||
  components: {},
 | 
			
		||||
  setup() {
 | 
			
		||||
    const formLayout = {
 | 
			
		||||
      labelCol: 4,
 | 
			
		||||
      wrapperCol: 14,
 | 
			
		||||
    };
 | 
			
		||||
    const time = ref(60);
 | 
			
		||||
    const getcode: () => void = () => {
 | 
			
		||||
      console.log(11111);
 | 
			
		||||
      const timestep = setInterval(() => {
 | 
			
		||||
        console.log(11112);
 | 
			
		||||
        time.value = time.value - 1;
 | 
			
		||||
        if (time.value > 0) {
 | 
			
		||||
          console.log();
 | 
			
		||||
        } else {
 | 
			
		||||
          time.value = 60;
 | 
			
		||||
          clearInterval(timestep);
 | 
			
		||||
        }
 | 
			
		||||
      }, 1000);
 | 
			
		||||
    };
 | 
			
		||||
    const ifagree = ref(true);
 | 
			
		||||
    const agree: () => void = () => {
 | 
			
		||||
      ifagree.value = ifagree.value == true ? false : true;
 | 
			
		||||
      console.log(ifagree.value, 600);
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    const stepnow = ref(1);
 | 
			
		||||
    const next: (e: number) => void = (e: number) => {
 | 
			
		||||
      stepnow.value = e;
 | 
			
		||||
    };
 | 
			
		||||
    return {
 | 
			
		||||
      formLayout,
 | 
			
		||||
      getcode,
 | 
			
		||||
      time,
 | 
			
		||||
      agree,
 | 
			
		||||
      ifagree,
 | 
			
		||||
      stepnow,
 | 
			
		||||
      next,
 | 
			
		||||
    };
 | 
			
		||||
  },
 | 
			
		||||
});
 | 
			
		||||
</script>
 | 
			
		||||
<style lang="scss" scoped>
 | 
			
		||||
.login /deep/ .ant-select-selection {
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
.login /deep/ .ant-input {
 | 
			
		||||
  border: none;
 | 
			
		||||
}
 | 
			
		||||
.ant-input:focus {
 | 
			
		||||
  border: none;
 | 
			
		||||
  border-bottom: 1px solid white !important;
 | 
			
		||||
  box-shadow: none;
 | 
			
		||||
}
 | 
			
		||||
.login /deep/ .ant-form-item-label {
 | 
			
		||||
  line-height: 14px;
 | 
			
		||||
}
 | 
			
		||||
.login /deep/ .ant-form-item /deep/ label {
 | 
			
		||||
  color: #0dbba4;
 | 
			
		||||
  font-size: 11px;
 | 
			
		||||
  left: 1px;
 | 
			
		||||
}
 | 
			
		||||
.login {
 | 
			
		||||
  min-width: 100vw;
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  background: url("../../static/images/loginbg.png");
 | 
			
		||||
  background-size: 100% 130%;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  padding-top: 145px;
 | 
			
		||||
  .box {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    justify-content: space-around;
 | 
			
		||||
    .left1 {
 | 
			
		||||
      width: 710px !important;
 | 
			
		||||
    }
 | 
			
		||||
    .left {
 | 
			
		||||
      width: 314px;
 | 
			
		||||
      .title {
 | 
			
		||||
        font-size: 17px;
 | 
			
		||||
        font-weight: bold;
 | 
			
		||||
      }
 | 
			
		||||
      .orgname {
 | 
			
		||||
        font-size: 29px;
 | 
			
		||||
        color: #0dbba4;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
      }
 | 
			
		||||
      .nosign {
 | 
			
		||||
        font-size: 12px;
 | 
			
		||||
        color: #666666;
 | 
			
		||||
        margin-top: 17px;
 | 
			
		||||
        margin-bottom: 35px;
 | 
			
		||||
      }
 | 
			
		||||
      .tosign {
 | 
			
		||||
        color: #0dbba4;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
      }
 | 
			
		||||
      .tab {
 | 
			
		||||
        margin-bottom: 30px;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      .form-item {
 | 
			
		||||
        border-bottom: 1px solid #e5e5e5;
 | 
			
		||||
        font-size: 15px;
 | 
			
		||||
        margin-right: 40px;
 | 
			
		||||
      }
 | 
			
		||||
      .line {
 | 
			
		||||
        width: 1px;
 | 
			
		||||
        height: 14px;
 | 
			
		||||
        background: #e5e5e5;
 | 
			
		||||
        margin-top: 10px;
 | 
			
		||||
        position: relative;
 | 
			
		||||
        z-index: 999;
 | 
			
		||||
      }
 | 
			
		||||
      .getcode {
 | 
			
		||||
        font-size: 15px;
 | 
			
		||||
        color: #08ae98;
 | 
			
		||||
        width: 119px;
 | 
			
		||||
        line-height: 30px;
 | 
			
		||||
        cursor: pointer;
 | 
			
		||||
      }
 | 
			
		||||
      .orginfo {
 | 
			
		||||
        margin-top: 178px;
 | 
			
		||||
      }
 | 
			
		||||
      .submit {
 | 
			
		||||
        width: 143px;
 | 
			
		||||
        height: 35px;
 | 
			
		||||
        background: linear-gradient(
 | 
			
		||||
          90deg,
 | 
			
		||||
          #00dac2,
 | 
			
		||||
          #42de9e,
 | 
			
		||||
          #88e062,
 | 
			
		||||
          #d0eb3e,
 | 
			
		||||
          #fffa18
 | 
			
		||||
        );
 | 
			
		||||
        border-radius: 18px;
 | 
			
		||||
        font-size: 15px;
 | 
			
		||||
        color: white;
 | 
			
		||||
        font-weight: 800;
 | 
			
		||||
        text-align: center;
 | 
			
		||||
        line-height: 35px;
 | 
			
		||||
        margin-top: 45px;
 | 
			
		||||
      }
 | 
			
		||||
      .agreement {
 | 
			
		||||
        font-size: 12px;
 | 
			
		||||
        display: flex;
 | 
			
		||||
        margin-top: 23px;
 | 
			
		||||
        cursor: default;
 | 
			
		||||
        .ifagree {
 | 
			
		||||
          width: 12px;
 | 
			
		||||
          height: 12px;
 | 
			
		||||
          border-radius: 3px;
 | 
			
		||||
          border: 1px solid #0ebca4;
 | 
			
		||||
          margin: auto 0;
 | 
			
		||||
          margin-right: 7px;
 | 
			
		||||
          .agree {
 | 
			
		||||
            width: 8px;
 | 
			
		||||
            height: 6px;
 | 
			
		||||
            position: relative;
 | 
			
		||||
            top: -4px;
 | 
			
		||||
            left: 2.5px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    .right1 {
 | 
			
		||||
      width: 230px !important;
 | 
			
		||||
    }
 | 
			
		||||
    .right {
 | 
			
		||||
      width: 690px;
 | 
			
		||||
      .steps {
 | 
			
		||||
        padding-top: 112px;
 | 
			
		||||
        .stepline {
 | 
			
		||||
          width: 1px;
 | 
			
		||||
          height: 50px;
 | 
			
		||||
          border: 1px dashed #eeeeee;
 | 
			
		||||
          position: relative;
 | 
			
		||||
          left: 13px;
 | 
			
		||||
        }
 | 
			
		||||
        .step {
 | 
			
		||||
          display: flex;
 | 
			
		||||
          color: #999999;
 | 
			
		||||
          font-size: 11px;
 | 
			
		||||
          line-height: 28px;
 | 
			
		||||
          font-weight: bold;
 | 
			
		||||
          .back {
 | 
			
		||||
            color: #0dbba4;
 | 
			
		||||
            margin-left: 23px;
 | 
			
		||||
          }
 | 
			
		||||
          .circle {
 | 
			
		||||
            width: 29px;
 | 
			
		||||
            height: 29px;
 | 
			
		||||
            border-radius: 15px;
 | 
			
		||||
            background: #eeeeee;
 | 
			
		||||
            font-size: 12px;
 | 
			
		||||
            color: #999999;
 | 
			
		||||
            text-align: center;
 | 
			
		||||
            line-height: 29px;
 | 
			
		||||
            font-weight: 800;
 | 
			
		||||
            margin-right: 17px;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        .step1 {
 | 
			
		||||
          background: #08ae98 !important;
 | 
			
		||||
          color: white !important;
 | 
			
		||||
        }
 | 
			
		||||
        .stepnow {
 | 
			
		||||
          color: #111111;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .signform {
 | 
			
		||||
    display: flex;
 | 
			
		||||
    flex-wrap: wrap;
 | 
			
		||||
    .shuru {
 | 
			
		||||
      width: 313px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .icons {
 | 
			
		||||
    margin-right: 41px;
 | 
			
		||||
    margin-top: 227px;
 | 
			
		||||
    .icon {
 | 
			
		||||
      width: 28px;
 | 
			
		||||
      height: 28px;
 | 
			
		||||
      margin-right: 18px;
 | 
			
		||||
      float: right;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  .success{
 | 
			
		||||
    width: 250px;
 | 
			
		||||
    height: 233px;
 | 
			
		||||
  }
 | 
			
		||||
  .ale{
 | 
			
		||||
    color:#08AE98;
 | 
			
		||||
    font-size: 14px;
 | 
			
		||||
    font-weight: 800;
 | 
			
		||||
    margin-top: 34px;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
@ -42,7 +42,7 @@
 | 
			
		||||
            <div class="agreement" @click="agree">
 | 
			
		||||
              <div class="ifagree">
 | 
			
		||||
                <img
 | 
			
		||||
                  src="../../../static/agree.png"
 | 
			
		||||
                  src="@/static/images/agree.png"
 | 
			
		||||
                  alt=""
 | 
			
		||||
                  class="agree"
 | 
			
		||||
                  v-if="ifagree"
 | 
			
		||||
@ -92,7 +92,7 @@
 | 
			
		||||
 | 
			
		||||
        <div v-if="stepnow == 3">
 | 
			
		||||
          <div class="nosign">您已完成注册</div>
 | 
			
		||||
          <img src="../../../static/success.png" alt="" class="success">
 | 
			
		||||
          <img src="@/static/images/success.png" alt="" class="success">
 | 
			
		||||
          <div class="ale">恭喜您注册成功,点击跳转到我的档案页面</div>
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
@ -117,9 +117,9 @@
 | 
			
		||||
          </div>
 | 
			
		||||
        </div>
 | 
			
		||||
        <div class="icons" v-if="stepnow == 2">
 | 
			
		||||
          <img src="../../../static/weixin.png" alt="" class="icon" />
 | 
			
		||||
          <img src="../../../static/weibo.png" alt="" class="icon" />
 | 
			
		||||
          <img src="../../../static/facebook.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/weixin.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/weibo.png" alt="" class="icon" />
 | 
			
		||||
          <img src="@/static/images/facebook.png" alt="" class="icon" />
 | 
			
		||||
        </div>
 | 
			
		||||
      </div>
 | 
			
		||||
    </div>
 | 
			
		||||
@ -195,7 +195,7 @@ export default defineComponent({
 | 
			
		||||
.login {
 | 
			
		||||
  min-width: 100vw;
 | 
			
		||||
  height: 100vh;
 | 
			
		||||
  background: url("../../../static/loginbg.png");
 | 
			
		||||
  background: url("../../static/images/loginbg.png");
 | 
			
		||||
  background-size: 100% 130%;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  padding-top: 145px;
 | 
			
		||||
 | 
			
		||||