This commit is contained in:
parent
d7677d6281
commit
c9ceb89ec3
Binary file not shown.
@ -106,10 +106,25 @@ export function usePage() {
|
|||||||
return router.push({name: 'editer', query: {reply: String(id)}})
|
return router.push({name: 'editer', query: {reply: String(id)}})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const cleanSenderText = (text) => {
|
||||||
|
if (!text) return String();
|
||||||
|
return String(text).replace(/[\u200B-\u200D\u2060-\u206F\uFEFF]/g, String()).trim();
|
||||||
|
};
|
||||||
|
|
||||||
const getInitial = (name) => {
|
const getInitial = (name) => {
|
||||||
if (!name) return '?';
|
const cleaned = cleanSenderText(name);
|
||||||
return name.charAt(0).toUpperCase();
|
if (!cleaned) return '?';
|
||||||
}
|
return cleaned.charAt(0).toUpperCase();
|
||||||
|
};
|
||||||
|
|
||||||
|
const formatSenderName = (fromName, fromAddress) => {
|
||||||
|
const cleaned = cleanSenderText(fromName);
|
||||||
|
return cleaned || fromAddress || String();
|
||||||
|
};
|
||||||
|
|
||||||
|
const hasSenderName = (fromName) => {
|
||||||
|
return cleanSenderText(fromName).length > 0;
|
||||||
|
};
|
||||||
|
|
||||||
const formatDetailDate = (dateStr) => {
|
const formatDetailDate = (dateStr) => {
|
||||||
if (!dateStr) return "";
|
if (!dateStr) return "";
|
||||||
@ -183,6 +198,9 @@ export function usePage() {
|
|||||||
backToList,
|
backToList,
|
||||||
handleReply,
|
handleReply,
|
||||||
getInitial,
|
getInitial,
|
||||||
|
cleanSenderText,
|
||||||
|
formatSenderName,
|
||||||
|
hasSenderName,
|
||||||
formatDetailDate,
|
formatDetailDate,
|
||||||
handleDelete
|
handleDelete
|
||||||
}
|
}
|
||||||
|
|||||||
@ -43,12 +43,12 @@
|
|||||||
<div class="mail-meta-card">
|
<div class="mail-meta-card">
|
||||||
<div class="meta-left">
|
<div class="meta-left">
|
||||||
<div class="avatar-placeholder">
|
<div class="avatar-placeholder">
|
||||||
{{ getInitial(detailData.from_name || detailData.from_address) }}
|
{{ getInitial(formatSenderName(detailData.from_name, detailData.from_address)) }}
|
||||||
</div>
|
</div>
|
||||||
<div class="meta-info">
|
<div class="meta-info">
|
||||||
<div class="sender-line">
|
<div class="sender-line">
|
||||||
<span class="sender-name">{{ detailData.from_name !== '' ? detailData.from_name : detailData.from_address }}</span>
|
<span class="sender-name">{{ formatSenderName(detailData.from_name, detailData.from_address) }}</span>
|
||||||
<span class="sender-email" v-if="detailData.from_name !== ''"><{{ detailData.from_address }}></span>
|
<span class="sender-email" v-if="hasSenderName(detailData.from_name)"><{{ detailData.from_address }}></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="receivers-line">
|
<div class="receivers-line">
|
||||||
<span class="meta-label">{{ lang.to }}:</span>
|
<span class="meta-label">{{ lang.to }}:</span>
|
||||||
@ -117,6 +117,8 @@ const {
|
|||||||
ccs,
|
ccs,
|
||||||
showBCC,
|
showBCC,
|
||||||
bccs,
|
bccs,
|
||||||
|
formatSenderName,
|
||||||
|
hasSenderName,
|
||||||
formatDetailDate
|
formatDetailDate
|
||||||
} = usePage()
|
} = usePage()
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user