yumechi-no-kuni/src/client/app/desktop/views/widgets/profile.vue

131 lines
2.6 KiB
Vue
Raw Normal View History

2018-02-14 10:07:09 -06:00
<template>
2018-09-22 01:58:11 -05:00
<div class="egwyvoaaryotefqhqtmiyawwefemjfsd">
2019-02-15 00:35:52 -06:00
<ui-container :show-header="false" :naked="props.design == 2">
2018-09-22 01:58:11 -05:00
<div class="egwyvoaaryotefqhqtmiyawwefemjfsd-body"
:data-compact="props.design == 1 || props.design == 2"
:data-melt="props.design == 2"
>
<div class="banner"
:style="$store.state.i.bannerUrl ? `background-image: url(${$store.state.i.bannerUrl})` : ''"
:title="$t('update-banner')"
2018-12-09 21:31:04 -06:00
@click="updateBanner()"
2018-09-22 01:58:11 -05:00
></div>
<mk-avatar class="avatar" :user="$store.state.i"
:disable-link="true"
2018-12-09 21:31:04 -06:00
@click="updateAvatar()"
:title="$t('update-avatar')"
2018-09-22 01:58:11 -05:00
/>
2018-12-06 01:09:33 -06:00
<router-link class="name" :to="$store.state.i | userPage"><mk-user-name :user="$store.state.i"/></router-link>
2018-09-22 01:58:11 -05:00
<p class="username">@{{ $store.state.i | acct }}</p>
</div>
2019-02-15 00:35:52 -06:00
</ui-container>
2018-02-14 10:07:09 -06:00
</div>
</template>
2018-02-14 10:41:31 -06:00
<script lang="ts">
2018-02-24 09:18:09 -06:00
import define from '../../../common/define-widget';
import i18n from '../../../i18n';
2018-12-09 21:31:04 -06:00
import updateAvatar from '../../api/update-avatar';
import updateBanner from '../../api/update-banner';
2018-04-05 11:36:34 -05:00
2018-02-14 10:41:31 -06:00
export default define({
name: 'profile',
2018-02-21 00:30:03 -06:00
props: () => ({
2018-02-14 10:41:31 -06:00
design: 0
2018-02-21 00:30:03 -06:00
})
2018-02-14 10:41:31 -06:00
}).extend({
i18n: i18n('desktop/views/widgets/profile.vue'),
2018-02-14 10:41:31 -06:00
methods: {
func() {
2018-02-14 10:42:11 -06:00
if (this.props.design == 2) {
2018-02-14 10:41:31 -06:00
this.props.design = 0;
} else {
this.props.design++;
}
2018-04-29 03:17:15 -05:00
this.save();
2018-12-09 21:31:04 -06:00
},
updateAvatar() {
updateAvatar(this.$root)();
},
updateBanner() {
updateBanner(this.$root)();
2018-02-14 10:41:31 -06:00
}
}
});
</script>
<style lang="stylus" scoped>
2018-09-28 00:26:20 -05:00
.egwyvoaaryotefqhqtmiyawwefemjfsd-body
2018-02-14 10:41:31 -06:00
&[data-compact]
> .banner:before
content ""
display block
width 100%
height 100%
2018-04-28 18:51:17 -05:00
background rgba(#000, 0.5)
2018-02-14 10:41:31 -06:00
> .avatar
top ((100px - 58px) / 2)
left ((100px - 58px) / 2)
border none
border-radius 100%
2018-04-28 18:51:17 -05:00
box-shadow 0 0 16px rgba(#000, 0.5)
2018-02-14 10:41:31 -06:00
> .name
position absolute
top 0
left 92px
margin 0
line-height 100px
color #fff
2018-04-28 18:51:17 -05:00
text-shadow 0 0 8px rgba(#000, 0.5)
2018-02-14 10:41:31 -06:00
> .username
display none
&[data-melt]
> .banner
visibility hidden
> .avatar
box-shadow none
> .name
color #666
text-shadow none
> .banner
height 100px
background-color var(--primaryAlpha01)
2018-02-14 10:41:31 -06:00
background-size cover
background-position center
cursor pointer
> .avatar
display block
position absolute
top 76px
left 16px
width 58px
height 58px
2018-09-26 06:28:13 -05:00
border solid 3px var(--face)
2018-02-14 10:41:31 -06:00
border-radius 8px
cursor pointer
> .name
display block
margin 10px 0 0 84px
line-height 16px
font-weight bold
2018-09-28 00:26:20 -05:00
color var(--text)
2018-02-14 10:41:31 -06:00
> .username
display block
margin 4px 0 8px 84px
line-height 16px
font-size 0.9em
2018-09-28 00:26:20 -05:00
color var(--text)
opacity 0.7
2018-02-14 10:41:31 -06:00
</style>