feat: move project

This commit is contained in:
ckaaaa 2025-09-16 13:41:49 +08:00
commit 4a940f28ba
97 changed files with 5047 additions and 0 deletions

162
utils/func.js Normal file
View file

@ -0,0 +1,162 @@
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('.');
}