feat: 看板通话时长格式化hms
This commit is contained in:
@@ -73,6 +73,29 @@ export function diffValue(
|
|||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 格式化秒值为 ?h?m?s
|
||||||
|
* @param seconds 2558 秒
|
||||||
|
* @returns 1h42m38s
|
||||||
|
*/
|
||||||
|
export function parseDuration(seconds: number | string) {
|
||||||
|
seconds = Number(seconds) || 0;
|
||||||
|
const duration = dayjs().startOf('day').subtract(seconds, 'seconds');
|
||||||
|
const secondsLeft = duration.format('s');
|
||||||
|
const minutes = duration.format('m');
|
||||||
|
const hours = duration.format('H');
|
||||||
|
if (+hours > 0) {
|
||||||
|
return `${hours}h${minutes}m${secondsLeft}s`;
|
||||||
|
}
|
||||||
|
if (+minutes > 0) {
|
||||||
|
return `${minutes}m${secondsLeft}s`;
|
||||||
|
}
|
||||||
|
if (+secondsLeft > 0) {
|
||||||
|
return `${secondsLeft}s`;
|
||||||
|
}
|
||||||
|
return `${seconds}s`;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 格式时间不带年份
|
* 格式时间不带年份
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
|
import { parseDuration } from '@/utils/date-utils';
|
||||||
import { eventData, eventId } from '../../hooks/useUserActivity';
|
import { eventData, eventId } from '../../hooks/useUserActivity';
|
||||||
import useI18n from '@/hooks/useI18n';
|
import useI18n from '@/hooks/useI18n';
|
||||||
const { t } = useI18n();
|
const { t } = useI18n();
|
||||||
@@ -19,7 +20,7 @@ const { t } = useI18n();
|
|||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
{{ t('views.dashboard.overview.userActivity.duration') }}:
|
{{ t('views.dashboard.overview.userActivity.duration') }}:
|
||||||
<span>{{ item.data.callDuration }}</span>
|
<span>{{ parseDuration(item.data.callDuration) }}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-cdr-item">
|
<div class="card-cdr-item">
|
||||||
|
|||||||
Reference in New Issue
Block a user