mirror of
https://github.com/kuaifan/dootask.git
synced 2026-03-17 19:23:26 +00:00
feat: 对话窗口新增会员最后在线时间
This commit is contained in:
parent
675edef0d1
commit
ca860d551e
@ -419,7 +419,7 @@ class User extends AbstractModel
|
|||||||
if (isset($_A["__static_userid2basic_" . $userid])) {
|
if (isset($_A["__static_userid2basic_" . $userid])) {
|
||||||
return $_A["__static_userid2basic_" . $userid];
|
return $_A["__static_userid2basic_" . $userid];
|
||||||
}
|
}
|
||||||
$fields = ['userid', 'email', 'nickname', 'profession', 'userimg'];
|
$fields = ['userid', 'email', 'nickname', 'profession', 'userimg', 'line_at'];
|
||||||
$userInfo = self::whereUserid($userid)->select($fields)->first();
|
$userInfo = self::whereUserid($userid)->select($fields)->first();
|
||||||
if ($userInfo) {
|
if ($userInfo) {
|
||||||
$userInfo->online = $userInfo->getOnlineStatus();
|
$userInfo->online = $userInfo->getOnlineStatus();
|
||||||
|
|||||||
@ -191,6 +191,34 @@
|
|||||||
if (this.user && typeof data[this.user.userid] !== "undefined") {
|
if (this.user && typeof data[this.user.userid] !== "undefined") {
|
||||||
this.$set(this.user, 'online', data[this.user.userid]);
|
this.$set(this.user, 'online', data[this.user.userid]);
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
'user.online'(val) {
|
||||||
|
if (val) {
|
||||||
|
this.$emit('update:online', true)
|
||||||
|
} else {
|
||||||
|
const now = $A.Time()
|
||||||
|
const line = $A.Time(this.user.line_at)
|
||||||
|
const seconds = now - line
|
||||||
|
let stats = '最后在线于很久以前';
|
||||||
|
if (seconds < 3600) {
|
||||||
|
stats = `最后在线于 ${Math.floor(seconds / 60)} 分钟前`
|
||||||
|
} else if (seconds < 3600 * 6) {
|
||||||
|
stats = `最后在线于 ${Math.floor(seconds / 3600)} 小时前`
|
||||||
|
} else {
|
||||||
|
const nowYmd = $A.formatDate('Y-m-d', now)
|
||||||
|
const lineYmd = $A.formatDate('Y-m-d', line)
|
||||||
|
const lineHi = $A.formatDate('H:i', line)
|
||||||
|
if (nowYmd === lineYmd) {
|
||||||
|
stats = `最后在线于今天 ${lineHi}`
|
||||||
|
} else if ($A.formatDate('Y-m-d', now - 86400) === lineYmd) {
|
||||||
|
stats = `最后在线于昨天 ${lineHi}`
|
||||||
|
} else if (seconds < 3600 * 24 * 365) {
|
||||||
|
stats = `最后在线于 ${lineYmd}`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
this.$emit('update:online', this.$L(stats))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|||||||
@ -19,7 +19,9 @@
|
|||||||
<i v-else-if="dialogData.group_type=='task'" class="taskfont icon-avatar task"></i>
|
<i v-else-if="dialogData.group_type=='task'" class="taskfont icon-avatar task"></i>
|
||||||
<Icon v-else class="icon-avatar" type="ios-people" />
|
<Icon v-else class="icon-avatar" type="ios-people" />
|
||||||
</template>
|
</template>
|
||||||
<div v-else-if="dialogData.dialog_user" class="user-avatar"><UserAvatar :userid="dialogData.dialog_user.userid" :size="42"/></div>
|
<div v-else-if="dialogData.dialog_user" class="user-avatar">
|
||||||
|
<UserAvatar :online.sync="dialogData.online_state" :userid="dialogData.dialog_user.userid" :size="42"/>
|
||||||
|
</div>
|
||||||
<Icon v-else class="icon-avatar" type="md-person" />
|
<Icon v-else class="icon-avatar" type="md-person" />
|
||||||
</div>
|
</div>
|
||||||
<div class="dialog-title">
|
<div class="dialog-title">
|
||||||
@ -39,6 +41,9 @@
|
|||||||
{{$L('任务聊天室')}} {{$L('查看任务详情')}}
|
{{$L('任务聊天室')}} {{$L('查看任务详情')}}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
<div v-else-if="dialogData.type === 'user'" :class="['sub-title', dialogData.online_state === true ? 'online' : 'offline']">
|
||||||
|
{{$L(dialogData.online_state === true ? '在线' : dialogData.online_state)}}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user