vue项目封装的简易方法
// 日期格式化 export function parseTime(time: string, pattern: string) { if (arguments.length === 0 || !time) { return null } const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}' let date if (typeof time === 'object') { date = time } else { if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { time = parseInt(time) } else if (typeof time === 'string') { time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), ''); } if ((typeof time === 'number') && (time.toString().length === 10)) { time = time * 1000 } date = new Date(time) } const formatObj = { y: date.getFullYear(), m: date.getMonth() + 1, d: date.getDate(), h: date.getHours(), i: date.getMinutes(), s: date.getSeconds(), a: date.getDay() } const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { let value = formatObj[key] // Note: getDay() returns 0 on Sunday if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } if (result.length > 0 && value < 10) { value = '0' + value } return value || 0 }) return time_str } /** * 去除 数组中的空字符串 */ export function trimSpace(array: any) { for (var i = 0; i < array.length; i++) { if (array[i] == " " || array[i] == "" || array[i] == null || typeof (array[i]) == "undefined") { array.splice(i, 1); i = i - 1; } } return array; } /** * 数据非空验证 * @desc 验证数据是否为 null undefined [] {} '' * @param data * @return {boolean} */ export function isEmpty(data: any) { if (data === null) return true if (data === undefined) return true if (Object.prototype.toString.call(data) === '[object Array]') return data.length === 0 if (Object.prototype.toString.call(data) === '[object Object]') return Object.keys(data).length === 0 if (typeof data === 'string') return data.trim() === '' return false } /** * 过滤空字段 */ export const getNewParmes = (parme: any, ignoreArr: Array<any>) => { let parmes = parme let tempValue = { ...parme } if (parmes) { let keys = Object.keys(parmes); for (let i = 0; i < keys.length; i++) { const key = keys[i]; if (!ignoreArr.includes(key)) { const value = parmes[key]; if (isEmpty(value)) { delete parmes[key]; } } } } tempValue = { ...parmes } if (isEmpty(tempValue)) { tempValue = {} } return tempValue; } /** * js计算中的科学计数法 */ export const toolNumber = (num_str: any) => { num_str = num_str.toString(); if (num_str.indexOf("+") != -1) { num_str = num_str.replace("+", ""); } if (num_str.indexOf("E") != -1 || num_str.indexOf("e") != -1) { var resValue = "", power: number = 0, result = null, dotIndex = 0, resArr: any = [], sym = ""; var numStr = num_str.toString(); if (numStr[0] == "-") { // 如果为负数,转成正数处理,先去掉‘-’号,并保存‘-’. numStr = numStr.substr(1); sym = "-"; } if (numStr.indexOf("E") != -1 || numStr.indexOf("e") != -1) { var regExp = new RegExp( "^(((\\d+.?\\d+)|(\\d+))[Ee]{1}((-(\\d+))|(\\d+)))$", "ig" ); result = regExp.exec(numStr); if (result != null) { resValue = result[2]; power = Number(result[5]); result = null; } if (!resValue && !power) { return false; } dotIndex = resValue.indexOf(".") == -1 ? 0 : resValue.indexOf("."); resValue = resValue.replace(".", ""); resArr = resValue.split(""); if (Number(power) >= 0) { var subres = resValue.substr(dotIndex); power = Number(power); //幂数大于小数点后面的数字位数时,后面加0 for (var i = 0; i <= power - subres.length; i++) { resArr.push("0"); } if (power - subres.length < 0) { resArr.splice(dotIndex + power, 0, "."); } } else { power = power.replace("-", ""); power = Number(power); //幂数大于等于 小数点的index位置, 前面加0 for (var i = 0; i < power - dotIndex; i++) { resArr.unshift("0"); } var n = power - dotIndex >= 0 ? 1 : -(power - dotIndex); resArr.splice(n, 0, "."); } } resValue = resArr.join(""); return sym + resValue; } else { return num_str; } } /** * 拼接 图片 URL */ export const getNewUrl = (url: string, width: number | string = 100, height: number | string = 100, sku: string = 'nihao') => { let oldUrl = `${url}`; let newUrl = ''; if (!isEmpty(url)) { if (url.indexOf("img.nihaojewelry.com") !== -1) { let iconArr = url.split('.'); newUrl = `${oldUrl.replace(`.${iconArr[iconArr.length - 1]}`, `_thumb_${width}x${height}/${sku}.${iconArr[iconArr.length - 1]}`)}`; } else { newUrl = `${oldUrl}?x-oss-process=image/format,webp,image/resize,m_fill,w_${width},h_${height}`; } } return newUrl; // skuImg: "http://image.nihaostyles.com/product/2021/6/10/1402800346123866112.jpg?x-oss-process=image/resize,m_fixed,limit_0,h_120,w_120" // skuImg: "http://image.nihaostyles.com/product/2021/6/10/1402800346123866112.jpg" // 主站 图片URL import { getNewUrl } from '/@/utils/erp'; // https://img.nihaojewelry.com/product/2022/4/13/1514075147882074112_thumb_200x200/NHMEY713729.jpg // https://img.nihaojewelry.com/product/2022/4/13/1514075147882074112.jpg // 一种类型 // https://img.nihaojewelry.com/ // 其他类型 // https://image.nihaostyles.com/ // https://hz-oss-ck.oss-cn-hangzhou.aliyuncs.com/ // = = = = = = // let newUrl = `${item.skuImg.replace(`.${iconArr[iconArr.length - 1]}`, `_thumb_${130}x${130}/${item.sku}.${iconArr[iconArr.length - 1]}`)}`; // = = = = = // http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,limit_0,h_4096,w_4096 // https://cc-west-usa.oss-us-west-1.aliyuncs.com/4cf4abeb-1519-4f27-adec-328bd95fc176.jpg?x-oss-process=image/format,webp,image/resize,m_fill,w_179,h_190 }
// 日期格式化
export function parseTime(time: string, pattern: string) {
if (arguments.length === 0 || !time) {
return null
}
const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
} else if (typeof time === 'string') {
time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
}
if ((typeof time === 'number') && (time.toString().length === 10)) {
time = time * 1000
}
date = new Date(time)
}
const formatObj = {
y: date.getFullYear(),
m: date.getMonth() + 1,
d: date.getDate(),
h: date.getHours(),
i: date.getMinutes(),
s: date.getSeconds(),
a: date.getDay()
}
const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
let value = formatObj[key]
// Note: getDay() returns 0 on Sunday
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
/**
* 去除 数组中的空字符串
*/
export function trimSpace(array: any) {
for (var i = 0; i < array.length; i++) {
if (array[i] == " " || array[i] == "" || array[i] == null || typeof (array[i]) == "undefined") {
array.splice(i, 1);
i = i - 1;
}
}
return array;
}
/**
* 数据非空验证
* @desc 验证数据是否为 null undefined [] {} ''
* @paramdata
* @return{boolean}
*/
export function isEmpty(data: any) {
if (data === null) return true
if (data === undefined) return true
if (Object.prototype.toString.call(data) === '[object Array]') return data.length === 0
if (Object.prototype.toString.call(data) === '[object Object]') return Object.keys(data).length === 0
if (typeof data === 'string') return data.trim() === ''
return false
}
/**
* 过滤空字段
*/
export const getNewParmes = (parme: any, ignoreArr: Array<any>) => {
let parmes = parme
let tempValue = { ...parme }
if (parmes) {
let keys = Object.keys(parmes);
for (let i = 0; i < keys.length; i++) {
const key = keys[i];
if (!ignoreArr.includes(key)) {
const value = parmes[key];
if (isEmpty(value)) {
delete parmes[key];
}
}
}
}
tempValue = { ...parmes }
if (isEmpty(tempValue)) {
tempValue = {}
}
return tempValue;
}
/**
* js计算中的科学计数法
*/
export const toolNumber = (num_str: any) => {
num_str = num_str.toString();
if (num_str.indexOf("+") != -1) {
num_str = num_str.replace("+", "");
}
if (num_str.indexOf("E") != -1 || num_str.indexOf("e") != -1) {
var resValue = "",
power: number = 0,
result = null,
dotIndex = 0,
resArr: any = [],
sym = "";
var numStr = num_str.toString();
if (numStr[0] == "-") {
// 如果为负数,转成正数处理,先去掉‘-’号,并保存‘-’.
numStr = numStr.substr(1);
sym = "-";
}
if (numStr.indexOf("E") != -1 || numStr.indexOf("e") != -1) {
var regExp = new RegExp(
"^(((\\d+.?\\d+)|(\\d+))[Ee]{1}((-(\\d+))|(\\d+)))$",
"ig"
);
result = regExp.exec(numStr);
if (result != null) {
resValue = result[2];
power = Number(result[5]);
result = null;
}
if (!resValue && !power) {
return false;
}
dotIndex = resValue.indexOf(".") == -1 ? 0 : resValue.indexOf(".");
resValue = resValue.replace(".", "");
resArr = resValue.split("");
if (Number(power) >= 0) {
var subres = resValue.substr(dotIndex);
power = Number(power);
//幂数大于小数点后面的数字位数时,后面加0
for (var i = 0; i <= power - subres.length; i++) {
resArr.push("0");
}
if (power - subres.length < 0) {
resArr.splice(dotIndex + power, 0, ".");
}
} else {
power = power.replace("-", "");
power = Number(power);
//幂数大于等于 小数点的index位置, 前面加0
for (var i = 0; i < power - dotIndex; i++) {
resArr.unshift("0");
}
var n = power - dotIndex >= 0 ? 1 : -(power - dotIndex);
resArr.splice(n, 0, ".");
}
}
resValue = resArr.join("");
return sym + resValue;
} else {
return num_str;
}
}
/**
* 拼接 图片 URL
*/
export const getNewUrl = (url: string, width: number | string = 100, height: number | string = 100, sku: string = 'nihao') => {
let oldUrl = `${url}`;
let newUrl = '';
if (!isEmpty(url)) {
if (url.indexOf("img.nihaojewelry.com") !== -1) {
let iconArr = url.split('.');
newUrl = `${oldUrl.replace(`.${iconArr[iconArr.length - 1]}`, `_thumb_${width}x${height}/${sku}.${iconArr[iconArr.length - 1]}`)}`;
} else {
newUrl = `${oldUrl}?x-oss-process=image/format,webp,image/resize,m_fill,w_${width},h_${height}`;
}
}
return newUrl;
// skuImg: "http://image.nihaostyles.com/product/2021/6/10/1402800346123866112.jpg?x-oss-process=image/resize,m_fixed,limit_0,h_120,w_120"
// skuImg: "http://image.nihaostyles.com/product/2021/6/10/1402800346123866112.jpg"
// 主站 图片URL import { getNewUrl } from '/@/utils/erp';
// https://img.nihaojewelry.com/product/2022/4/13/1514075147882074112_thumb_200x200/NHMEY713729.jpg
// https://img.nihaojewelry.com/product/2022/4/13/1514075147882074112.jpg
// 一种类型
// https://img.nihaojewelry.com/
// 其他类型
// https://image.nihaostyles.com/
// https://hz-oss-ck.oss-cn-hangzhou.aliyuncs.com/
// = = = = = =
// let newUrl = `${item.skuImg.replace(`.${iconArr[iconArr.length - 1]}`, `_thumb_${130}x${130}/${item.sku}.${iconArr[iconArr.length - 1]}`)}`;
// = = = = =
// http://image-demo.oss-cn-hangzhou.aliyuncs.com/example.jpg?x-oss-process=image/resize,m_fixed,limit_0,h_4096,w_4096
// https://cc-west-usa.oss-us-west-1.aliyuncs.com/4cf4abeb-1519-4f27-adec-328bd95fc176.jpg?x-oss-process=image/format,webp,image/resize,m_fill,w_179,h_190
}
人,一定不能懒,懒习惯了,稍微努力一下便以为是在拼命。

浙公网安备 33010602011771号