แก้ไขการแสดงผลเวลา และส่วนอื่นเล็กน้อย

This commit is contained in:
puri-ph4tt 2024-02-05 18:01:29 +07:00
parent 68c8c75dbb
commit 039d6ede24
2 changed files with 49 additions and 13 deletions

View file

@ -4,27 +4,61 @@ import moment from "moment";
import { useSupportStore } from "@/modules/00_support/store/Main"; import { useSupportStore } from "@/modules/00_support/store/Main";
const store = useSupportStore(); const store = useSupportStore();
function dateChat(timestamp: string): string {
const parsedTimestamp = moment(timestamp);
const diff = moment().diff(parsedTimestamp);
if (diff < 1000) {
return "just now";
} else if (diff < 86400000) {
const formattedDate = parsedTimestamp.format("HH:MM") + " น.";
return formattedDate;
} else {
const beYear = parsedTimestamp.year() + 543;
const formattedDate = parsedTimestamp.clone().year(beYear).format("DD MMM");
return formattedDate;
}
}
</script> </script>
<template> <template>
<div class="col-grow q-pt-md q-pb-sm"> <div class="col-grow q-pt-md q-pb-sm">
<div v-for="(data, index) in store.message?.result.message"> <div v-for="(item, index) in store.message?.result.message">
<q-item-label> <q-item-label>
<q-chat-message <q-chat-message
ref="myElement" ref="myElement"
:key="index" :key="index"
:id="data.id" :id="item.id"
avatar="https://cdn.quasar.dev/img/avatar4.jpg" :text="[item.content]"
:text="[data.content]" :bg-color="item.fromUserId === store.userId ? 'teal' : 'white'"
:bg-color="data.fromUserId === store.userId ? 'teal' : 'white'" :text-color="item.fromUserId === store.userId ? 'white' : 'black'"
:text-color="data.fromUserId === store.userId ? 'white' : 'black'" :sent="item.fromUserId === store.userId"
:sent="data.fromUserId === store.userId" >
:stamp="moment(data.createdAt).fromNow()" <template v-slot:stamp>
/> <span> {{ dateChat(item.createdAt) }} </span>
</template>
<template v-slot:avatar>
<img
v-if="item.fromUserId === store.userId"
class="q-message-avatar q-message-avatar--sent"
src="https://cdn.quasar.dev/img/avatar4.jpg"
/>
<div
v-else
class="q-mr-sm"
style="border-radius: 50%; border: 1px solid teal"
>
<q-avatar color="teal-1" text-color="white" size="42px">
<q-icon :name="store.icon" size="24px" color="teal" />
</q-avatar>
</div>
</template>
</q-chat-message>
</q-item-label> </q-item-label>
<q-item-label <q-item-label
v-if="data.fromUserId === store.userId" v-if="item.fromUserId === store.userId"
class="flex" class="flex"
caption caption
> >
@ -34,12 +68,14 @@ const store = useSupportStore();
store.messageStatus?.result.some( store.messageStatus?.result.some(
(v) => (v) =>
new Date(v.lastAccessDate).getTime() >= new Date(v.lastAccessDate).getTime() >=
new Date(data.createdAt).getTime() && new Date(item.createdAt).getTime() &&
index + 1 === store.message?.result.message.length index + 1 === store.message?.result.message.length
) )
" "
class="q-mr-xl"
> >
านเเล <q-icon name="mdi-check-all" size="xs" />
<span class="text-caption q-ml-sm">านแล</span>
</div> </div>
</q-item-label> </q-item-label>
</div> </div>

View file

@ -22,7 +22,7 @@ onMounted(async () => {
</script> </script>
<template> <template>
<div @click="isOpen = true" class="col-10 row items-center q-pa-md new"> <div @click="isOpen = true" class="col-10 row items-center q-py-sm q-px-md new">
<div class="noactive-avatar"> <div class="noactive-avatar">
<div class="new-avatar"> <div class="new-avatar">
<q-icon name="mdi-plus" size="24px" color="primary" /> <q-icon name="mdi-plus" size="24px" color="primary" />