|
@@ -0,0 +1,278 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div
|
|
|
|
|
+ class="login"
|
|
|
|
|
+ :style="{
|
|
|
|
|
+ backgroundImage: `url(${bgImg})`
|
|
|
|
|
+ }"
|
|
|
|
|
+ >
|
|
|
|
|
+ <!-- <img class="logo" v-if="active === 'phone'" src="../../assets/lvzhopu-logo.png" alt="" />
|
|
|
|
|
+ <img class="logo" v-else src="../../assets/lvzhopu-logo2.png" alt="" /> -->
|
|
|
|
|
+ <div class="tabs">
|
|
|
|
|
+ <div class="tab" :class="{ active: active === 'phone' }">账号密码登陆</div>
|
|
|
|
|
+ <div class="tab" :class="{ active: active === 'code' }">验证码登陆</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <van-form ref="form" v-if="active === 'phone'">
|
|
|
|
|
+ <div class="field-box">
|
|
|
|
|
+ <van-field placeholder="Account" v-model="form.phone" readonly>
|
|
|
|
|
+ <template #left-icon>
|
|
|
|
|
+ <img :src="require('../../assets/svgs/login_icon_zhanghao.svg')" class="icon" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-field>
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ placeholder="Password"
|
|
|
|
|
+ v-model="form.password"
|
|
|
|
|
+ readonly
|
|
|
|
|
+ :rules="[{ required: true, message: '请填写密码' }]"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #left-icon>
|
|
|
|
|
+ <img :src="require('../../assets/svgs/login_icon_mima.svg')" class="icon" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-field>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="button">
|
|
|
|
|
+ <!-- <van-button plain class="forget" v-if="$store.state.review" @click="getSim"> 获取手机号码 </van-button> -->
|
|
|
|
|
+
|
|
|
|
|
+ <van-button block native-type="submit" type="primary" class="sure">现在出发!</van-button>
|
|
|
|
|
+ <van-button
|
|
|
|
|
+ class="del"
|
|
|
|
|
+ block
|
|
|
|
|
+ plain
|
|
|
|
|
+ @click="$router.replace('/' + $route.params.companyId + '/register')"
|
|
|
|
|
+ >暂无登陆许可 立即申领</van-button
|
|
|
|
|
+ >
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-form>
|
|
|
|
|
+
|
|
|
|
|
+ <van-form ref="code" v-else>
|
|
|
|
|
+ <div class="field-box">
|
|
|
|
|
+ <van-field type="tel" name="手机号码" placeholder="Account" v-model="form.phone">
|
|
|
|
|
+ <template #left-icon>
|
|
|
|
|
+ <img :src="require('../../assets/svgs/login_icon_zhanghao.svg')" class="icon" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-field>
|
|
|
|
|
+
|
|
|
|
|
+ <van-field
|
|
|
|
|
+ type="code"
|
|
|
|
|
+ name="验证码"
|
|
|
|
|
+ placeholder="Verify"
|
|
|
|
|
+ v-model="form.code"
|
|
|
|
|
+ :rules="[{ required: true, message: '请输入验证码' }]"
|
|
|
|
|
+ >
|
|
|
|
|
+ <template #left-icon>
|
|
|
|
|
+ <img :src="require('../../assets/svgs/login_icon_code.svg')" class="icon" />
|
|
|
|
|
+ </template>
|
|
|
|
|
+ <template #button>
|
|
|
|
|
+ <van-button class="sub-code" size="small" plain>
|
|
|
|
|
+ {{ isSend ? `已发送(${sendNum})S` : '发送验证码' }}
|
|
|
|
|
+ </van-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </van-field>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <div class="button">
|
|
|
|
|
+ <!-- <van-button plain class="forget" @click="$router.replace('/forget')">
|
|
|
|
|
+ 忘记密码?
|
|
|
|
|
+ </van-button> -->
|
|
|
|
|
+
|
|
|
|
|
+ <van-button block native-type="submit" type="primary" class="sure">现在出发!</van-button>
|
|
|
|
|
+ <van-button class="del" block plain>暂无登陆许可 立即申领</van-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </van-form>
|
|
|
|
|
+
|
|
|
|
|
+ <div class="xieyi">
|
|
|
|
|
+ <van-checkbox v-model="checked" disabled>
|
|
|
|
|
+ 已阅读并同意
|
|
|
|
|
+ <span>
|
|
|
|
|
+ 《用户服务协议》
|
|
|
|
|
+ </span>
|
|
|
|
|
+ 和
|
|
|
|
|
+ <span> 《平台隐私协议》 </span>
|
|
|
|
|
+ </van-checkbox>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+export default {
|
|
|
|
|
+ name:'phone',
|
|
|
|
|
+ props: {
|
|
|
|
|
+ theme: {
|
|
|
|
|
+ type: String,
|
|
|
|
|
+ default: 'theme2'
|
|
|
|
|
+ },
|
|
|
|
|
+ companyInfo: {
|
|
|
|
|
+ type: Object,
|
|
|
|
|
+ default: () => {
|
|
|
|
|
+ return {};
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ active: 'phone',
|
|
|
|
|
+ form: {
|
|
|
|
|
+ phone: '',
|
|
|
|
|
+ password: '',
|
|
|
|
|
+ code: ''
|
|
|
|
|
+ },
|
|
|
|
|
+ checked: localStorage.getItem('agreeTerm') === 'true'
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ computed: {
|
|
|
|
|
+ bgImg() {
|
|
|
|
|
+ return this.companyInfo.bgImg || 'https://cdn.raex.vip/image/2022-09-26-17-25-55tpfNbWbJ.png';
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="less" scoped>
|
|
|
|
|
+.login {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ padding: 40px 50px 100px;
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-size: cover;
|
|
|
|
|
+ background-position: center bottom;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+ max-height: 720px;
|
|
|
|
|
+ height: 720px;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/.van-cell {
|
|
|
|
|
+ background-color: transparent;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/input:-webkit-autofill {
|
|
|
|
|
+ box-shadow: 0 0 0px 1000px #101010 inset;
|
|
|
|
|
+ -webkit-text-fill-color: #898989;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/.van-field__control {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ font-size: 14px;
|
|
|
|
|
+}
|
|
|
|
|
+.logo {
|
|
|
|
|
+ width: 94px;
|
|
|
|
|
+ height: 16px;
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ margin-bottom: 2px;
|
|
|
|
|
+}
|
|
|
|
|
+.tabs {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ padding-right: 10px;
|
|
|
|
|
+ .tab {
|
|
|
|
|
+ font-size: 16px;
|
|
|
|
|
+ color: #c8c9cc;
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+
|
|
|
|
|
+ &.active {
|
|
|
|
|
+ font-size: 20px;
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ color: var(--prim);
|
|
|
|
|
+ line-height: 30px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/deep/.field-box {
|
|
|
|
|
+ background: #101010;
|
|
|
|
|
+ box-shadow: 0px 2px 10px 0px rgba(0, 0, 0, 0.5);
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ .van-cell:after {
|
|
|
|
|
+ left: 56px;
|
|
|
|
|
+ right: 16px;
|
|
|
|
|
+ border: none;
|
|
|
|
|
+ height: 1px;
|
|
|
|
|
+ background: rgba(137, 137, 137, 0.3);
|
|
|
|
|
+ }
|
|
|
|
|
+ .van-cell + .van-cell {
|
|
|
|
|
+ margin-top: 0 !important;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.icon {
|
|
|
|
|
+ display: block;
|
|
|
|
|
+ margin-top: 16px;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/ .van-form {
|
|
|
|
|
+ margin-top: 28px;
|
|
|
|
|
+ .van-cell {
|
|
|
|
|
+ padding: 0px 16px;
|
|
|
|
|
+
|
|
|
|
|
+ .van-field__left-icon {
|
|
|
|
|
+ margin-right: 16px;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .van-cell + .van-cell {
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .van-field__body {
|
|
|
|
|
+ height: 56px;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.button {
|
|
|
|
|
+ margin-top: 60px;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+
|
|
|
|
|
+ .del {
|
|
|
|
|
+ margin-top: 20px;
|
|
|
|
|
+ border-color: #ffffff;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ background-color: #101010;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .sure {
|
|
|
|
|
+ color: #000000 !important;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .van-button {
|
|
|
|
|
+ font-weight: bold;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.sub-code {
|
|
|
|
|
+ padding-right: 0;
|
|
|
|
|
+ border-width: 0;
|
|
|
|
|
+ color: var(--prim);
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.forget {
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ font-weight: normal !important;
|
|
|
|
|
+ right: 0;
|
|
|
|
|
+ top: -65px;
|
|
|
|
|
+}
|
|
|
|
|
+.xieyi {
|
|
|
|
|
+ .flex();
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ margin-top: 50px;
|
|
|
|
|
+ font-size: 12px;
|
|
|
|
|
+
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+ span {
|
|
|
|
|
+ color: var(--prim);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.van-checkbox {
|
|
|
|
|
+ background-color: #101010;
|
|
|
|
|
+ padding: 5px 10px;
|
|
|
|
|
+ border-radius: 12px;
|
|
|
|
|
+}
|
|
|
|
|
+/deep/.van-checkbox__label {
|
|
|
|
|
+ color: #fff;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/deep/.van-checkbox__icon--checked .van-icon {
|
|
|
|
|
+ background: var(--prim);
|
|
|
|
|
+ border-width: 0;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.van-button--primary {
|
|
|
|
|
+ background-color: var(--prim);
|
|
|
|
|
+ border-color: var(--prim);
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|