新增营销系统、分销系统、会员功能、门店、提现功能

This commit is contained in:
Shaw
2024-02-08 21:01:37 +08:00
parent 68b3f2dcc3
commit 17c043348a
1398 changed files with 81279 additions and 56269 deletions

View File

@ -16,19 +16,19 @@ export function formatDate(date, format) {
}
export function formatRemainTime(time) {
let remainTimeStr=''
let remainTimeStr = ''
const seconds = Math.floor(time / 1000)
const days = Math.floor(seconds / (3600 * 24))
const hours = Math.floor((seconds % (3600 * 24)) / 3600)
// const minutes = Math.floor((seconds % 3600) / 60)
// const remainingSeconds = seconds % 60
if(days>0){
remainTimeStr += `${days}`
if (days > 0) {
remainTimeStr += `${ days }`
}
if(hours>0){
remainTimeStr += `${hours}小时`
if (hours > 0) {
remainTimeStr += `${ hours }小时`
}
return `还剩${remainTimeStr}自动确认`
return `还剩${ remainTimeStr }自动确认`
}
/**
@ -171,3 +171,93 @@ export function hasNetWork() {
export function getRandom(min, max) {
return (Math.random() * (max - min) + min).toFixed(2);
}
/**
* 计算未来时间距离当前时间的时间对象
* @param futureTime 未来时间的时间戳(毫秒)
*/
export function getTimeAfterNow(futureTime) {
const nowTime = Date.now()
const timeDiff = futureTime - nowTime // 时间差
if (timeDiff <= 0) {
return {
days: '00',
hours: '00',
minutes: '00',
seconds: '00'
}
}
let hours = Math.floor((timeDiff) / (1000 * 60 * 60));
let minutes = Math.floor((timeDiff % (1000 * 60 * 60)) / (1000 * 60));
let seconds = Math.floor((timeDiff % (1000 * 60)) / 1000);
return {
hours: hours.toString().padStart(2, '0'),
minutes: minutes.toString().padStart(2, '0'),
seconds: seconds.toString().padStart(2, '0')
}
}
/**
* 生成本周的日历
* @return {Date[]}
*/
export function generationWeek() {
const MillisecondsOfTheDay = 24 * 60 * 60 * 1000 // 一天的毫秒数
let today = new Date();
let dayOfTheWeek = today.getDay(); // 当前天在本周的位置
let calendar = []
let startOfWeek = new Date(today - (dayOfTheWeek * MillisecondsOfTheDay) + MillisecondsOfTheDay); // 本周开始的位置
for (let i = 0; i < 7; i++) {
let day = new Date(startOfWeek.getTime() + i * MillisecondsOfTheDay);
calendar.push(day)
}
return calendar
}
/**
* @description: 对象转query串
* @param {*} obj
* @param {*} noFilterEmpty 默认false 去除空值再拼接字符串
* @return {*}
*/
export const getQueryString = (obj, noFilterEmpty = false) => {
if (!obj) return '';
let newObj = {...obj};
if (!noFilterEmpty) {
newObj = filterParams(newObj)
}
return new URLSearchParams(Object.entries(newObj)).toString()
}
/**
* @description: query串转对象
* 支持小程序
* @param query
*/
export const getUrlQuery = (query) => {
if (!query) return
if (query.indexOf("?") > 0) {
query = query.split("?").at(-1) // 选取?后面的
}
const queryList = query.split("&").map(item => item.split("="))
const entries = new Map(queryList);
return Object.fromEntries(entries);
}
/**
* @description: 去除对象中的空值
* @param {*} obj
* @return {*}
*/
export const filterParams = (obj) => {
let newObj = {};
for (const key in obj) {
//如果对象属性的值不为空就保存该属性如果属性的值为0 false保存该属性。如果属性的值全部是空格属于为空。
if ((obj[key] === 0 || obj[key] === false || obj[key]) && obj[key].toString().replace(/(^\s*)|(\s*$)/g, '') !== '') {
newObj[key] = obj[key];
}
}
return newObj;
}