11 changed files with 418 additions and 31 deletions
After Width: | Height: | Size: 6.3 KiB |
@ -0,0 +1,12 @@ |
|||||||
|
.anim-bounce { |
||||||
|
animation: bounce .1s ease-in-out 5 alternate; |
||||||
|
} |
||||||
|
|
||||||
|
@keyframes bounce { |
||||||
|
from { |
||||||
|
transform: translateX(-1rem); |
||||||
|
} |
||||||
|
to { |
||||||
|
transform: translateX(1rem); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,40 @@ |
|||||||
|
<template> |
||||||
|
<div class="Check" @click="$emit('update:modelValue',!modelValue)"> |
||||||
|
<img v-show="!modelValue" src="../assets/img/icon/components/check/round-gray.png" alt=""> |
||||||
|
<img v-show="modelValue && mode === 'gray'" src="../assets/img/icon/components/check/check-gray.png" alt=""> |
||||||
|
<img v-show="modelValue && mode === 'red'" src="../assets/img/icon/components/check/check-red.png" alt=""> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: "Check", |
||||||
|
props: { |
||||||
|
modelValue: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
}, |
||||||
|
mode: { |
||||||
|
type: String, |
||||||
|
default: 'gray'//red |
||||||
|
} |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return {} |
||||||
|
}, |
||||||
|
computed: {}, |
||||||
|
created() { |
||||||
|
}, |
||||||
|
methods: {} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
@import "../assets/scss/index"; |
||||||
|
|
||||||
|
.Check { |
||||||
|
img { |
||||||
|
width: 1.4rem; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,168 @@ |
|||||||
|
<template> |
||||||
|
<div class="PasswordLogin"> |
||||||
|
<BaseHeader> |
||||||
|
<template v-slot:right> |
||||||
|
<span class="f16">帮助</span> |
||||||
|
</template> |
||||||
|
</BaseHeader> |
||||||
|
<div class="content"> |
||||||
|
<div class="notice"> |
||||||
|
<div class="title">登录看朋友内容</div> |
||||||
|
<div class="sub-title">未注册的手机号验证通过后将自动注册</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="input-number"> |
||||||
|
<div class="left"> |
||||||
|
<span>+86</span> |
||||||
|
<div class="arrow"></div> |
||||||
|
</div> |
||||||
|
<input type="text" class="right" placeholder="请输入手机号"> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="protocol"> |
||||||
|
<div class="left"> |
||||||
|
<Check v-model="isAgree"/> |
||||||
|
</div> |
||||||
|
<div class="right"> |
||||||
|
已阅读并同意 |
||||||
|
<span class="link" @click="$nav('/service-protocol',{type:'“抖音”用户服务协议'})">用户协议</span> |
||||||
|
和 |
||||||
|
<span class="link" @click="$nav('/service-protocol',{type:'“抖音”隐私政策'})">隐私政策</span> |
||||||
|
,同时登录并使用抖音火山版(原“火山小视频”)和抖音 |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="button primary no-active disabled">获取短信验证码</div> |
||||||
|
|
||||||
|
<div class="options"> |
||||||
|
<span class="link">密码登录</span> |
||||||
|
<span class="link">其他方式登录</span> |
||||||
|
</div> |
||||||
|
|
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
import Check from "../../components/Check"; |
||||||
|
|
||||||
|
export default { |
||||||
|
name: "PasswordLogin", |
||||||
|
components: { |
||||||
|
Check |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return { |
||||||
|
isAgree:false |
||||||
|
} |
||||||
|
}, |
||||||
|
computed: {}, |
||||||
|
created() { |
||||||
|
}, |
||||||
|
methods: {} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
@import "../../assets/scss/index"; |
||||||
|
|
||||||
|
.PasswordLogin { |
||||||
|
position: fixed; |
||||||
|
left: 0; |
||||||
|
right: 0; |
||||||
|
bottom: 0; |
||||||
|
top: 0; |
||||||
|
overflow: auto; |
||||||
|
color: black; |
||||||
|
font-size: 1.4rem; |
||||||
|
background: white; |
||||||
|
|
||||||
|
.content { |
||||||
|
padding: 6rem 3rem; |
||||||
|
//padding-top: 6rem; |
||||||
|
|
||||||
|
.notice { |
||||||
|
margin-bottom: 2rem; |
||||||
|
margin-top: 4rem; |
||||||
|
display: flex; |
||||||
|
align-items: flex-start; |
||||||
|
flex-direction: column; |
||||||
|
|
||||||
|
.title { |
||||||
|
font-size: 2rem; |
||||||
|
margin-bottom: 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
.sub-title { |
||||||
|
font-size: 1.2rem; |
||||||
|
color: $second-text-color; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.input-number { |
||||||
|
display: flex; |
||||||
|
background: whitesmoke; |
||||||
|
padding: 1.5rem 1rem; |
||||||
|
|
||||||
|
.left { |
||||||
|
font-size: 1.2rem; |
||||||
|
display: flex; |
||||||
|
align-items: center; |
||||||
|
margin-right: 1rem; |
||||||
|
padding-right: 1rem; |
||||||
|
position: relative; |
||||||
|
.arrow { |
||||||
|
margin-top: .4rem; |
||||||
|
margin-left: .5rem; |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border: .3rem solid transparent; |
||||||
|
border-top: .5rem solid black; |
||||||
|
} |
||||||
|
|
||||||
|
&::before{ |
||||||
|
content: ' '; |
||||||
|
position: absolute; |
||||||
|
width: 1px; |
||||||
|
height: .8rem; |
||||||
|
top: 4px; |
||||||
|
right: 0; |
||||||
|
background: gainsboro; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.right { |
||||||
|
flex: 1; |
||||||
|
outline: none; |
||||||
|
border: none; |
||||||
|
background: whitesmoke; |
||||||
|
caret-color:red; |
||||||
|
//background: red; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.button { |
||||||
|
margin-bottom: .5rem; |
||||||
|
} |
||||||
|
|
||||||
|
.protocol { |
||||||
|
color: gray; |
||||||
|
margin-top: 2rem; |
||||||
|
margin-bottom: 2rem; |
||||||
|
font-size: 1.2rem; |
||||||
|
display: flex; |
||||||
|
|
||||||
|
.left { |
||||||
|
padding-top: .1rem; |
||||||
|
margin-right: .5rem; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.options{ |
||||||
|
font-size: 1.2rem; |
||||||
|
margin-top: 2rem; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -0,0 +1,62 @@ |
|||||||
|
<template> |
||||||
|
<transition name="fade"> |
||||||
|
<div class="Tooltip" v-if="modelValue"> |
||||||
|
<div class="arrow"></div> |
||||||
|
<span>请先勾选同意后再进行登录</span> |
||||||
|
</div> |
||||||
|
</transition> |
||||||
|
</template> |
||||||
|
<script> |
||||||
|
export default { |
||||||
|
name: "Popover", |
||||||
|
props: { |
||||||
|
modelValue: { |
||||||
|
type: Boolean, |
||||||
|
default: false |
||||||
|
} |
||||||
|
}, |
||||||
|
data() { |
||||||
|
return {} |
||||||
|
}, |
||||||
|
computed: {}, |
||||||
|
created() { |
||||||
|
}, |
||||||
|
methods: {} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped lang="scss"> |
||||||
|
@import "../../../assets/scss/index"; |
||||||
|
|
||||||
|
.scale-enter-active, |
||||||
|
.scale-leave-active { |
||||||
|
transition: all 0.3s ease; |
||||||
|
} |
||||||
|
|
||||||
|
.scale-enter-from, |
||||||
|
.scale-leave-to { |
||||||
|
//transform: scale(0); |
||||||
|
opacity: 0; |
||||||
|
} |
||||||
|
|
||||||
|
.Tooltip { |
||||||
|
z-index: 9; |
||||||
|
position: absolute; |
||||||
|
font-size: 1.2rem; |
||||||
|
color: white; |
||||||
|
padding: 1rem; |
||||||
|
border-radius: .8rem; |
||||||
|
background: black; |
||||||
|
|
||||||
|
.arrow { |
||||||
|
width: 0; |
||||||
|
height: 0; |
||||||
|
border: .7rem solid transparent; |
||||||
|
border-top: .7rem solid black; |
||||||
|
position: absolute; |
||||||
|
left: 1rem; |
||||||
|
bottom: -1.4rem; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
</style> |
Loading…
Reference in new issue