This commit is contained in:
zoujiandong
2024-01-22 08:55:30 +08:00
parent 22f3da6c33
commit 2bd2fd31ac
3460 changed files with 136738 additions and 0 deletions
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

+15
View File
@@ -0,0 +1,15 @@
function debounce(fn,wait=1500){
var flag = true;
var timer = null;
return function(){
if(flag) {
fn.apply(this,arguments);
flag = false;
timer = setTimeout(() => {
flag = true
},wait)
}
}
}
export default debounce
+91
View File
@@ -0,0 +1,91 @@
const FileUtil = {
//file 为微信file 单文件
getFileName(file){
// size: 132224
// thumb: "http://tmp/0ftStiYfd18K517836423bbfde024c385140a666b344.png"
// type: "image"
// url: "http://tmp/0ftStiYfd18K517836423bbfde024c385140a666b344.png"
if(file){
const uuid = this.UUID().replace("/-/g","");
if(file.url && (file.url.indexOf(".") > -1)){
const fileType = file.url.split(".")[1];
return uuid+"."+fileType;
}else{
return;
}
}
return;
},
UUID () {
if (typeof crypto === 'object') {
if (typeof crypto.randomUUID === 'function') {
return crypto.randomUUID();
}
if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') {
const callback = (c) => {
const num = Number(c);
return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(16);
};
return ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, callback);
}
}
let timestamp = new Date().getTime();
let perforNow = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0;
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
let random = Math.random() * 16;
if (timestamp > 0) {
random = (timestamp + random) % 16 | 0;
timestamp = Math.floor(timestamp / 16);
} else {
random = (perforNow + random) % 16 | 0;
perforNow = Math.floor(perforNow / 16);
}
return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16);
});
},
canvasToFile(){
let canvas = window.map3DControl.viewer.canvas;
let imgWidth = 1920;
let img = Canvas2Image.convertToImage(
canvas,
imgWidth,
(imgWidth * canvas.height) / canvas.width,
"png"
);
let file_name = new Date().getTime() + ".png";
let imgsrc = img.src.slice(22)
let file = this.convertBase64UrlToImgFile(
imgsrc,
file_name,
"image/png"
)
return file;
},
convertBase64UrlToImgFile(urlData, fileName, fileType) {
urlData = urlData.replace(/^data:image\/\w+;base64,/, "");
let bytes = wx.base64ToArrayBuffer(urlData);
// var bytes = wx.atob(urlData); //转换为byte
//处理异常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);
var ia = new Int8Array(ab);
var i;
for (i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
//转换成文件,添加文件的typenamelastModifiedDate属性
var blob = new Blob([ab], { type: fileType });
blob.lastModifiedDate = new Date();
blob.name = fileName;
return blob;
}
}
export { FileUtil }
+121
View File
@@ -0,0 +1,121 @@
// 星期格式转换 0-6:周日到周六
function weekFormat(e, prefix = "周") {
switch (e) {
case 0:
return prefix + "日"
break;
case 1:
return prefix + "一"
break;
case 2:
return prefix + "二"
break;
case 3:
return prefix + "三"
break;
case 4:
return prefix + "四"
break;
case 5:
return prefix + "五"
break;
case 6:
return prefix + "六"
break;
default:
return ""
break;
}
}
// 转换今日的时辰格式
function todayTimeFormat(e) {
if (e >= 0 && e < 7) {
return "凌晨"
} else if (e >= 7 && e < 11) {
return "上午"
} else if (e >= 11 && e < 13) {
return "中午"
} else if (e >= 13 && e < 18) {
return "下午"
} else if (e >= 18 && e < 24) {
return "晚上"
} else {
return ""
}
}
// 是否显示周几
function isShowWeekDay(sub, weekDay) {
const currentWeekDay = new Date().getDay()
const dayTime = 1000 * 60 * 60 * 24
// 1.当前时间与消息时间相差必须大于2天小于7天
// 2.当前时间距离本周一相差必须大于2天且小于当前距离周一的天数
// 3.消息时间不可能是0-周日,因为周日没有给后面时间留空间,不会走这里的逻辑,而是走今天的逻辑
if (sub >= dayTime * 2 && weekDay !== 0 && sub <= dayTime * currentWeekDay) {
return true
} else {
return false
}
}
// 仿微信时间显示格式转换 @time 时间戳毫秒
function wechatTimeFormat(time) {
const today = new Date().getTime()
// 当前时间减去获取到的时间
const sub = today - time
const day = 1000 * 60 * 60 * 24
const timeDate = new Date(time)
const currentYear = new Date().getFullYear()
const getYear = new Date(time).getFullYear()
const HHmm = `${formatTime2("hh", timeDate)}:${formatTime2("mm", timeDate)}`
const showWeekDay = isShowWeekDay(sub, timeDate.getDay())
const currentDay = new Date().getDate()
const getDay = new Date(time).getDate()
const subDay = currentDay - getDay
if (currentYear > getYear) {
return `${formatTime2("yyyy-MM-dd", timeDate)} ${formatTime2("hh:mm", timeDate)}`
// 上午下午
return `${formatTime2("yyyy年MM月dd日", timeDate)} ${todayTimeFormat(timeDate.getHours())} ${formatTime2("hh:mm", timeDate)}`
} else if (showWeekDay) {
return `${weekFormat(timeDate.getDay())} ${HHmm}`
//} else if (sub > day && sub < day * 2) {
} else if (subDay === 1) {
return `昨天 ${HHmm}`
} else if (sub <= day) {
return HHmm
} else {
return `${formatTime2("MM-dd", timeDate)} ${formatTime2("hh:mm", timeDate)}`
// 上午下午
return `${formatTime2("MM月dd日", timeDate)} ${todayTimeFormat(timeDate.getHours())} ${formatTime2("hh:mm", timeDate)}`
}
}
function formatTime2(fmt, timestamp) {
var date = new Date(timestamp) // 兼容safari
var o = {
'M+': date.getMonth() + 1,
'd+': date.getDate(),
'h+': date.getHours(),
'm+': date.getMinutes(),
's+': date.getSeconds(),
'q+': Math.floor((date.getMonth() + 3) / 3),
'S': date.getMilliseconds()
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (var k in o) {
if (new RegExp('(' + k + ')').test(fmt)) {
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
}
}
return fmt
}
module.exports = {
weekFormat,
todayTimeFormat,
isShowWeekDay,
wechatTimeFormat
}