122 lines
3.2 KiB
JavaScript
122 lines
3.2 KiB
JavaScript
|
const formatTime = (date) => {
|
|||
|
const year = date.getFullYear();
|
|||
|
const month = date.getMonth() + 1;
|
|||
|
const day = date.getDate();
|
|||
|
const hour = date.getHours();
|
|||
|
const minute = date.getMinutes();
|
|||
|
const second = date.getSeconds();
|
|||
|
|
|||
|
return `${[year, month, day].map(formatNumber).join("/")} ${[
|
|||
|
hour,
|
|||
|
minute,
|
|||
|
second,
|
|||
|
]
|
|||
|
.map(formatNumber)
|
|||
|
.join(":")}`;
|
|||
|
};
|
|||
|
|
|||
|
const formatNumber = (n) => {
|
|||
|
n = n.toString()
|
|||
|
return n[1] ? n : `0${n}`
|
|||
|
};
|
|||
|
|
|||
|
const isDownloadFileSuccess = async (filePath) => {
|
|||
|
return new Promise((resolve, reject) => {
|
|||
|
wx.downloadFile({
|
|||
|
url: filePath,
|
|||
|
success(res) {
|
|||
|
if (res.statusCode === 200) {
|
|||
|
resolve(true);
|
|||
|
} else {
|
|||
|
resolve(false);
|
|||
|
}
|
|||
|
},
|
|||
|
fail() {
|
|||
|
resolve(false);
|
|||
|
},
|
|||
|
});
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
const compareVersion = (v1, v2) => {
|
|||
|
v1 = v1.split(".");
|
|||
|
v2 = v2.split(".");
|
|||
|
const len = Math.max(v1.length, v2.length);
|
|||
|
while (v1.length < len) {
|
|||
|
v1.push("0");
|
|||
|
}
|
|||
|
while (v2.length < len) {
|
|||
|
v2.push("0");
|
|||
|
}
|
|||
|
for (let i = 0; i < len; i++) {
|
|||
|
const num1 = parseInt(v1[i], 10);
|
|||
|
const num2 = parseInt(v2[i], 10);
|
|||
|
|
|||
|
if (num1 > num2) {
|
|||
|
return 1;
|
|||
|
} else if (num1 < num2) {
|
|||
|
return -1;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return 0;
|
|||
|
};
|
|||
|
|
|||
|
/**
|
|||
|
* canvas能否正常渲染图片
|
|||
|
* @param {string} url 图片URL
|
|||
|
* @param {string} canvasId
|
|||
|
* @param {*} thisArg 页面实例
|
|||
|
* @returns
|
|||
|
*/
|
|||
|
const isCreateImageSuccess = (url, canvasId, thisArg) => {
|
|||
|
return new Promise((resolve, reject) => {
|
|||
|
const {
|
|||
|
SDKVersion
|
|||
|
} = wx.getSystemInfoSync();
|
|||
|
const use2dCanvas = compareVersion(SDKVersion, "2.9.2") >= 0;
|
|||
|
if (use2dCanvas) {
|
|||
|
const query = thisArg.createSelectorQuery();
|
|||
|
query
|
|||
|
.select(`#${canvasId}`)
|
|||
|
.fields({
|
|||
|
node: true,
|
|||
|
size: true
|
|||
|
})
|
|||
|
.exec((res) => {
|
|||
|
console.log({
|
|||
|
res
|
|||
|
});
|
|||
|
const canvas = res[0].node;
|
|||
|
const ctx = canvas.getContext("2d");
|
|||
|
canvas.width = res[0].width;
|
|||
|
canvas.height = res[0].height;
|
|||
|
|
|||
|
const Image = canvas.createImage();
|
|||
|
Image.onload = () => {
|
|||
|
ctx.drawImage(Image, 0, 0, res[0].width, res[0].height);
|
|||
|
ctx.restore();
|
|||
|
resolve(true);
|
|||
|
};
|
|||
|
Image.onerror = (e) => {
|
|||
|
console.log(e);
|
|||
|
resolve(false);
|
|||
|
};
|
|||
|
Image.src = url;
|
|||
|
});
|
|||
|
} else {
|
|||
|
wx.showToast({
|
|||
|
title: '您的微信SDK版本低,不支持该功能',
|
|||
|
icon: 'none', //icon
|
|||
|
duration: 1500 //停留时间
|
|||
|
})
|
|||
|
}
|
|||
|
});
|
|||
|
};
|
|||
|
|
|||
|
module.exports = {
|
|||
|
isDownloadFileSuccess,
|
|||
|
compareVersion,
|
|||
|
isCreateImageSuccess,
|
|||
|
formatTime,
|
|||
|
};
|