liiistem-miniapp/utils/func.js
2025-09-16 13:41:49 +08:00

162 lines
No EOL
4.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import C from './constant.js';
export const getHost = () => {
return C.apiHost;
};
export const isDev = () => {
return true;
}
export const parseDate = (time, type = 1) => {
const val = [time.getFullYear(), time.getMonth() + 1, time.getDate()].map((o) => { return o < 10 ? '0' + o : o });
const val2 = [time.getHours(), time.getMinutes(), time.getSeconds()].map((o) => { return o < 10 ? '0' + o : o });
if (type === 1) {
return val.join('-');
}
if (type === 2) {
return val2.join(':');
}
if (type === 3) {
return [val[0], '年', val[1], '月', val[2], '日'].join('');
}
if (type === 4) {
return val[0] + '年';
}
if (type === 5) {
return [val[1], '月'].join('');
}
if (type === 6) {
return [val[1], '月', val[2], '日'].join('');
}
if (type === 7) {
return val.join('.');
}
return val.join('-') + ' ' + val2.join(':');
}
export const safeStrToDate = (str) => {
const arr = str.split(/[-\ \:]/g);
const arr2 = [0, 0, 0, 0, 0, 0];
arr.map((one, idx) => {
arr2[idx] = one * 1;
});
if (arr2[1] > 0) {
arr2[1] -= 1;
}
return new Date(arr2[0], arr2[1], arr2[2], arr2[3], arr2[4], arr2[5]);
}
export const sizeTool = (size) => {
if (size > 1024 * 1024 * 1024) {
return (size / 1024 / 1024 / 1024).toFixed(2) + 'G';
}
if (size > 1024 * 1024) {
return (size / 1024 / 1024).toFixed(2) + 'M';
}
if (size > 1024) {
return (size / 1024).toFixed(2) + 'K';
}
return size + 'B'
}
export const getQueryString = (params) => {
const list = [];
for (const k in params) {
if (!(params[k] == undefined || params[k] == null)) {
list.push([encodeURIComponent(k), encodeURIComponent(params[k])].join('='));
}
}
return list.join('&');
}
export const parseQueryString = (str) => {
const l = str.split('&');
const m = {};
l.forEach((o) => {
const _ = o.split('=');
m[decodeURIComponent(_[0])] = decodeURIComponent(_[1] || '');
})
return m;
}
export const filterProperties = (obj, propKeys) => {
if (propKeys.length == 0) {
return { ...obj };
}
const reObj = {};
propKeys.map((k) => {
reObj[k] = obj[k];
});
return reObj;
}
export const filterPropertiesList = (list, propKeys) => {
return list.map((obj => filterProperties(obj, propKeys)));
}
export const secToTimeStr = (n) => {
const h = Math.floor(n * 1.0 / 60 / 60);
const m = Math.floor((n - h * 60 * 60) / 60);
const s = n % 60;
return h + '时' + m + '分' + s + '秒';
}
export const dateToWeek = (date) => {
const arr = '日一二三四五六'.split('');
return arr[date.getDay()];
}
export const fixPage = (pageData, oldPage) => {
// console.log('fixPage', pageData.page, oldPage);
const { page, pageSize, total } = pageData;
if (total == 0) {
return {
...pageData,
page: 1, pageSize, total: 0
};
}
const maxPage = Math.ceil(total * 1.0 / pageSize);
if (oldPage > maxPage) {
return {
...pageData,
list: [],
page: oldPage, pageSize, total: 0
};
}
return {
...pageData,
page, pageSize, total
};
}
// 分转元,并移除小数点后多余的0
export const formatePrice = (price) => {
return (price / 100).toFixed(2).replace(/\.00$/, '')
}
// 时间12:22加上分钟后的时间
export const timeAddMinute = (time, minute) => {
const tmpTime = safeStrToDate('2020-01-01 ' + time + ':00').getTime() + minute * 60 * 1000;
return parseDate(new Date(tmpTime), 9);
}
// 手机号隐藏中间几位
export const hidePhone = (phone) => {
return (phone || '').replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
}
export const fix0 = (n) => {
if (!/[0-9\.]+/.test(n + '')) {
return 0;
}
const t = n + '';
if (n.indexOf('.') == -1) {
return t;
}
const tt = t.split('.');
const f0 = (tt[1].split('').reverse().join('') * 1 + '').split('').reverse().join('');
if (f0 == 0) {
return tt[0];
}
return [tt[0], f0].join('.');
}