<template>
<p id=
"info-container"
>
<ul
class
=
"nav-wrapper"
>
<li
class
=
"head-item"
>
<p
class
=
"item-wrapper"
>
<p
class
=
"left-item"
>头像</p>
<p
class
=
"right-item"
>
<img :src=
"login.avatar_url?login.avatar_url: ''"
class
=
"head"
:onerror=
"errImage"
>
<img
class
=
"point"
src=
"../../assets/images/mine/point.png"
>
</p>
</p>
<!--
这是需要样式控制input,让其定位到父集元素顶层,透明度为0
-->
<input type=
"file"
accept=
"image/*"
ref=
"uploadFile"
@change=
"changeFileHandler"
capture=
"camera"
v-
if
=
"iswx"
/>
<input type=
"file"
accept=
"image/*"
ref=
"uploadFile"
@change=
"changeFileHandler"
v-
if
=
"!iswx"
/>
</li>
</ul>
</p></template><script>import {
USER_DEFAULT_BASE64,
HEAD_IMAGE_SIZE_TO_BIG
} from
'../../utils/Constants'
import { mapGetters, mapActions } from
'vuex'
export
default
{
name:
'info-container'
,
computed: {
...mapGetters([
'getAuthLogin'
]),
login () {
return
this.
$store
.getters.getAuthLogin
}
},
created () {
const
agent = navigator.userAgent.toLowerCase() this.iswx = agent.indexOf(
'qqbrowser'
) >= 0
},
methods: {
...mapActions([
'authUpdateAvatarUrl'
]),
showTextHandler (text =
''
) { this.
$vux
.toast.text(text)
},
changeFileHandler (e) {
const
files = e.target.files
const
uploadFile = this.
$refs
.uploadFile
const
localFile = files[0]
const
fileSize
= localFile.size / 1024
const
fileName = localFile.name
if
(
fileSize
> 1024 * 3) { this.showTextHandler(HEAD_IMAGE_SIZE_TO_BIG)
}
else
{
this.authUpdateAvatarUrl({fileName, localFile})
}
setTimeout(() => { uploadFile.value =
''
}, 200)
}
},
data () {
return
{
iswx: false,
errImage: USER_DEFAULT_BASE64
}
}
}</script><style scoped lang=
"less"
>