Browse Source

登录页面和优化footer

pull/19/head
zyronon 4 years ago
parent
commit
4b4e84f362
  1. 1
      src/App.vue
  2. BIN
      src/assets/img/icon/add.png
  3. BIN
      src/assets/img/icon/components/dark-back.png
  4. 0
      src/assets/img/icon/components/dark-close.png
  5. 0
      src/assets/img/icon/components/gray-back.png
  6. 0
      src/assets/img/icon/components/light-back.png
  7. BIN
      src/assets/img/icon/components/light-close.png
  8. BIN
      src/assets/img/icon/refresh.png
  9. 2
      src/assets/scss/color.scss
  10. 17
      src/components/Back.vue
  11. 22
      src/components/BaseHeader.vue
  12. 91
      src/components/Footer.vue
  13. 2
      src/components/Mask.vue
  14. 6
      src/components/dialog/ConfirmDialog.vue
  15. 3
      src/components/dialog/FromBottomDialog.vue
  16. 5
      src/components/dialog/NoticeDialog.vue
  17. 5
      src/components/dialog/SimpleConfirmDialog.vue
  18. 8
      src/config/index.js
  19. 261
      src/pages/home/Attention.vue
  20. 2
      src/pages/login/Base.scss
  21. 56
      src/pages/login/Help.vue
  22. 4
      src/pages/login/Login.vue
  23. 69
      src/pages/login/OtherLogin.vue
  24. 2
      src/pages/login/PasswordLogin.vue
  25. 2
      src/pages/login/RetrievePassword.vue
  26. 2
      src/pages/login/VerificationCode.vue
  27. 2
      src/pages/login/components/LoginInput.vue
  28. 2
      src/pages/login/components/Tooltip.vue
  29. 2
      src/pages/message/Chat.vue
  30. 2
      src/router/index.js
  31. 1
      src/utils/global-methods.js

1
src/App.vue

