Issues #83: done.

This commit is contained in:
chiayin
2023-09-12 11:48:32 +08:00
parent 35a494b99e
commit 11eb320c55
3 changed files with 29 additions and 13 deletions

View File

@@ -70,7 +70,6 @@
</div> </div>
</div> </div>
<!-- show bar --> <!-- show bar -->
<!-- selectedRuleType === 'Activity sequence' && selectedActivitySequence === 'Sequence' && (selectedActSeqMore === 'Short loop(s)' || selectedActSeqMore === 'Self loop(s)') -->
<ConformanceShowBar :class="isShowBar?'':'hidden'" <ConformanceShowBar :class="isShowBar?'':'hidden'"
:isSubmit="isSubmit" :isSubmit="isSubmit"
:isSubmitTask="isSubmitTask" :isSubmitTask="isSubmitTask"

View File

@@ -1,14 +1,30 @@
/** /**
* 將數字轉換成簡寫的形式1k、1m、1b等 * 將數字轉換成簡寫的形式,設定 dhms 的數值
* @param {number} number * @param {number} totalSeconds
* @returns {string} * @returns {string}
*/ */
export default function abbreviateNumber(number) { export default function abbreviateNumber(totalSeconds) {
const SI_SYMBOLS = ["", "k", "m", "b", "t"]; let seconds = 0;
const tier = Math.log10(Math.abs(number)) / 3 | 0; let minutes = 0;
const suffix = SI_SYMBOLS[tier]; let hours = 0;
const scale = Math.pow(10, tier * 3); let days = 0;
const scaledNumber = number / scale; let result = '';
let symbols = ['d', 'h', 'm', 's'];
return Math.round(scaledNumber) + suffix; totalSeconds = parseInt(totalSeconds);
if(!isNaN(totalSeconds)) {
seconds = totalSeconds % 60;
minutes = (Math.floor(totalSeconds - seconds) / 60) % 60;
hours = (Math.floor(totalSeconds / 3600)) % 24;
days = Math.floor(totalSeconds / (3600 * 24));
};
const units = [days, hours, minutes, seconds];
for(let i = 0; i < units.length; i++) {
if(units[i] > 0) result += units[i] + symbols[i];
} }
if(totalSeconds === 0) result = '0s';
return result;
};

View File

@@ -5,6 +5,7 @@ import {useToast} from 'vue-toast-notification';
import 'vue-toast-notification/dist/theme-sugar.css'; import 'vue-toast-notification/dist/theme-sugar.css';
import moment from "moment"; import moment from "moment";
import { Decimal } from 'decimal.js'; import { Decimal } from 'decimal.js';
import abbreviateNumber from '@/module/abbreviateNumber.js';
const loading = loadingStore(pinia); const loading = loadingStore(pinia);
const $toast = useToast(); const $toast = useToast();
@@ -122,7 +123,7 @@ export default defineStore('conformanceStore', {
c.facets.map(fac => { c.facets.map(fac => {
switch(fac.type) { switch(fac.type) {
case 'duration-list': case 'duration-list':
fac.value = fac.value.map(v => v !== null ? new Decimal(v.toFixed(2)) : null); fac.value = fac.value.map(v => v !== null ? abbreviateNumber(new Decimal(v.toFixed(2))) : null);
fac.value = fac.value.join(', '); fac.value = fac.value.join(', ');
break; break;
default: default: