✌️
This commit is contained in:
parent
48341db13d
commit
482c86a25a
5 changed files with 67 additions and 4 deletions
|
@ -34,19 +34,20 @@ export default function<T extends object>(data: {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$watch('props', newProps => {
|
this.$watch('props', newProps => {
|
||||||
|
const w = (this as any).os.i.client_settings.mobile_home.find(w => w.id == this.id);
|
||||||
if (this.isMobile) {
|
if (this.isMobile) {
|
||||||
(this as any).api('i/update_mobile_home', {
|
(this as any).api('i/update_mobile_home', {
|
||||||
id: this.id,
|
id: this.id,
|
||||||
data: newProps
|
data: newProps
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
(this as any).os.i.client_settings.mobile_home.find(w => w.id == this.id).data = newProps;
|
w.data = newProps;
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
(this as any).api('i/update_home', {
|
(this as any).api('i/update_home', {
|
||||||
id: this.id,
|
id: this.id,
|
||||||
data: newProps
|
data: newProps
|
||||||
}).then(() => {
|
}).then(() => {
|
||||||
(this as any).os.i.client_settings.home.find(w => w.id == this.id).data = newProps;
|
w.data = newProps;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, {
|
}, {
|
||||||
|
|
|
@ -25,7 +25,6 @@ import fileTypeIcon from './file-type-icon.vue';
|
||||||
import wAccessLog from './widgets/access-log.vue';
|
import wAccessLog from './widgets/access-log.vue';
|
||||||
import wVersion from './widgets/version.vue';
|
import wVersion from './widgets/version.vue';
|
||||||
import wRss from './widgets/rss.vue';
|
import wRss from './widgets/rss.vue';
|
||||||
import wProfile from './widgets/profile.vue';
|
|
||||||
import wServer from './widgets/server.vue';
|
import wServer from './widgets/server.vue';
|
||||||
import wBroadcast from './widgets/broadcast.vue';
|
import wBroadcast from './widgets/broadcast.vue';
|
||||||
import wCalendar from './widgets/calendar.vue';
|
import wCalendar from './widgets/calendar.vue';
|
||||||
|
@ -65,7 +64,6 @@ Vue.component('mkw-slideshow', wSlideshow);
|
||||||
Vue.component('mkw-tips', wTips);
|
Vue.component('mkw-tips', wTips);
|
||||||
Vue.component('mkw-donation', wDonation);
|
Vue.component('mkw-donation', wDonation);
|
||||||
Vue.component('mkw-broadcast', wBroadcast);
|
Vue.component('mkw-broadcast', wBroadcast);
|
||||||
Vue.component('mkw-profile', wProfile);
|
|
||||||
Vue.component('mkw-server', wServer);
|
Vue.component('mkw-server', wServer);
|
||||||
Vue.component('mkw-rss', wRss);
|
Vue.component('mkw-rss', wRss);
|
||||||
Vue.component('mkw-version', wVersion);
|
Vue.component('mkw-version', wVersion);
|
||||||
|
|
|
@ -23,6 +23,7 @@ import widgetContainer from './widget-container.vue';
|
||||||
|
|
||||||
//#region widgets
|
//#region widgets
|
||||||
import wActivity from './widgets/activity.vue';
|
import wActivity from './widgets/activity.vue';
|
||||||
|
import wProfile from './widgets/profile.vue';
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
||||||
Vue.component('mk-ui', ui);
|
Vue.component('mk-ui', ui);
|
||||||
|
@ -48,4 +49,5 @@ Vue.component('mk-widget-container', widgetContainer);
|
||||||
|
|
||||||
//#region widgets
|
//#region widgets
|
||||||
Vue.component('mkw-activity', wActivity);
|
Vue.component('mkw-activity', wActivity);
|
||||||
|
Vue.component('mkw-profile', wProfile);
|
||||||
//#endregion
|
//#endregion
|
||||||
|
|
62
src/web/app/mobile/views/components/widgets/profile.vue
Normal file
62
src/web/app/mobile/views/components/widgets/profile.vue
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
<template>
|
||||||
|
<div class="mkw-profile">
|
||||||
|
<mk-widget-container>
|
||||||
|
<div :class="$style.banner"
|
||||||
|
:style="os.i.banner_url ? `background-image: url(${os.i.banner_url}?thumbnail&size=256)` : ''"
|
||||||
|
></div>
|
||||||
|
<img :class="$style.avatar"
|
||||||
|
:src="`${os.i.avatar_url}?thumbnail&size=96`"
|
||||||
|
alt="avatar"
|
||||||
|
/>
|
||||||
|
<router-link :class="$style.name" :to="`/${os.i.username}`">{{ os.i.name }}</router-link>
|
||||||
|
</mk-widget-container>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script lang="ts">
|
||||||
|
import define from '../../../../common/define-widget';
|
||||||
|
export default define({
|
||||||
|
name: 'profile'
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style lang="stylus" module>
|
||||||
|
.banner
|
||||||
|
height 100px
|
||||||
|
background-color #f5f5f5
|
||||||
|
background-size cover
|
||||||
|
background-position center
|
||||||
|
cursor pointer
|
||||||
|
|
||||||
|
.banner:before
|
||||||
|
content ""
|
||||||
|
display block
|
||||||
|
width 100%
|
||||||
|
height 100%
|
||||||
|
background rgba(0, 0, 0, 0.5)
|
||||||
|
|
||||||
|
.avatar
|
||||||
|
display block
|
||||||
|
position absolute
|
||||||
|
width 58px
|
||||||
|
height 58px
|
||||||
|
margin 0
|
||||||
|
vertical-align bottom
|
||||||
|
top ((100px - 58px) / 2)
|
||||||
|
left ((100px - 58px) / 2)
|
||||||
|
border none
|
||||||
|
border-radius 100%
|
||||||
|
box-shadow 0 0 16px rgba(0, 0, 0, 0.5)
|
||||||
|
|
||||||
|
.name
|
||||||
|
display block
|
||||||
|
position absolute
|
||||||
|
top 0
|
||||||
|
left 92px
|
||||||
|
margin 0
|
||||||
|
line-height 100px
|
||||||
|
color #fff
|
||||||
|
font-weight bold
|
||||||
|
text-shadow 0 0 8px rgba(0, 0, 0, 0.5)
|
||||||
|
|
||||||
|
</style>
|
Loading…
Reference in a new issue