@ -74,6 +74,7 @@ export default { @@ -74,6 +74,7 @@ export default {
'/login/password',
'/login/verification-code',
'/login/retrieve-password',
'/login/help',
'/service-protocol',

BIN
src/assets/img/icon/add.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 253 B

After

Width:  |  Height:  |  Size: 2.8 KiB

BIN
src/assets/img/icon/components/dark-back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.7 KiB

0
src/assets/img/icon/components/close-black.png → src/assets/img/icon/components/dark-close.png

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

0
src/assets/img/icon/components/back-gray.png → src/assets/img/icon/components/gray-back.png

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 9.8 KiB

0
src/assets/img/icon/components/back-white.png → src/assets/img/icon/components/light-back.png

Before

Width:  |  Height:  |  Size: 7.6 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

BIN
src/assets/img/icon/components/light-close.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
src/assets/img/icon/refresh.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 526 B

2
src/assets/scss/color.scss

@ -11,4 +11,4 @@ $disable-primary-btn-color: rgba(252, 47, 86, .5); @@ -11,4 +11,4 @@ $disable-primary-btn-color: rgba(252, 47, 86, .5);
.second-text-color {
color: $second-text-color;
}
}

17
src/components/Back.vue

@ -7,11 +7,11 @@ export default { @@ -7,11 +7,11 @@ export default {
props: {
mode: {
type: String,
default: 'gray',//white
default: 'gray'
},
isClose: {
type: Boolean,
default: false
img: {
type: String,
default: 'back'
},
direction: {
type: String,
@ -23,16 +23,11 @@ export default { @@ -23,16 +23,11 @@ export default {
},
},
data() {
return {
// src: require(`../assets/img/icon/components/back-${this.mode}.png`)
}
return {}
},
computed: {
src() {
if (this.isClose) {
return require(`../assets/img/icon/components/close-${this.mode}.png`)
}
return require(`../assets/img/icon/components/back-${this.mode}.png`)
return require(`../assets/img/icon/components/${this.mode}-${this.img}.png`)
}
},
mounted() {

22
src/components/BaseHeader.vue

@ -1,10 +1,12 @@ @@ -1,10 +1,12 @@
<template>
<div id='BaseHeader' :class="mode">
<div class="header">
<back :isClose="isClose" :mode="isClose?'black':'gray'"
@click="back()"
class="left"
direction="left"/>
<back
:mode="backMode"
:img="backImg"
@click="back()"
class="left"
direction="left"/>
<slot name="center"><span></span></slot>
<slot name="right"><span></span></slot>
</div>
@ -18,7 +20,15 @@ export default { @@ -18,7 +20,15 @@ export default {
props: {
mode: {
type: String,
default: 'dark',//light
default: 'dark'
},
backMode:{
type: String,
default: 'gray'
},
backImg:{
type: String,
default: 'back',
},
isClose: {
type: Boolean,
@ -72,7 +82,7 @@ export default { @@ -72,7 +82,7 @@ export default {
.left {
position: absolute;
left: 1rem;
top: 1.5rem;
top: 2rem;
}
& > :nth-last-child(1) {

91
src/components/Footer.vue

@ -1,15 +1,18 @@ @@ -1,15 +1,18 @@
<template>
<div class="footer f16 " @touchmove.stop="false">
<div class="l-button" @click="refresh()">
<span v-if="!isRefresh" :class="{active:currentTab===1}">首页</span>
<img v-else src="../assets/img/icon/refresh.png" alt="" class="refresh">
<div class="l-button" @click="refresh(1)">
<span v-if="!isRefresh1" :class="{active:currentTab===1}">首页</span>
<img v-if="isRefresh1 " src="../assets/img/icon/refresh1.png" alt="" class="refresh">
</div>
<div class="l-button" @click="refresh(2)">
<span v-if="!isRefresh2" :class="{active:currentTab === 2}">关注</span>
<img v-if="isRefresh2" src="../assets/img/icon/refresh1.png" alt="" class="refresh">
</div>
<div class="l-button" @click="tab(2)"><span :class="{active:currentTab===2}">关注</span></div>
<div class="l-button" @click="tab(3)">
<div class="add-ctn">
<div class="add-one"></div>
<div class="add-two"></div>
<img src="../assets/img/icon/add.svg" alt="" class="add">
<div class="add-one">
<img src="../assets/img/icon/add-light.png" alt="" class="add">
</div>
</div>
</div>
<div class="l-button" @click="tab(4)"><span :class="{active:currentTab===4}">消息</span></div>
@ -24,7 +27,8 @@ export default { @@ -24,7 +27,8 @@ export default {
props: ['initTab'],
data() {
return {
isRefresh: false,
isRefresh1: false,
isRefresh2: false,
currentTab: this.initTab,
}
},
@ -49,15 +53,14 @@ export default { @@ -49,15 +53,14 @@ export default {
break
}
},
refresh() {
if (location.hash === '#/') {
this.isRefresh = !this.isRefresh
refresh(index) {
if (this.currentTab === index) {
this['isRefresh' + index] = !this['isRefresh' + index]
setTimeout(() => {
this.isRefresh = false
this['isRefresh' + index] = !this['isRefresh' + index]
}, 2000)
} else {
this.currentTab = 1
this.$router.push('/')
this.tab(index)
}
}
}
@ -89,60 +92,42 @@ export default { @@ -89,60 +92,42 @@ export default {
.refresh {
width: 25%;
animation: rotate .8s linear infinite;
animation: rotate .5s linear infinite;
}
@keyframes rotate {
0% {
-webkit-transform: rotate(0deg);
}
45% {
-webkit-transform: rotate(-180deg);
}
55% {
-webkit-transform: rotate(-180deg);
from {
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(-360deg);
to {
transform: rotate(-360deg);
}
}
.add-ctn {
width: 70%;
height: 55%;
//background: white;
position: relative;
display: flex;
justify-content: center;
$height: 2.7rem;
$width: 4rem;
height: $height;
width: $width;
background: linear-gradient(to right, #59dcdf, #ff5f75);
border-radius: .5rem;
box-sizing: border-box;
padding: 0 .2rem;
.add-one {
position: absolute;
width: 100%;
height: 100%;
background: linear-gradient(to right, #59dcdf, #ff5f75);
border-radius: 5px;
}
.add-two {
border-radius: 5px;
position: relative;
width: 90%;
box-sizing: border-box;
height: 100%;
background: white;
border-radius: .5rem;
border: 2px solid white;
background: black;
display: flex;
align-items: center;
justify-content: center;
}
img {
top: 0;
bottom: 0;
right: 0;
left: 0;
margin: auto;
position: absolute;
width: 50%;
height: 50%;
width: 2rem;
}
}

2
src/components/Mask.vue

@ -18,7 +18,7 @@ export default { @@ -18,7 +18,7 @@ export default {
<style scoped lang="scss">
.Mask {
z-index: 2;
z-index: 3;
position: fixed;
top: 0;
bottom: 0;

6
src/components/dialog/ConfirmDialog.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="ConfirmDialog " @click="$emit('dismiss')">
<div class="content" @click.stop="null">
<div class="content" @click.stop="stop">
<div class="body">
<div class="title" v-if="title">{{ title }}</div>
<div class="subtitle" :class="subtitleColor" v-if="subtitle">{{ subtitle }}</div>
@ -59,6 +59,10 @@ export default { @@ -59,6 +59,10 @@ export default {
},
data() {
return {}
},
methods: {
stop() {
}
}
}
</script>

3
src/components/dialog/FromBottomDialog.vue

@ -40,7 +40,7 @@ export default { @@ -40,7 +40,7 @@ export default {
// default: 'light'
// default: 'white'
},
maskMode:{
maskMode: {
type: String,
default: 'dark'
},
@ -166,6 +166,7 @@ export default { @@ -166,6 +166,7 @@ export default {
overflow: auto;
padding-top: 2.4rem;
bottom: 0;
left: 0;
box-sizing: border-box;
border-radius: .5rem .5rem 0 0;

5
src/components/dialog/NoticeDialog.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="NoticeDialog" @click="$emit('dismiss')">
<div class="content" @click.stop="null">
<div class="content" @click.stop="stop">
<div class="body">
<div class="title">{{ title }}</div>
<div class="subtitle" :class="subtitleColor" v-if="subtitle">{{ subtitle }}</div>
@ -46,6 +46,9 @@ export default { @@ -46,6 +46,9 @@ export default {
},
data() {
return {}
},
methods:{
stop(){}
}
}
</script>

5
src/components/dialog/SimpleConfirmDialog.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="SimpleConfirmDialog " @click="$emit('dismiss')">
<div class="content" @click.stop="null">
<div class="content" @click.stop="stop">
<div class="item">{{ title }}</div>
<div class="footer">
<div class="cancel" @click.stop="$emit('cancel')">放弃</div>
@ -26,6 +26,9 @@ export default { @@ -26,6 +26,9 @@ export default {
},
data() {
return {}
},
methods:{
stop(){}
}
}
</script>

8
src/config/index.js

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
export default {
// baseUrl: 'http://192.168.0.105//index.php/v1',
// filePreview:'http://192.168.0.105/static/uploads/',
baseUrl: 'http://192.168.10.164//index.php/v1',
filePreview:'http://192.168.10.164/static/uploads/'
baseUrl: 'http://192.168.0.105//index.php/v1',
filePreview:'http://192.168.0.105/static/uploads/',
// baseUrl: 'http://192.168.10.164//index.php/v1',
// filePreview:'http://192.168.10.164/static/uploads/'
}

261
src/pages/home/Attention.vue

@ -4,7 +4,7 @@ @@ -4,7 +4,7 @@
<span @click="$nav('/country-choose')">双流</span>
<div class="arrow"></div>
</header>
<div class="ad">
<div class="ad" v-if="false">
<div class="title">超值卖场 次日达</div>
<div class="good-ctn">
<div class="left">
@ -48,34 +48,117 @@ @@ -48,34 +48,117 @@
<div class="content">
<div class="left">
<div class="item" v-for="item in left">
<img class="poster" :src="item.src"/>
<div class="location">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">电子科技大学沙河校区</div>
<template v-if="item.type === 0">
<div class="wrapper">
<img class="poster" :src="item.src"/>
<img :src="item.author" alt="" class="author">
</div>
<div class="bottom">
<div class="type">大学</div>
<div class="line"></div>
<div class="other">1399人想去</div>
<div class="location" v-if="item.address">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">{{ item.address.name }}</div>
</div>
<div class="bottom">
<div class="type">{{ item.address.type }}</div>
<div class="line"></div>
<div class="other">{{ item.address.number }}人想去</div>
</div>
</div>
</div>
</template>
<template v-if="item.type === 1">
<div class="wrapper" style="height: 49vw;overflow:hidden;">
<img class="poster" :src="item.src"/>
</div>
</template>
<template v-if="item.type === 2">
<div class="ranking-list">
<div class="desc">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">{{ item.desc }}</div>
</div>
<div class="bottom">
基于6亿抖音用户真实数据...
</div>
</div>
<div class="ads">
<div class="ad" v-for="(ad,index) in item.ads">
<div class="left">
<img class="ad-logo" :src="ad.src"/>
</div>
<div class="right">
<div class="rank">TOP{{ index + 1 }}</div>
<div class="name">{{ ad.name }}</div>
</div>
</div>
</div>
</div>
</template>
<template v-if="item.type === 3">
<div class="wrapper">
<img class="poster" :src="item.src"/>
<img :src="item.author" alt="" class="author">
<div class="live">直播中</div>
</div>
</template>
</div>
</div>
<div class="right">
<div class="item" v-for="item in right">
<img class="poster" :src="item.src"/>
<div class="location">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">电子科技大学沙河校区</div>
<template v-if="item.type === 0">
<div class="wrapper">
<img class="poster" :src="item.src"/>
<img :src="item.author" alt="" class="author">
</div>
<div class="bottom">
<div class="type">大学</div>
<div class="line"></div>
<div class="other">1399人想去</div>
<div class="location" v-if="item.address">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">{{ item.address.name }}</div>
</div>
<div class="bottom">
<div class="type">{{ item.address.type }}</div>
<div class="line"></div>
<div class="other">{{ item.address.number }}人想去</div>
</div>
</div>
</div>
</template>
<template v-if="item.type === 1">
<div class="wrapper" style="height: 49vw;overflow:hidden;">
<img class="poster" :src="item.src"/>
</div>
</template>
<template v-if="item.type === 2">
<div class="ranking-list">
<div class="desc">
<div class="top">
<img class="logo" src="../../assets/img/icon/msg-icon2.png" alt="">
<div class="name">{{ item.desc }}</div>
</div>
<div class="bottom">
基于6亿抖音用户真实数据...
</div>
</div>
<div class="ads">
<div class="ad" v-for="(ad,index) in item.ads">
<div class="left">
<img class="ad-logo" :src="ad.src"/>
</div>
<div class="right">
<div class="rank">TOP{{ index + 1 }}</div>
<div class="name">{{ ad.name }}</div>
</div>
</div>
</div>
</div>
</template>
<template v-if="item.type === 3">
<div class="wrapper">
<img class="poster" :src="item.src"/>
<img :src="item.author" alt="" class="author">
<div class="live">直播中</div>
</div>
</template>
</div>
</div>
</div>
@ -98,7 +181,13 @@ export default { @@ -98,7 +181,13 @@ export default {
items: [],
height: 0,
width: 0,
footerHeight: 0
footerHeight: 0,
itemType: {
VIDEO: 0,
AD: 1,
RANKING_LIST: 2,
LIVE: 3,
}
}
},
created() {
@ -120,15 +209,46 @@ export default { @@ -120,15 +209,46 @@ export default {
},
mounted() {
for (let i = 1; i < 12; i++) {
this.items.push({
src: require(`../../assets/img/poster/${i}.jpg`)
})
let temp = {
src: require(`../../assets/img/poster/${i}.jpg`),
author: require(`../../assets/img/avatar.png`),
}
temp.type = i - 1 > 3 ? 3 : i - 1
if (temp.type === 2) {
temp.desc = '成都市好友聚会美食榜'
temp.ads = [
{
src: require(`../../assets/img/poster/${i}.jpg`),
name: '烧江南烧肉'
},
{
src: require(`../../assets/img/poster/${i}.jpg`),
name: '欧叶无国界料理餐厅'
},
{
src: require(`../../assets/img/poster/${i}.jpg`),
name: '陆派玛歌庄园'
}
]
}
if (i % 2 === 0) {
temp.address = {
name: '大源中央公园',
type: '综合商场',
number: 150
}
}
this.items.push(temp)
}
// this.$console(this.items)
}
}
</script>
<style scoped lang="scss">
@import "../../assets/scss/index";
#attention {
/*background: rgb(22,24,34);*/
/*background: #161822;*/
@ -159,7 +279,7 @@ export default { @@ -159,7 +279,7 @@ export default {
}
}
.ad {
> .ad {
padding: 10px;
color: white;
@ -243,7 +363,7 @@ export default { @@ -243,7 +363,7 @@ export default {
justify-content: space-between;
background: linear-gradient(to bottom right, #6b267d 10%, #3f445c 50%);
&:nth-child(2){
&:nth-child(2) {
background: linear-gradient(to bottom right, #283b53 5%, #3f445c 50%);
}
@ -251,6 +371,7 @@ export default { @@ -251,6 +371,7 @@ export default {
display: flex;
justify-content: center;
flex-direction: column;
.ad-name {
font-weight: bold;
}
@ -283,7 +404,7 @@ export default { @@ -283,7 +404,7 @@ export default {
box-sizing: border-box;
padding: 0 3px;
.left, .right {
> .left, > .right {
width: calc(50% - 1.5px);
}
@ -292,10 +413,32 @@ export default { @@ -292,10 +413,32 @@ export default {
box-sizing: border-box;
margin-bottom: 3px;
.poster {
width: 100%;
max-height: 50vh;
display: block;
.wrapper {
position: relative;
.poster {
width: 100%;
max-height: 50vh;
display: block;
}
.author {
position: absolute;
border-radius: 50%;
height: 3rem;
bottom: 1rem;
left: 1rem;
}
.live {
position: absolute;
padding: .2rem .5rem;
border-radius: .2rem;
top: 1rem;
left: 1rem;
color: white;
background: $primary-btn-color;
}
}
.location {
@ -330,6 +473,60 @@ export default { @@ -330,6 +473,60 @@ export default {
font-size: 1rem;
}
}
.ranking-list {
padding: 2rem 1rem;
background: $douyin-bg;
.desc {
.top {
margin-bottom: .2rem;
display: flex;
align-items: center;
font-size: 1.4rem;
.logo {
margin-right: .5rem;
height: 1.4rem;
}
.name {
//background: linear-gradient(to bottom right, #bd5959 5%, #3f445c 50%);
}
}
}
.ads {
font-size: 1.2rem;
.ad {
background: $second-btn-color;
display: flex;
margin-top: 1rem;
.left {
margin-right: 1rem;
.ad-logo {
height: 4rem;
width: 4rem;
}
}
.right {
display: flex;
flex-direction: column;
justify-content: center;
.rank {
color: $second-text-color;
margin-bottom: .2rem;
}
}
}
}
}
}
}
}

2
src/pages/login/Base.scss

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
@import "../../assets/scss/index";
.content {
padding: 6rem 3rem;
padding: 3rem;
//padding-top: 6rem;
.desc {

56
src/pages/login/Help.vue

@ -0,0 +1,56 @@ @@ -0,0 +1,56 @@
<template>
<div class="Help">
<BaseHeader>
<template v-slot:center>
<span class="f16 fb">帮助</span>
</template>
<template v-slot:right>
<span class="f14">我的反馈</span>
</template>
</BaseHeader>
<div class="content">
<iframe src="https://kf.qq.com/touch/product/wechat_app.html" />
</div>
</div>
</template>
<script>
export default {
name: "Help",
props: {},
data() {
return {}
},
computed: {},
created() {
},
methods: {}
}
</script>
<style scoped lang="scss">
@import "../../assets/scss/index";
.Help {
position: fixed;
left: 0;
right: 0;
bottom: 0;
top: 0;
overflow: auto;
color: white;
font-size: 1.4rem;
.content {
margin-top: 6rem;
height: calc(100vh - 6rem);
iframe{
padding: 0;
margin: 0;
border: none;
width: 100%;
height: 100%;
}
}
}
</style>

4
src/pages/login/Login.vue

@ -1,8 +1,8 @@ @@ -1,8 +1,8 @@
<template>
<div class="login">
<BaseHeader mode="light" :isClose="true">
<BaseHeader mode="light" backMode="dark" backImg="close">
<template v-slot:right>
<span class="f16">帮助</span>
<span class="f16" @click="$nav('/login/help')">帮助</span>
</template>
</BaseHeader>
<div class="content">

69
src/pages/login/OtherLogin.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="other-login">
<BaseHeader mode="light" :isClose="true">
<BaseHeader mode="light" backMode="dark" backImg="back">
<template v-slot:right>
<span class="f16">帮助</span>
</template>
@ -37,9 +37,36 @@ @@ -37,9 +37,36 @@
<div class="options">
<span class="link" @click="$nav('/login/password')">密码登录</span>
<span class="link">其他方式登录</span>
<span class="link" @click="otherLogin">其他方式登录</span>
</div>
<from-bottom-dialog
v-model="isOtherLogin"
:show-heng-gang="false"
height="27rem"
mode="white">
<div class="block-dialog">
<div class="item">
<img src="../../assets/img/icon/login/toutiao-round.png" alt="">
<span>今日头条登录</span>
</div>
<div class="item">
<img src="../../assets/img/icon/login/qq.webp" alt="">
<span>QQ登录</span>
</div>
<div class="item">
<img src="../../assets/img/icon/login/wechat.webp" alt="">
<span>微信登录</span>
</div>
<div class="item">
<img src="../../assets/img/icon/login/weibo.webp" alt="">
<span>微博登录</span>
</div>
<div class="space"></div>
<div class="item" @click="isOtherLogin = false">取消</div>
</div>
</from-bottom-dialog>
</div>
</div>
</template>
@ -48,6 +75,7 @@ import Check from "../../components/Check"; @@ -48,6 +75,7 @@ import Check from "../../components/Check";
import Tooltip from "./components/Tooltip";
import LoginInput from "./components/LoginInput";
import Base from "./Base.js";
import FromBottomDialog from "../../components/dialog/FromBottomDialog";
export default {
name: "OtherLogin",
@ -55,7 +83,8 @@ export default { @@ -55,7 +83,8 @@ export default {
components: {
Check,
Tooltip,
LoginInput
LoginInput,
FromBottomDialog
},
data() {
return {
@ -69,12 +98,18 @@ export default { @@ -69,12 +98,18 @@ export default {
methods: {
async getCode() {
let res = await this.check()
if (res){
if (res) {
this.loading = true
setTimeout(() => {
this.$nav('/login/verification-code')
}, 2000)
}
},
async otherLogin() {
let res = await this.check()
if (res) {
this.isOtherLogin = true
}
}
}
}
@ -95,5 +130,31 @@ export default { @@ -95,5 +130,31 @@ export default {
font-size: 1.4rem;
background: white;
.block-dialog {
color: black;
.item {
height: 5rem;
display: flex;
justify-content: center;
align-items: center;
border-top: 1px solid gainsboro;
img {
height: 2.5rem;
margin-right: 1rem;
}
&:nth-last-child(1) {
border-top: none;
}
}
.space {
height: 1rem;
background: whitesmoke;
}
}
}
</style>

2
src/pages/login/PasswordLogin.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="PasswordLogin">
<BaseHeader mode="light" :isClose="true">
<BaseHeader mode="light" backMode="dark" backImg="back">
<template v-slot:right>
<span class="f16">帮助</span>
</template>

2
src/pages/login/RetrievePassword.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="RetrievePassword">
<BaseHeader mode="light" :isClose="true"></BaseHeader>
<BaseHeader mode="light" backMode="dark" backImg="back"/>
<div class="content">
<div class="desc">
<div class="title">找回密码</div>

2
src/pages/login/VerificationCode.vue

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
<template>
<div class="VerificationCode">
<BaseHeader mode="light" :isClose="true">
<BaseHeader mode="light" backMode="dark" backImg="back">
<template v-slot:right>
<span class="f16">帮助</span>
</template>

2
src/pages/login/components/LoginInput.vue

@ -157,7 +157,7 @@ export default { @@ -157,7 +157,7 @@ export default {
margin-left: .5rem;
width: 0;
height: 0;
border: .3rem solid transparent;
border: .4rem solid transparent;
border-top: .5rem solid black;
}

2
src/pages/login/components/Tooltip.vue

@ -40,7 +40,7 @@ export default { @@ -40,7 +40,7 @@ export default {
}
.Tooltip {
z-index: 9;
z-index: 2;
position: absolute;
font-size: 1.2rem;
color: white;

2
src/pages/message/Chat.vue

@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
<div class="Chat">
<div class="header">
<div class="left">
<back scale="1.8" @click="$back"></back>
<back @click="$back"></back>
<div class="badge">12</div>
<span>zzzz</span>
</div>

2
src/router/index.js

@ -41,6 +41,7 @@ import OtherLogin from "../pages/login/OtherLogin"; @@ -41,6 +41,7 @@ import OtherLogin from "../pages/login/OtherLogin";
import PasswordLogin from "../pages/login/PasswordLogin";
import VerificationCode from "../pages/login/VerificationCode";
import RetrievePassword from "../pages/login/RetrievePassword";
import Help from "../pages/login/Help";
const routes = [
// {path: '', component: Music},
@ -86,6 +87,7 @@ const routes = [ @@ -86,6 +87,7 @@ const routes = [
{path: '/login/password', component: PasswordLogin},
{path: '/login/verification-code', component: VerificationCode},
{path: '/login/retrieve-password', component: RetrievePassword},
{path: '/login/help', component: Help},
]
export default VueRouter.createRouter({

1
src/utils/global-methods.js

@ -182,7 +182,6 @@ export default { @@ -182,7 +182,6 @@ export default {
return JSON.parse(JSON.stringify(v))
},
$console(v) {
return
return console.log(JSON.stringify(v, null, 4))
},
$randomNum(minNum, maxNum) {

Loading…
Cancel
Save