lcw
This commit is contained in:
@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
import ImageCompressor from "image-compressor.js";
|
||||
|
||||
// 生成10位数的随机数
|
||||
@ -13,23 +11,34 @@ export function generateRandom10Digits() {
|
||||
// 随机颜色 - 把16进制的颜色换成rgba格式
|
||||
export function choseRbgb(color, opcity) {
|
||||
if (color) {
|
||||
return 'rgba(' + parseInt('0x' + color.slice(1, 3)) + ',' + parseInt('0x' + color.slice(3, 5)) + ',' + parseInt('0x' + color.slice(5, 7)) + ',' + opcity + ')'
|
||||
return (
|
||||
"rgba(" +
|
||||
parseInt("0x" + color.slice(1, 3)) +
|
||||
"," +
|
||||
parseInt("0x" + color.slice(3, 5)) +
|
||||
"," +
|
||||
parseInt("0x" + color.slice(5, 7)) +
|
||||
"," +
|
||||
opcity +
|
||||
")"
|
||||
);
|
||||
} else {
|
||||
let r = Math.floor(Math.random() * 256)
|
||||
let g = Math.floor(Math.random() * 256)
|
||||
let b = Math.floor(Math.random() * 256)
|
||||
let a = opcity ? opcity : 1
|
||||
return `rgba(${r},${g},${b},${a})`
|
||||
let r = Math.floor(Math.random() * 256);
|
||||
let g = Math.floor(Math.random() * 256);
|
||||
let b = Math.floor(Math.random() * 256);
|
||||
let a = opcity ? opcity : 1;
|
||||
return `rgba(${r},${g},${b},${a})`;
|
||||
}
|
||||
}
|
||||
|
||||
// 随机十六进制颜色
|
||||
export function randomHexColor() { // 随机生成十六进制颜色
|
||||
export function randomHexColor() {
|
||||
// 随机生成十六进制颜色
|
||||
var hex = Math.floor(Math.random() * 16777216).toString(16);
|
||||
while (hex.length < 6) {
|
||||
hex = '0' + hex;
|
||||
hex = "0" + hex;
|
||||
}
|
||||
return '#' + hex;
|
||||
return "#" + hex;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -47,23 +56,30 @@ export function compressImage(file, quality = 0.6) {
|
||||
},
|
||||
error(e) {
|
||||
reject("图片压缩失败,请稍后再试");
|
||||
},
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
// 今天周几
|
||||
export function weekValidate() {
|
||||
let week = new Date().getDay()
|
||||
let weekenday = ''
|
||||
let week = new Date().getDay();
|
||||
let weekenday = "";
|
||||
switch (week) {
|
||||
case 0: return weekenday = '星期日'
|
||||
case 1: return weekenday = '星期一'
|
||||
case 2: return weekenday = '星期二'
|
||||
case 3: return weekenday = '星期三'
|
||||
case 4: return weekenday = '星期四'
|
||||
case 5: return weekenday = '星期五'
|
||||
case 6: return weekenday = '星期六'
|
||||
case 0:
|
||||
return (weekenday = "星期日");
|
||||
case 1:
|
||||
return (weekenday = "星期一");
|
||||
case 2:
|
||||
return (weekenday = "星期二");
|
||||
case 3:
|
||||
return (weekenday = "星期三");
|
||||
case 4:
|
||||
return (weekenday = "星期四");
|
||||
case 5:
|
||||
return (weekenday = "星期五");
|
||||
case 6:
|
||||
return (weekenday = "星期六");
|
||||
}
|
||||
}
|
||||
|
||||
@ -86,45 +102,44 @@ export function formatDuring(mss) {
|
||||
|
||||
// 转换时间格式
|
||||
export function timeValidate(date, type) {
|
||||
const time = date ? new Date(date) : new Date()
|
||||
const yyyy = time.getFullYear()
|
||||
const MM = (time.getMonth() + 1).toString().padStart(2, 0)
|
||||
const dd = time.getDate().toString().padStart(2, '0')
|
||||
const hh = time.getHours().toString().padStart(2, '0')
|
||||
const mm = time.getMinutes().toString().padStart(2, '0')
|
||||
const ss = time.getSeconds().toString().padStart(2, '0')
|
||||
const time = date ? new Date(date) : new Date();
|
||||
const yyyy = time.getFullYear();
|
||||
const MM = (time.getMonth() + 1).toString().padStart(2, 0);
|
||||
const dd = time.getDate().toString().padStart(2, "0");
|
||||
const hh = time.getHours().toString().padStart(2, "0");
|
||||
const mm = time.getMinutes().toString().padStart(2, "0");
|
||||
const ss = time.getSeconds().toString().padStart(2, "0");
|
||||
|
||||
if (type == 'ymd') {
|
||||
if (type == "ymd") {
|
||||
return `${yyyy}-${MM}-${dd}`;
|
||||
}
|
||||
if (type == 'md') {
|
||||
return `${MM}.${dd}`
|
||||
if (type == "md") {
|
||||
return `${MM}.${dd}`;
|
||||
}
|
||||
if (type == 'td') {
|
||||
return `${yyyy}年${MM}月${dd}日`
|
||||
if (type == "td") {
|
||||
return `${yyyy}年${MM}月${dd}日`;
|
||||
}
|
||||
if (type == 'ny') {
|
||||
return `${yyyy}年${MM}月`
|
||||
if (type == "ny") {
|
||||
return `${yyyy}年${MM}月`;
|
||||
}
|
||||
if (type == 'yd') {
|
||||
return `${yyyy}`
|
||||
if (type == "yd") {
|
||||
return `${yyyy}`;
|
||||
}
|
||||
if (type == 'ym') {
|
||||
return MM
|
||||
if (type == "ym") {
|
||||
return MM;
|
||||
}
|
||||
if (type == 'rm') {
|
||||
return dd
|
||||
if (type == "rm") {
|
||||
return dd;
|
||||
}
|
||||
if (type == 'mm') {
|
||||
return `${yyyy}${MM}${dd}${hh}${mm}${ss}`
|
||||
if (type == "mm") {
|
||||
return `${yyyy}${MM}${dd}${hh}${mm}${ss}`;
|
||||
}
|
||||
if (type == 'ydm') {
|
||||
return `${yyyy}年${MM}月${dd}日${hh}时${mm}分${ss}秒`
|
||||
if (type == "ydm") {
|
||||
return `${yyyy}年${MM}月${dd}日${hh}时${mm}分${ss}秒`;
|
||||
}
|
||||
return `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`
|
||||
return `${yyyy}-${MM}-${dd} ${hh}:${mm}:${ss}`;
|
||||
}
|
||||
|
||||
|
||||
export function timeSlotChange(val) {
|
||||
let startTime, endTime;
|
||||
let now = new Date(); //当前日期
|
||||
@ -132,89 +147,93 @@ export function timeSlotChange(val) {
|
||||
let nowDay = now.getDate(); //当前日
|
||||
let nowMonth = now.getMonth(); //当前月
|
||||
let nowYear = now.getFullYear(); //当前年
|
||||
let jd = Math.ceil((nowMonth + 1) / 3)
|
||||
let jd = Math.ceil((nowMonth + 1) / 3);
|
||||
switch (val) {
|
||||
case '天':
|
||||
case '日':
|
||||
case "天":
|
||||
case "日":
|
||||
// 设置当天的开始时间(00:00:00)
|
||||
const startDate = new Date();
|
||||
startDate.setHours(0, 0, 0, 0);
|
||||
startTime = timeValidate(startDate, 'ymd');
|
||||
startTime = timeValidate(startDate, "ymd");
|
||||
|
||||
// 设置当天的结束时间(23:59:59)
|
||||
const endDate = new Date();
|
||||
endDate.setHours(23, 59, 59, 999);
|
||||
endTime = timeValidate(endDate, 'ymd');
|
||||
endTime = timeValidate(endDate, "ymd");
|
||||
console.log(startTime, endTime);
|
||||
|
||||
break;
|
||||
case "本周":
|
||||
case "周":
|
||||
startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek)
|
||||
endTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek)
|
||||
startTime = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
|
||||
endTime = new Date(nowYear, nowMonth, nowDay + 6 - nowDayOfWeek);
|
||||
|
||||
break;
|
||||
case "本月":
|
||||
case "月":
|
||||
startTime = new Date(nowYear, nowMonth, 1)
|
||||
endTime = new Date(nowYear, nowMonth + 1, 0)
|
||||
startTime = new Date(nowYear, nowMonth, 1);
|
||||
endTime = new Date(nowYear, nowMonth + 1, 0);
|
||||
console.log(startTime, endTime);
|
||||
break;
|
||||
case "本季度":
|
||||
case "季度":
|
||||
startTime = new Date(nowYear, (jd - 1) * 3, 1)
|
||||
endTime = new Date(nowYear, jd * 3, 0)
|
||||
break
|
||||
startTime = new Date(nowYear, (jd - 1) * 3, 1);
|
||||
endTime = new Date(nowYear, jd * 3, 0);
|
||||
break;
|
||||
case "本年":
|
||||
case "年":
|
||||
startTime = new Date(nowYear, 0, 1)
|
||||
endTime = new Date(nowYear, 11, 31)
|
||||
break
|
||||
startTime = new Date(nowYear, 0, 1);
|
||||
endTime = new Date(nowYear, 11, 31);
|
||||
break;
|
||||
}
|
||||
return [timeValidate(startTime, 'ymd'), timeValidate(endTime, 'ymd')]
|
||||
return [timeValidate(startTime, "ymd"), timeValidate(endTime, "ymd")];
|
||||
}
|
||||
|
||||
|
||||
// 获取当前近多少天 7后7天 -7 前五天
|
||||
export function getRecentDay(n) {
|
||||
var currentDate = new Date();
|
||||
var preDate = new Date(currentDate.getTime() + n * 24 * 3600 * 1000)
|
||||
let year = preDate.getFullYear()
|
||||
let mon = preDate.getMonth() + 1
|
||||
let day = preDate.getDate()
|
||||
let s = year + '-' + (mon < 10 ? ('0' + mon) : mon) + '-' + (day < 10 ? ('0' + day) : day)
|
||||
return s
|
||||
var preDate = new Date(currentDate.getTime() + n * 24 * 3600 * 1000);
|
||||
let year = preDate.getFullYear();
|
||||
let mon = preDate.getMonth() + 1;
|
||||
let day = preDate.getDate();
|
||||
let s =
|
||||
year +
|
||||
"-" +
|
||||
(mon < 10 ? "0" + mon : mon) +
|
||||
"-" +
|
||||
(day < 10 ? "0" + day : day);
|
||||
return s;
|
||||
}
|
||||
|
||||
// 获取n近7月 7后7 -7 前
|
||||
export function getnRencebtMonth(n) {
|
||||
let date = new Date();
|
||||
date.setMonth(date.getMonth() - n)
|
||||
date.toLocaleDateString()
|
||||
let y = date.getFullYear()
|
||||
let m = date.getMonth() + 1
|
||||
m = m < 10 ? ('0' + m) : m + ''
|
||||
return y + m
|
||||
date.setMonth(date.getMonth() - n);
|
||||
date.toLocaleDateString();
|
||||
let y = date.getFullYear();
|
||||
let m = date.getMonth() + 1;
|
||||
m = m < 10 ? "0" + m : m + "";
|
||||
return y + m;
|
||||
}
|
||||
/**
|
||||
* 数据去重 相同数据值累加
|
||||
* @param {Object} array 数据
|
||||
*/
|
||||
export function setArray(array) {
|
||||
let newArr = []
|
||||
array.forEach(item => {
|
||||
const res = newArr.findIndex(ol => {
|
||||
let newArr = [];
|
||||
array.forEach((item) => {
|
||||
const res = newArr.findIndex((ol) => {
|
||||
//组织机构代码相同 并且报警类别相同
|
||||
return item.ssbmdm == ol.ssbmdm && item.bjlb == ol.bjlb
|
||||
})
|
||||
return item.ssbmdm == ol.ssbmdm && item.bjlb == ol.bjlb;
|
||||
});
|
||||
if (res !== -1) {
|
||||
newArr[res].sl = newArr[res].sl + item.sl
|
||||
newArr[res].sl = newArr[res].sl + item.sl;
|
||||
} else {
|
||||
newArr.push(item)
|
||||
newArr.push(item);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
return newArr
|
||||
return newArr;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -222,44 +241,49 @@ export function setArray(array) {
|
||||
* @param {Object} array 数据
|
||||
*/
|
||||
export function hbArray(array, item1, item2, item3) {
|
||||
let newArr = []
|
||||
array.forEach(item => {
|
||||
const res = newArr.findIndex(ol => {
|
||||
let newArr = [];
|
||||
array.forEach((item) => {
|
||||
const res = newArr.findIndex((ol) => {
|
||||
//组织机构代码相同 并且报警类别相同
|
||||
return item.product == ol.product
|
||||
})
|
||||
return item.product == ol.product;
|
||||
});
|
||||
if (res !== -1) {
|
||||
newArr[res][item1] = newArr[res][item1] + item[item1]
|
||||
newArr[res][item2] = newArr[res][item2] + item[item2]
|
||||
newArr[res][item3] = newArr[res][item3] + item[item3]
|
||||
newArr[res][item1] = newArr[res][item1] + item[item1];
|
||||
newArr[res][item2] = newArr[res][item2] + item[item2];
|
||||
newArr[res][item3] = newArr[res][item3] + item[item3];
|
||||
} else {
|
||||
newArr.push(item)
|
||||
newArr.push(item);
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
return newArr
|
||||
return newArr;
|
||||
}
|
||||
//时间格式
|
||||
export function dateFormat(type, time) {
|
||||
let date
|
||||
let date;
|
||||
if (time) {
|
||||
date = new Date(time);
|
||||
} else {
|
||||
date = new Date();
|
||||
}
|
||||
let year = date.getFullYear();
|
||||
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
||||
let month =
|
||||
date.getMonth() + 1 < 10
|
||||
? "0" + (date.getMonth() + 1)
|
||||
: date.getMonth() + 1;
|
||||
let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours();
|
||||
let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
||||
let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
||||
let day
|
||||
let minutes =
|
||||
date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
|
||||
let seconds =
|
||||
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
|
||||
let day;
|
||||
|
||||
if (type == 'z') {
|
||||
if (type == "z") {
|
||||
//前一天日期
|
||||
day = date.getDate() - 1;
|
||||
day = day < 10 ? "0" + day : day;
|
||||
return `${year}-${month}-${day}`;
|
||||
} else if (type == 'all') {
|
||||
} else if (type == "all") {
|
||||
//格式化日期时间
|
||||
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
@ -269,42 +293,78 @@ export function dateFormat(type, time) {
|
||||
day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
return `${year}-${month}-${day}`;
|
||||
}
|
||||
return day
|
||||
return day;
|
||||
}
|
||||
|
||||
//数字超长处理
|
||||
export function handleNum(num) {
|
||||
var data = 0
|
||||
var data = 0;
|
||||
if (num) {
|
||||
try {
|
||||
if (num * 1 > 100000) {
|
||||
data = (num / 10000).toFixed(0) + '万'
|
||||
data = (num / 10000).toFixed(0) + "万";
|
||||
} else {
|
||||
data = (num * 1).toFixed(0)
|
||||
data = (num * 1).toFixed(0);
|
||||
}
|
||||
} catch (error) {
|
||||
data = 0
|
||||
data = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return data
|
||||
return data;
|
||||
}
|
||||
/**
|
||||
* 文件是否是图片
|
||||
* @param {*} val
|
||||
*/
|
||||
export function IS_PNG(val) {
|
||||
return ['bmp', 'jpg', 'png', 'tif', 'gif', 'pcx', 'tga', 'exif', 'fpx', 'svg', 'psd', 'cdr', 'pcd', 'dxf', 'ufo',
|
||||
'eps', 'ai', 'raw', 'wmf', 'webp', 'avif', 'apng'
|
||||
].indexOf(val.toLowerCase()) !== -1
|
||||
return (
|
||||
[
|
||||
"bmp",
|
||||
"jpg",
|
||||
"png",
|
||||
"tif",
|
||||
"gif",
|
||||
"pcx",
|
||||
"tga",
|
||||
"exif",
|
||||
"fpx",
|
||||
"svg",
|
||||
"psd",
|
||||
"cdr",
|
||||
"pcd",
|
||||
"dxf",
|
||||
"ufo",
|
||||
"eps",
|
||||
"ai",
|
||||
"raw",
|
||||
"wmf",
|
||||
"webp",
|
||||
"avif",
|
||||
"apng"
|
||||
].indexOf(val.toLowerCase()) !== -1
|
||||
);
|
||||
}
|
||||
/**
|
||||
* 文件是否是音频
|
||||
* @param {*} val
|
||||
*/
|
||||
export function IS_MP3(val) {
|
||||
return ['mp3', 'wav', 'wma', 'mp2', 'flac', 'midi', 'ra', 'ape', 'aac', 'cda', 'mov'].indexOf(val.toLowerCase()) !==
|
||||
-1
|
||||
return (
|
||||
[
|
||||
"mp3",
|
||||
"wav",
|
||||
"wma",
|
||||
"mp2",
|
||||
"flac",
|
||||
"midi",
|
||||
"ra",
|
||||
"ape",
|
||||
"aac",
|
||||
"cda",
|
||||
"mov"
|
||||
].indexOf(val.toLowerCase()) !== -1
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -312,26 +372,39 @@ export function IS_MP3(val) {
|
||||
* @param {*} val
|
||||
*/
|
||||
export function IS_MP4(val) {
|
||||
return ['avi', 'wmv', 'mpeg', 'mp4', 'm4v', 'mov', 'asf', 'fiv', 'f4v', 'mvb', 'rm', '3gp', 'vob'].indexOf(val
|
||||
.toLowerCase()) !== -1
|
||||
return (
|
||||
[
|
||||
"avi",
|
||||
"wmv",
|
||||
"mpeg",
|
||||
"mp4",
|
||||
"m4v",
|
||||
"mov",
|
||||
"asf",
|
||||
"fiv",
|
||||
"f4v",
|
||||
"mvb",
|
||||
"rm",
|
||||
"3gp",
|
||||
"vob"
|
||||
].indexOf(val.toLowerCase()) !== -1
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
function handelArr(arr) {
|
||||
let brr = []
|
||||
let brr = [];
|
||||
if (arr && arr.length > 0) {
|
||||
let obj = {}
|
||||
let obj = {};
|
||||
let coords = "";
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
coords += arr[i] + ","
|
||||
coords += arr[i] + ",";
|
||||
}
|
||||
obj.coords = coords
|
||||
brr.push(obj)
|
||||
obj.coords = coords;
|
||||
brr.push(obj);
|
||||
}
|
||||
return brr
|
||||
return brr;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 时间 天数
|
||||
* @param {*} val
|
||||
@ -341,29 +414,31 @@ export function setEchartTime(val) {
|
||||
let arrTime = [];
|
||||
if (val == 0) {
|
||||
for (let i = 0; i < 24; i++) {
|
||||
arrTime.push(i)
|
||||
arrTime.push(i);
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i < val; i++) {
|
||||
let date1 = new Date(date.getTime() - i * 24 * 60 * 60 * 1000)
|
||||
arrTime.push(_setTime(date1))
|
||||
let date1 = new Date(date.getTime() - i * 24 * 60 * 60 * 1000);
|
||||
arrTime.push(_setTime(date1));
|
||||
}
|
||||
arrTime.reverse()
|
||||
arrTime.reverse();
|
||||
}
|
||||
return arrTime
|
||||
return arrTime;
|
||||
}
|
||||
//设置时间
|
||||
function _setTime(date) {
|
||||
let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1;
|
||||
let month =
|
||||
date.getMonth() + 1 < 10
|
||||
? "0" + (date.getMonth() + 1)
|
||||
: date.getMonth() + 1;
|
||||
let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate();
|
||||
return `${month}-${day}`;
|
||||
}
|
||||
|
||||
|
||||
//拼接地址
|
||||
export function setAddress(val) {
|
||||
const url = '/mosty-api/mosty-base/minio/image/download/'
|
||||
return url + val
|
||||
const url = "/mosty-api/mosty-base/minio/image/download/";
|
||||
return url + val;
|
||||
}
|
||||
export function getUUid() {
|
||||
var list = [];
|
||||
@ -379,27 +454,31 @@ export function getUUid() {
|
||||
}
|
||||
// 预警等级颜色
|
||||
export const bqYs = (val) => {
|
||||
if (val == '01') {
|
||||
return '#ff0202'
|
||||
} else if (val == '02') {
|
||||
return '#ff8c00'
|
||||
} else if (val == '03') {
|
||||
return '#ffd208ff'
|
||||
} else if (val == '04') {
|
||||
return '#0000ff'
|
||||
if (val == "01") {
|
||||
return "#ff0202";
|
||||
} else if (val == "02") {
|
||||
return "#ff8c00";
|
||||
} else if (val == "03") {
|
||||
return "#ffd208ff";
|
||||
} else if (val == "04") {
|
||||
return "#0000ff";
|
||||
}
|
||||
}
|
||||
};
|
||||
/** 全息档案跳转
|
||||
* @param {string} szhm 身证号
|
||||
*/
|
||||
export function holographicProfileJump(lx, val) {
|
||||
if (!val) return
|
||||
if (lx == 1 || !lx) {
|
||||
const sfzh = val.sfzh || val.rysfzh || val.yjRysfzh
|
||||
window.open(`https://tyyy.lz.dsj.xz/profile/people/person-manage?sfzhm=${sfzh}&from=portal`)
|
||||
if (!val) return;
|
||||
if (lx == 1 || !lx || lx == "01") {
|
||||
const sfzh = val.sfzh || val.rysfzh || val.yjRysfzh;
|
||||
window.open(
|
||||
`https://tyyy.lz.dsj.xz/profile/people/person-manage?sfzhm=${sfzh}&from=portal`
|
||||
);
|
||||
} else {
|
||||
const cph = val.cph || val.yjClcph
|
||||
window.open(`https://tyyy.lz.dsj.xz/profile/car/car-manage?cphm=${cph}&from=portal`)
|
||||
const cph = val.cph || val.yjClcph;
|
||||
window.open(
|
||||
`https://tyyy.lz.dsj.xz/profile/car/car-manage?cphm=${cph}&from=portal`
|
||||
);
|
||||
}
|
||||
}
|
||||
/**
|
||||
@ -416,6 +495,6 @@ export function getErrMsg(fields, msgObj) {
|
||||
if (!firstErrorField) return;
|
||||
/** 第一个错误字段的内容 @type{<Array>Object} - [message, field, fieldValue] */
|
||||
let firstErrorFieldObj = fields?.[firstErrorField];
|
||||
let errMsg = firstErrorFieldObj?.[0]?.message
|
||||
return errMsg
|
||||
let errMsg = firstErrorFieldObj?.[0]?.message;
|
||||
return errMsg;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user