|
-
- import { i18n } from '~/langs';
- import { ACC_CARD_TYPE } from '~/const';
-
- export const getListValueWithKey = (list, key, k = 'k', v = 'v') => {
- for (let i = 0, iLen = list.length; i < iLen; i++) {
- const listI = list[i];
- if (listI[k] === key) return listI[v];
- }
- return key;
- };
-
- export const getUrlSearchParams = () => {
- const params = new URLSearchParams(location.search);
- const obj = {};
- params.forEach((value, key) => {
- obj[key] = value;
- });
- return obj;
- };
-
- export const transFileSize = (srcSize) => {
- if (null == srcSize || srcSize == '') {
- return '0 Bytes';
- }
- const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
- srcSize = parseFloat(srcSize);
- const index = Math.floor(Math.log(srcSize) / Math.log(1024));
- const size = (srcSize / Math.pow(1024, index)).toFixed(2);
- return size + ' ' + unitArr[index];
- };
-
- export const renderSpecStr = (spec, showPoint) => {
- if (!spec) return '';
- var ngpu = `${spec.ComputeResource}: ${spec.AccCardsNum + '*' + getListValueWithKey(ACC_CARD_TYPE, spec.AccCardType)}`;
- var gpuMemStr = spec.GPUMemGiB != 0 ? `${i18n.t('resourcesManagement.gpuMem')}: ${spec.GPUMemGiB}GB, ` : '';
- var sharedMemStr = spec.ShareMemGiB != 0 ? `, ${i18n.t('resourcesManagement.shareMem')}: ${spec.ShareMemGiB}GB` : '';
- var pointStr = showPoint ? `, ${spec.UnitPrice == 0 ? i18n.t('resourcesManagement.free') : spec.UnitPrice + i18n.t('resourcesManagement.point_hr')}` : '';
- var specStr = `${ngpu}, CPU: ${spec.CpuCores}, ${gpuMemStr}${i18n.t('resourcesManagement.mem')}: ${spec.MemGiB}GB${sharedMemStr}${pointStr}`;
- return specStr;
- };
-
- const Minute = 60;
- const Hour = 60 * Minute;
- const Day = 24 * Hour;
- const Week = 7 * Day;
- const Month = 30 * Day;
- const Year = 12 * Month;
-
- const computeTimeDiff = (diff) => {
- let diffStr = '';
- switch (true) {
- case diff <= 0:
- diff = 0;
- diffStr = i18n.t('timeObj.now');
- break;
- case diff < 2:
- diff = 0;
- diffStr = i18n.t('timeObj.1s');
- break;
- case diff < 1 * Minute:
- diffStr = i18n.t('timeObj.seconds', { msg: Math.floor(diff) });
- diff = 0;
- break;
- case diff < 2 * Minute:
- diff -= 1 * Minute;
- diffStr = i18n.t('timeObj.1m');
- break;
- case diff < 1 * Hour:
- diffStr = i18n.t('timeObj.minutes', { msg: Math.floor(diff / Minute) });
- diff -= diff / Minute * Minute;
- break;
- case diff < 2 * Hour:
- diff -= 1 * Hour;
- diffStr = i18n.t('timeObj.1h');
- break;
- case diff < 1 * Day:
- diffStr = i18n.t('timeObj.hours', { msg: Math.floor(diff / Hour) });
- diff -= diff / Hour * Hour;
- break;
- case diff < 2 * Day:
- diff -= 1 * Day;
- diffStr = i18n.t('timeObj.1d');
- break;
- case diff < 1 * Week:
- diffStr = i18n.t('timeObj.days', { msg: Math.floor(diff / Day) });
- diff -= diff / Day * Day;
- break;
- case diff < 2 * Week:
- diff -= 1 * Week;
- diffStr = i18n.t('timeObj.1w');
- break;
- case diff < 1 * Month:
- diffStr = i18n.t('timeObj.weeks', { msg: Math.floor(diff / Week) });
- diff -= diff / Week * Week;
- break;
- case diff < 2 * Month:
- diff -= 1 * Month;
- diffStr = i18n.t('timeObj.1mon');
- break;
- case diff < 1 * Year:
- diffStr = i18n.t('timeObj.months', { msg: Math.floor(diff / Month) });
- diff -= diff / Month * Month;
- break;
- case diff < 2 * Year:
- diff -= 1 * Year;
- diffStr = i18n.t('timeObj.1y');
- break;
- default:
- diffStr = i18n.t('timeObj.years', { msg: Math.floor(diff / Year) });
- diff -= (diff / Year) * Year;
- break;
- }
- return { diff, diffStr };
- };
-
- export const timeSinceUnix = (then, now) => {
- let lbl = 'timeObj.ago';
- let diff = now - then;
- if (then > now) {
- lbl = 'timeObj.from_now';
- diff = then - now;
- }
- if (diff <= 0) {
- return i18n.t('timeObj.now');
- }
- const out = computeTimeDiff(diff);
- return i18n.t(lbl, { msg: out.diffStr });
- };
|