From 8771da2ccf6f7c3fd2a8c89a1a0e230c6386db7f Mon Sep 17 00:00:00 2001
From: 石广澎 <shiguangpeng@163.com>
Date: 星期一, 17 十一月 2025 15:40:48 +0800
Subject: [PATCH] feat(api): 新增多个API接口并优化配置

---
 common/util.js | 1008 ++++++++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 896 insertions(+), 112 deletions(-)

diff --git a/common/util.js b/common/util.js
index 43a17d8..5b20f88 100644
--- a/common/util.js
+++ b/common/util.js
@@ -1,86 +1,683 @@
+import {
+	log
+} from 'mathjs';
+import JSEncrypt from './jsencrypt';
+import {
+	ACCESSTOKEN,
+	config
+} from '@/common/config.js'
+
+let publicKey =
+	'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCTREknOkrusbeH7kBe3mSw4AwVT438IWmX/jKmcvYxaAWRrBJiMl7gk37L78HBG/ZstLLcdKBYYdj/5cvVWDQfv+uxbv/piZhOmQej98jWIXEA8aFEk724nFRJ7nfcEhHSWfzbTfgZw0KDO1mWdjWHnHIx/MtD0HIFFIyzg3aO7wIDAQAB';
+
+//鏍¢獙閾惰鍗″彿
+export function verifyBankCard(str) {
+	//閾惰鍗″彿闀垮害鍦�16鍒�19涔嬮棿
+	if (str.length < 16 || str.length > 19) {
+		return false;
+	}
+	var num = /^\d*$/;
+	if (!num.exec(str)) {
+		//閾惰鍗″彿蹇呴』鍏ㄤ负鏁板瓧;
+		return false;
+	}
+	//寮�澶�6浣�
+	var strBin =
+		"10,18,30,35,37,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,58,60,62,65,68,69,84,87,88,94,95,98,99";
+	if (strBin.indexOf(str.substring(0, 2)) == -1) { //閾惰鍗″彿寮�澶�6浣嶄笉绗﹀悎瑙勮寖
+		return false;
+	}
+	var lastNum = str.substr(str.length - 1, 1); //鍙栧嚭鏈�鍚庝竴浣嶏紙涓巐uhm杩涜姣旇緝锛�
+	var first15Num = str.substr(0, str.length - 1); //鍓�15鎴�18浣�
+	var newArr = new Array();
+	for (var i = first15Num.length - 1; i > -1; i--) { //鍓�15鎴�18浣嶅�掑簭瀛樿繘鏁扮粍
+		newArr.push(first15Num.substr(i, 1));
+	}
+	var arrJiShu = new Array(); //濂囨暟浣�*2鐨勭Н <9
+	var arrJiShu2 = new Array(); //濂囨暟浣�*2鐨勭Н >9
+
+	var arrOuShu = new Array(); //鍋舵暟浣嶆暟缁�
+	for (var j = 0; j < newArr.length; j++) {
+		if ((j + 1) % 2 == 1) { //濂囨暟浣�
+			if (parseInt(newArr[j]) * 2 < 9)
+				arrJiShu.push(parseInt(newArr[j]) * 2);
+			else
+				arrJiShu2.push(parseInt(newArr[j]) * 2);
+		} else //鍋舵暟浣�
+			arrOuShu.push(newArr[j]);
+	}
+
+	var jishu_child1 = new Array(); //濂囨暟浣�*2 >9 鐨勫垎鍓蹭箣鍚庣殑鏁扮粍涓綅鏁�
+	var jishu_child2 = new Array(); //濂囨暟浣�*2 >9 鐨勫垎鍓蹭箣鍚庣殑鏁扮粍鍗佷綅鏁�
+	for (var h = 0; h < arrJiShu2.length; h++) {
+		jishu_child1.push(parseInt(arrJiShu2[h]) % 10);
+		jishu_child2.push(parseInt(arrJiShu2[h]) / 10);
+	}
+
+	var sumJiShu = 0; //濂囨暟浣�*2 < 9 鐨勬暟缁勪箣鍜�
+	var sumOuShu = 0; //鍋舵暟浣嶆暟缁勪箣鍜�
+	var sumJiShuChild1 = 0; //濂囨暟浣�*2 >9 鐨勫垎鍓蹭箣鍚庣殑鏁扮粍涓綅鏁颁箣鍜�
+	var sumJiShuChild2 = 0; //濂囨暟浣�*2 >9 鐨勫垎鍓蹭箣鍚庣殑鏁扮粍鍗佷綅鏁颁箣鍜�
+	var sumTotal = 0;
+	for (var m = 0; m < arrJiShu.length; m++) {
+		sumJiShu = sumJiShu + parseInt(arrJiShu[m]);
+	}
+
+	for (var n = 0; n < arrOuShu.length; n++) {
+		sumOuShu = sumOuShu + parseInt(arrOuShu[n]);
+	}
+
+	for (var p = 0; p < jishu_child1.length; p++) {
+		sumJiShuChild1 = sumJiShuChild1 + parseInt(jishu_child1[p]);
+		sumJiShuChild2 = sumJiShuChild2 + parseInt(jishu_child2[p]);
+	}
+	//璁$畻鎬诲拰
+	sumTotal = parseInt(sumJiShu) + parseInt(sumOuShu) + parseInt(sumJiShuChild1) + parseInt(sumJiShuChild2);
+
+	//璁$畻Luhm鍊�
+	var k = parseInt(sumTotal) % 10 == 0 ? 10 : parseInt(sumTotal) % 10;
+	var luhm = 10 - k;
+
+	if (lastNum == luhm) {
+		return true;
+	} else {
+		return false;
+	}
+}
+
+/**
+ * 鍔犲瘑
+ * @param {Object} pas
+ */
+export function RSAencrypt(pas) {
+	//瀹炰緥鍖杍sEncrypt瀵硅薄
+	let jse = new JSEncrypt();
+	//璁剧疆鍏挜
+	jse.setPublicKey(publicKey);
+	return jse.encrypt(pas);
+}
+
+/**
+ * 鎷兼帴ftp鍥剧墖璺緞
+ * @param {Object} item
+ * @param {Object} src
+ */
+export function getImgPath(item, src) {
+	if (isBlank(item)) {
+		return src
+	}
+	var ftp = config.sftpURL
+	if (typeof item === 'string') {
+		const arr = JSON.parse(item)
+		return ftp + arr[0].path
+	} else if (typeof item === 'object') {
+		return ftp + item.path
+	} else {
+		return ftp + item
+	}
+}
 
 /**
  * 鍒ゆ柇瀛楃涓茬┖
  * @param {Object} str
  */
 export function isBlank(str) {
-    if (str === undefined || str === null || str === '' || str === 'null' || str.length == 0) {
-        return true
-    } else {
-        return false
-    }
-}
-/**
- * 涓ゆ暟鐩镐箻 arg1 * arg2
- * @Date 2020/5/9 13:19
- **/
-export function accMul(arg1, arg2) {
-    let t = 0
-    arg1 = arg1 ? arg1.toString() : '0'
-    arg2 = arg2 ? arg2.toString() : '0'
-    if (arg1.includes('.')) {
-        t += arg1.split('.')[1].length
-    }
-    if (arg2.includes('.')) {
-        t += arg2.split('.')[1].length
-    }
-    const r1 = Number(arg1.replace('.', ''))
-    const r2 = Number(arg2.replace('.', ''))
-    return (r1 * r2) / Math.pow(10, t)
+	if (str === undefined || str === null || str === '' || str === 'null' || str.length == 0) {
+		return true
+	} else {
+		return false
+	}
 }
 
-/**
- * 涓ゆ暟鐩搁櫎 arg1 / arg2
- * @Date 2020/5/9 13:18
- **/
-export function accDiv(arg1, arg2) {
-    let t = 0
-    arg1 = arg1 ? arg1.toString() : '0'
-    arg2 = arg2 ? arg2.toString() : '0'
-    if (arg2.includes('.')) {
-        t = arg2.split('.')[1].length
-    }
-    if (arg1.includes('.')) {
-        t -= arg1.split('.')[1].length
-    }
-    const r1 = Number(arg1.replace('.', ''))
-    const r2 = Number(arg2.replace('.', ''))
-    return accMul((r1 / r2), Math.pow(10, t))
-}
 /**
  * 鍒ゆ柇闈炵┖
  * @param {Object} str
  */
 export function isNotBlank(str) {
-    return !isBlank(str)
+	return !isBlank(str)
+}
+
+/**
+ * 鍒ゆ柇token鏄惁瀛樺湪
+ */
+export function getToken() {
+	return uni.getStorageSync(ACCESSTOKEN);
+}
+
+/**
+ * 鍒ゆ柇token鏄惁瀛樺湪
+ */
+export function hasToken() {
+	return !isBlank(getToken());
+}
+
+/**
+ * 鑾峰彇鐢ㄦ埛淇℃伅
+ */
+export function getUserInfo() {
+	return JSON.parse(uni.getStorageSync('userInfo'))
+}
+
+/**
+ * 鍒ゆ柇涓や釜鏁扮粍鐨勫唴瀹规槸鍚︾浉鍚�
+ */
+export function arrEquals(arr1, arr2) {
+	// if the other arr2 is a falsy value, return
+	if (!arr2)
+		return false;
+
+	// compare lengths - can save a lot of time
+	if (arr1.length != arr2.length)
+		return false;
+
+	for (var i = 0, l = arr1.length; i < l; i++) {
+		// Check if we have nested arr2s
+		if (arr1[i] instanceof Array && arr2[i] instanceof Array) {
+			// recurse into the nested arr2s
+			if (!arr1[i].equals(arr2[i]))
+				return false;
+		} else if (arr1[i] != arr2[i]) {
+			// Warning - two different object instances will never be equal: {x:20} != {x:20}
+			return false;
+		}
+	}
+	return true;
+}
+
+/**
+ * 鑾峰彇褰撳墠鏃堕棿
+ */
+export function getDate(type) {
+	const date = new Date();
+	let year = date.getFullYear();
+	let month = date.getMonth() + 1;
+	let day = date.getDate();
+
+	if (type === 'start') {
+		year = year - 60;
+	} else if (type === 'end') {
+		year = year + 2;
+	}
+	month = month > 9 ? month : '0' + month;;
+	day = day > 9 ? day : '0' + day;
+	return `${year}-${month}-${day}`;
+}
+
+/**
+ * 鍒ゆ柇鏄惁涓烘暣鏁�,涓烘暣鏁板垯鎷兼帴'.0'
+ */
+export function rateMark(num) {
+	if (Number.isInteger(num)) {
+		return num + '.0'
+	} else {
+		return num
+	}
+}
+
+/**
+ * 绉掕浆鍒嗛挓
+ * @param {Object} value
+ */
+export function formatSeconds(value) {
+	var secondTime = parseInt(value); // 绉�
+	var minuteTime = 0; // 鍒�
+	var hourTime = 0; // 灏忔椂
+	if (secondTime > 60) { //濡傛灉绉掓暟澶т簬60锛屽皢绉掓暟杞崲鎴愭暣鏁�
+		//鑾峰彇鍒嗛挓锛岄櫎浠�60鍙栨暣鏁帮紝寰楀埌鏁存暟鍒嗛挓
+		minuteTime = parseInt(secondTime / 60);
+		//鑾峰彇绉掓暟锛岀鏁板彇浣橈紝寰楀埌鏁存暟绉掓暟
+		secondTime = parseInt(secondTime % 60);
+		//濡傛灉鍒嗛挓澶т簬60锛屽皢鍒嗛挓杞崲鎴愬皬鏃�
+		if (minuteTime > 60) {
+			//鑾峰彇灏忔椂锛岃幏鍙栧垎閽熼櫎浠�60锛屽緱鍒版暣鏁板皬鏃�
+			hourTime = parseInt(minuteTime / 60);
+			//鑾峰彇灏忔椂鍚庡彇浣樼殑鍒嗭紝鑾峰彇鍒嗛挓闄や互60鍙栦綐鐨勫垎
+			minuteTime = parseInt(minuteTime % 60);
+		}
+	}
+	var result = "" + parseInt(secondTime) + "绉�";
+
+	if (minuteTime > 0) {
+		result = "" + parseInt(minuteTime) + "鍒�" + result;
+	}
+	if (hourTime > 0) {
+		result = "" + parseInt(hourTime) + "灏忔椂" + result;
+	}
+	return result;
+}
+
+/**
+ * 鏃ユ湡鏍煎紡鍖�
+ * @param {Object} date
+ * @param {Object} fmt
+ */
+export function dateFormat(date, fmt) {
+	if (!date) {
+		return
+	}
+	if (!fmt) {
+		fmt = 'yyyy-MM-dd hh:mm'
+	}
+	if (!(date instanceof Date)) {
+		date = new Date(date.replace(/-/g, '/'))
+	}
+
+	if (/(y+)/.test(fmt)) {
+		fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
+	}
+
+	let o = {
+		'M+': date.getMonth() + 1,
+		'd+': date.getDate(),
+		'h+': date.getHours(),
+		'm+': date.getMinutes(),
+		's+': date.getSeconds()
+	};
+
+	for (let k in o) {
+		if (new RegExp(`(${k})`).test(fmt)) {
+			let str = o[k] + '';
+			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : ('00' + str).substr(str.length));
+		}
+	}
+	return fmt;
+}
+
+
+/**
+ * 浼犲叆鏃堕棿鏍煎紡鐨勬椂闂达紝浠ュ綋鍓嶆椂闂翠负鏍囧噯锛岃繑鍥炶窛绂诲綋鍓嶆椂闂翠箣鍓�
+ */
+export function timeago(date) { //dateTimeStamp鏄竴涓椂闂存绉掞紝娉ㄦ剰鏃堕棿鎴虫槸绉掔殑褰㈠紡锛屽湪杩欎釜姣鐨勫熀纭�涓婇櫎浠�1000锛屽氨鏄崄浣嶆暟鐨勬椂闂存埑銆�13浣嶆暟鐨勯兘鏄椂闂存绉掋��
+	if (!date) {
+		return
+	}
+	if (!(date instanceof Date)) {
+		date = new Date(date.replace(/-/g, '/'))
+	}
+
+	var dateTimeStamp = date.getTime()
+
+	var minute = 1000 * 60; //鎶婂垎锛屾椂锛屽ぉ锛屽懆锛屽崐涓湀锛屼竴涓湀鐢ㄦ绉掕〃绀�
+	var hour = minute * 60;
+	var day = hour * 24;
+	var week = day * 7;
+	var halfamonth = day * 15;
+	var month = day * 30;
+	var now = new Date().getTime(); //鑾峰彇褰撳墠鏃堕棿姣
+	var diffValue = now - dateTimeStamp; //鏃堕棿宸�
+
+	if (diffValue < 0) {
+		return;
+	}
+	var minC = diffValue / minute; //璁$畻鏃堕棿宸殑鍒嗭紝鏃讹紝澶╋紝鍛紝鏈�
+	var hourC = diffValue / hour;
+	var dayC = diffValue / day;
+	var weekC = diffValue / week;
+	var monthC = diffValue / month;
+	var result = '';
+	if (monthC >= 1 && monthC <= 3) {
+		result = " " + parseInt(monthC) + "鏈堝墠"
+	} else if (weekC >= 1 && weekC <= 3) {
+		result = " " + parseInt(weekC) + "鍛ㄥ墠"
+	} else if (dayC >= 1 && dayC <= 6) {
+		result = " " + parseInt(dayC) + "澶╁墠"
+	} else if (hourC >= 1 && hourC <= 23) {
+		result = " " + parseInt(hourC) + "灏忔椂鍓�"
+	} else if (minC >= 1 && minC <= 59) {
+		result = " " + parseInt(minC) + "鍒嗛挓鍓�"
+	} else if (diffValue >= 0 && diffValue <= minute) {
+		result = "鍒氬垰"
+	} else {
+		var datetime = new Date();
+		datetime.setTime(dateTimeStamp);
+		var Nyear = datetime.getFullYear();
+		var Nmonth = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
+		var Ndate = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
+		var Nhour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
+		var Nminute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
+		var Nsecond = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
+		result = Nyear + "-" + Nmonth + "-" + Ndate
+	}
+	return result;
+}
+
+/**
+ * 鏁扮粍鎴彇
+ * @param {Object} data
+ * @param {Object} index
+ * @param {Object} num
+ */
+export function subArray(data, index, num) {
+	return data.slice(index * num, (index * num) + num)
+}
+
+// 鏍规嵁绱㈠紩鏇挎崲瀛楃涓蹭腑鐨勫厓绱狅紝甯哥敤璇瓧绗︿覆鍔犲瘑
+export function stringReplace(content, start, num, str) {
+	var content = content.split("");
+	content.splice(start, num, str)
+	return content.join("");
+}
+
+export function getByteLength(str) {
+	//鍏堟妸涓枃鏇挎崲鎴愪袱涓瓧鑺傜殑鑻辨枃锛屽湪璁$畻闀垮害
+	var aa = str.replace(/[\u0391-\uFFE5]/g, "@@")
+	return aa.length;
+}
+
+export function getDiffDay(date_1, date_2) {
+	// 璁$畻涓や釜鏃ユ湡涔嬮棿鐨勫樊鍊�
+	let totalDays, diffDate
+	let myDate_1 = new Date(date_1.replace(/-/g, '/'))
+	let myDate_2 = new Date(date_2.replace(/-/g, '/'))
+	// 灏嗕袱涓棩鏈熼兘杞崲涓烘绉掓牸寮忥紝鐒跺悗鍋氬樊
+	diffDate = Math.abs(myDate_1 - myDate_2) // 鍙栫浉宸绉掓暟鐨勭粷瀵瑰��
+
+	totalDays = Math.floor(diffDate / (1000 * 3600 * 24)) // 鍚戜笅鍙栨暣
+	// console.log(totalDays)
+
+	return totalDays // 鐩稿樊鐨勫ぉ鏁�
+}
+
+/**
+ * 鑾峰彇涓や釜鏃ユ湡鐩稿樊鐨勬湀鏃ユ椂鍒�
+ * @param {Object} start
+ * @param {Object} end
+ * @param {Object} cha
+ * @param {Object} flag
+ */
+export function timeFn(start, end, cha, flag) {
+	if (!!!cha) {
+		cha = 0
+	}
+	if (!(start instanceof Date)) {
+		start = new Date(start.replace(/-/g, '/'))
+	}
+	start.setSeconds(start.getSeconds() - 1)
+
+	if (!(end instanceof Date)) {
+		end = new Date(end.replace(/-/g, '/'))
+	}
+
+	var dateDiff = end.getTime() - start + cha; //鏃堕棿宸殑姣鏁�
+	if (dateDiff == 0) {
+		return null
+	}
+	var dayDiff = Math.floor(dateDiff / (24 * 3600 * 1000)); //璁$畻鍑虹浉宸ぉ鏁�
+	var leave1 = dateDiff % (24 * 3600 * 1000) //璁$畻澶╂暟鍚庡墿浣欑殑姣鏁�
+	var hours = Math.floor(leave1 / (3600 * 1000)) //璁$畻鍑哄皬鏃舵暟
+	//璁$畻鐩稿樊鍒嗛挓鏁�
+	var leave2 = leave1 % (3600 * 1000) //璁$畻灏忔椂鏁板悗鍓╀綑鐨勬绉掓暟
+	var minutes = Math.floor(leave2 / (60 * 1000)) //璁$畻鐩稿樊鍒嗛挓鏁�
+	//璁$畻鐩稿樊绉掓暟
+	var leave3 = leave2 % (60 * 1000) //璁$畻鍒嗛挓鏁板悗鍓╀綑鐨勬绉掓暟
+	var seconds = Math.round(leave3 / 1000)
+
+	var leave4 = leave3 % (60 * 1000) //璁$畻鍒嗛挓鏁板悗鍓╀綑鐨勬绉掓暟
+	var minseconds = Math.round(leave4 / 1000)
+	if (seconds * 1 < 10) {
+		seconds = '0' + seconds
+	}
+	if (minutes * 1 < 10) {
+		minutes = '0' + minutes
+	}
+	if (hours * 1 < 10) {
+		hours = '0' + hours
+	}
+	if (flag) {
+		var timeFn = (dayDiff ? dayDiff + "澶�" : '') + hours + "鏃�" + minutes + "鍒�" + seconds + "绉�";
+		return timeFn;
+	}
+	var timeFn = (dayDiff ? dayDiff + "澶�" : '') + hours + ":" + minutes + ":" + seconds;
+	return timeFn;
+}
+
+
+/**
+ * 绠�鍗曠殑uuid
+ */
+export function guid() {
+	return 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+		var r = Math.random() * 16 | 0,
+			v = c == 'x' ? r : (r & 0x3 | 0x8);
+		return v.toString(16);
+	});
+}
+
+/**
+ * 鑾峰彇long鍨嬫暟鎹�
+ */
+export function glong() {
+	return 'xxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {
+		var r = Math.floor((Math.random() * 10)) | 0,
+			v = c == 'x' ? r : (r & 0x3);
+		return v.toString();
+	});
+}
+
+/**
+ * 椤甸潰璺宠浆
+ * @param {Object} url
+ * @param {Object} param
+ */
+export function go(url, param) {
+	var pm = '';
+	if (param != undefined) {
+		if (typeof param === 'string') {
+			param = JSON.parse(param)
+		}
+		for (var p in param) {
+			//閬嶅巻json瀵硅薄鐨勬瘡涓猭ey/value瀵�,p涓簁ey
+			pm += '&' + p + '=' + param[p];
+		}
+	}
+	pm = pm.substr(1);
+	uni.navigateTo({
+		url: url + '?' + pm
+	});
+}
+
+/**
+ * 椤甸潰璺宠浆
+ * @param {Object} url
+ * @param {Object} param
+ */
+export function redirect(url, param) {
+	var pm = '';
+	if (param != undefined) {
+		if (typeof param === 'string') {
+			param = JSON.parse(param)
+		}
+		for (var p in param) {
+			//閬嶅巻json瀵硅薄鐨勬瘡涓猭ey/value瀵�,p涓簁ey
+			pm += '&' + p + '=' + param[p];
+		}
+	}
+	pm = pm.substr(1);
+	uni.redirectTo({
+		url: url + '?' + pm
+	});
+}
+
+/**
+ * 璺宠浆棣栭〉
+ */
+export function goIndex() {
+	uni.reLaunch({
+		url: '/pages/index/index'
+	});
+}
+
+/**
+ * 璺宠浆鐧诲綍椤�
+ */
+export function goLogin(callbackUrl) {
+	if (callbackUrl) {
+		uni.redirectTo({
+			url: `/pages/user/login/index?callbackUrl=/${callbackUrl}`
+		});
+	} else {
+		uni.redirectTo({
+			url: `/pages/user/login/index`
+		});
+	}
+
+}
+
+/**
+ * 杩斿洖
+ */
+export function goBack() {
+	uni.navigateBack()
+}
+
+/**
+ * 棰滆壊16杩涘埗杞琑GB鏂规硶
+ * @param {Object} c
+ */
+export function colorRgb(c) {
+	var sColor = c.toLowerCase();
+	//鍗佸叚杩涘埗棰滆壊鍊肩殑姝e垯琛ㄨ揪寮�
+	var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
+	// 濡傛灉鏄�16杩涘埗棰滆壊
+	if (sColor && reg.test(sColor)) {
+		if (sColor.length === 4) {
+			var sColorNew = "#";
+			for (var i = 1; i < 4; i += 1) {
+				sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));
+			}
+			sColor = sColorNew;
+		}
+		//澶勭悊鍏綅鐨勯鑹插��
+		var sColorChange = [];
+		for (var i = 1; i < 7; i += 2) {
+			sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));
+		}
+		return "(" + sColorChange.join(",") + ",.08)";
+	}
+	return sColor;
+};
+
+/**
+ * 楠岃瘉鎵嬫満鍙�
+ * @param {Object} mobile
+ */
+export function checkMobile(mobile) {
+	return /^1[3456789]\d{9}$/.test(mobile);
+}
+
+/**
+ * 楠岃瘉韬唤璇佸彿
+ * @param {Object} cardNo
+ */
+export function checkCardNo(cardNo) {
+	return /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/
+		.test(cardNo);
+}
+
+/**
+ * 楠岃瘉閭
+ * @param {Object} email
+ */
+export function checkEmail(email) {
+	return /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/.test(email);
+}
+
+/**
+ * 闃挎媺浼暟瀛楄浆涓枃鏁板瓧
+ * @param {Object} num
+ */
+export function NoToChinese(num) {
+	var AA = new Array("闆�", "涓�", "浜�", "涓�", "鍥�", "浜�", "鍏�", "涓�", "鍏�", "涔�");
+	var BB = new Array("", "鍗�", "鐧�", "鍗�", "涓�", "浜�", "鐐�", "");
+	var a = ("" + num).replace(/(^0*)/g, "").split("."),
+		k = 0,
+		re = "";
+	for (var i = a[0].length - 1; i >= 0; i--) {
+		switch (k) {
+			case 0:
+				re = BB[7] + re;
+				break;
+			case 4:
+				if (!new RegExp("0{4}\\d{" + (a[0].length - i - 1) + "}$").test(a[0]))
+					re = BB[4] + re;
+				break;
+			case 8:
+				re = BB[5] + re;
+				BB[7] = BB[5];
+				k = 0;
+				break;
+		}
+		if (k % 4 == 2 && a[0].charAt(i + 2) != 0 && a[0].charAt(i + 1) == 0) re = AA[0] + re;
+		if (a[0].charAt(i) != 0) re = AA[a[0].charAt(i)] + BB[k % 4] + re;
+		k++;
+	}
+	if (a.length > 1) //鍔犱笂灏忔暟閮ㄥ垎(濡傛灉鏈夊皬鏁伴儴鍒�)
+	{
+		re += BB[6];
+		for (var i = 0; i < a[1].length; i++) re += AA[a[1].charAt(i)];
+	}
+	return re;
+};
+
+/**
+ * 鍚堝苟瀵硅薄鐩稿悓灞炴��
+ * chenlong
+ * @param obj1 鐩爣瀵硅薄
+ * @param obj2 婧愬璞�
+ */
+export function mergeObj(obj1, obj2) {
+	const res = {}
+	Object.keys(obj2).map(key => {
+		if (key in obj1) {
+			res[key] = obj2[key]
+		}
+	})
+	return res
+}
+
+/**
+ * 鑾峰彇杩斿洖鍊�
+ * @param {Object} res
+ * @param {Object} fun
+ */
+export function getContent(res, fun) {
+	if (res.code === 10000) {
+		fun(res.data)
+	} else {
+		uni.showToast({
+			title: res.msg,
+			duration: 1500,
+			icon: 'none'
+		});
+	}
 }
 
 /* 姝f暣鏁� */
 export function isInteger(number) {
-    const reg = /^[1-9]\d*$/
-    if (reg.test(number)) {
-        return true
-    } else {
-        return false
-    }
+	const reg = /^[1-9]\d*$/
+	if (reg.test(number)) {
+		return true
+	} else {
+		return false
+	}
 }
 
 /* 鍒ゆ柇鏄惁涓虹┖ */
 export function isEmpty(item) {
-    if (item === undefined || item === null || item === '') {
-        return true
-    }
-    return false
+	if (item === undefined || item === null || item === '') {
+		return true
+	}
+	return false
 }
 
 /* 鏍¢獙浠锋牸锛屾渶澶氫袱浣嶅皬鏁扮偣 */
 export function isPrice(price) {
-    const reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
-    if (reg.test(price)) {
-        return true
-    } else {
-        return false
-    }
+	const reg = /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/
+	if (reg.test(price)) {
+		return true
+	} else {
+		return false
+	}
 }
 
 /**
@@ -89,10 +686,10 @@
  * @returns {number|*}
  */
 export function formatYuanToFen(val) {
-    if (isEmpty(val) || !isPrice(val)) {
-        return val
-    }
-    return parseFloat(val) * 100
+	if (isEmpty(val) || !isPrice(val)) {
+		return val
+	}
+	return parseFloat(val) * 100
 }
 
 /**
@@ -101,57 +698,244 @@
  * @returns {number|*}
  */
 export function formatFenToYuan(val) {
-    if (isEmpty(val) || !isInteger(val)) {
-        return val
-    }
-    return parseFloat(val) / 100
+	if (isEmpty(val) || !isInteger(val)) {
+		return val
+	}
+	return parseFloat(val) / 100
 }
-/* 鍏冭浆鍒� */
-export function yuanToFen(amount) {
-    let fen = 0
-    if (!amount) {
-        return fen;
-    }
-    fen = accMul(amount,100)
-    console.log(amount,fen);
-    return fen
+
+
+/**
+ * 鎻愮ず閿欒淇℃伅
+ */
+export function showErrorMsg(msg) {
+	uni.showToast({
+		title: msg,
+		icon: 'none'
+	});
+	return false;
 }
-/* 鍒嗚浆鍏� */
-export function fenToYuan(amount) {
-    if (!amount) {
-        return "0";
-    }
-    amount = amount.toString();
-    if (amount.length == 1) {
-        return parseFloat("0.0" + amount);
-    } else if (amount.length == 2) {
-        return parseFloat("0." + amount);
-    } else {
-        return parseFloat(amount.substring(0, amount.length - 2) + "." + amount.substring(amount.length - 2));
-    }
+
+/**
+ * 鎻愮ず鎴愬姛淇℃伅
+ */
+export function showSuccessMsg(msg) {
+	uni.showToast({
+		title: msg,
+		icon: 'none'
+	});
 }
-// 鍒ゆ柇寰俊銆佹敮浠樺疂  2寰俊 5鏀粯瀹� 3鍏朵粬
+
+
+/**
+ * 璁$畻鏃堕棿宸�
+ */
+export function timeDiff(startTime, endTime) {
+	// 璁$畻鐩稿樊鐨勬椂闂�
+	const timeDiff = endTime.getTime() - startTime.getTime();
+	if (timeDiff <= 0) return false;
+
+	const totalSeconds = Math.floor(timeDiff / 1000);
+	const hours = Math.floor(totalSeconds / 60 / 60);
+	const minutes = Math.floor((totalSeconds - hours * 60 * 60) / 60);
+	const seconds = Math.floor(totalSeconds - hours * 60 * 60 - minutes * 60);
+	const timeDiffArray = [hours, minutes, seconds].map(e => {
+		return e < 10 ? '0' + e : e;
+	});
+	return timeDiffArray;
+}
+
+/**
+ * 涓ゆ暟鐩稿姞 arg1 + arg2
+ * @param arg1
+ * @param arg2
+ * @returns {number}
+ */
+export function add(arg1, arg2) {
+	var t = 0
+	arg1 = arg1 ? arg1.toString() : '0'
+	arg2 = arg2 ? arg2.toString() : '0'
+	if (arg1.includes('.')) {
+		t = arg1.split('.')[1].length
+	}
+	if (arg2.includes('.')) {
+		t = Math.max(arg2.split('.')[1].length, t)
+	}
+	var m = Math.pow(10, t)
+	return Number(((this.mul(arg1, m) + this.mul(arg2, m)) / m))
+}
+
+/**
+ * 涓ゆ暟鐩稿噺 arg1 - arg2
+ * @param arg1
+ * @param arg2
+ * @returns {number}
+ */
+export function sub(arg1, arg2) {
+	var t = 0
+	arg1 = arg1 ? arg1.toString() : '0'
+	arg2 = arg2 ? arg2.toString() : '0'
+	if (arg1.includes('.')) {
+		t = arg1.split('.')[1].length
+	}
+	if (arg2.includes('.')) {
+		t = Math.max(arg2.split('.')[1].length, t)
+	}
+	var m = Math.pow(10, t)
+	return Number(((this.mul(arg1, m) - this.mul(arg2, m)) / m))
+}
+
+/**
+ * 涓ゆ暟鐩镐箻 arg1 * arg2
+ * @param arg1
+ * @param arg2
+ * @returns {number}
+ */
+export function mul(arg1, arg2) {
+	var t = 0
+	arg1 = arg1 ? arg1.toString() : '0'
+	arg2 = arg2 ? arg2.toString() : '0'
+	if (arg1.includes('.')) {
+		t += arg1.split('.')[1].length
+	}
+	if (arg2.includes('.')) {
+		t += arg2.split('.')[1].length
+	}
+	var r1 = Number(arg1.replace('.', ''))
+	var r2 = Number(arg2.replace('.', ''))
+	return (r1 * r2) / Math.pow(10, t)
+}
+
+/**
+ * 涓ゆ暟鐩搁櫎 arg1 / arg2
+ * @param arg1
+ * @param arg2
+ * @returns {number}
+ */
+export function abs(arg1, arg2) {
+	var t = 0
+	arg1 = arg1 ? arg1.toString() : '0'
+	arg2 = arg2 ? arg2.toString() : '0'
+	if (arg2.includes('.')) {
+		t = arg2.split('.')[1].length
+	}
+	if (arg1.includes('.')) {
+		t -= arg1.split('.')[1].length
+	}
+	var r1 = Number(arg1.replace('.', ''))
+	var r2 = Number(arg2.replace('.', ''))
+	return this.mul((r1 / r2), Math.pow(10, t))
+}
+
+/**
+ * arg1*100/(arg1+arg2)
+ * @param {Object} arg2
+ * @param {Object} arg1
+ */
+export function percentage(arg1, arg2) {
+	var add = this.add(arg1, arg2)
+	return this.mul(this.abs(arg1, add), 100)
+}
+
+/**
+ * 鏌ョ湅缃戠粶鐘舵��
+ * false 娌℃湁缃戠粶  true 鏈夌綉缁�
+ */
+export function getNetworkStatus() {
+	var result = ''
+	uni.getNetworkType({
+		success: (res) => {
+			if (res.networkType == 'none') {
+				// this.$u.toast("娌℃湁缃戠粶");
+				result = false
+			} else {
+				// this.$u.toast("鏈夌綉缁�");
+				result = true
+			}
+		}
+	})
+	return result
+}
+
+/**
+ * @param {Object} key 缂撳瓨鐨刱ey
+ * @param {Object} param 瑕佺紦瀛樼殑瀵硅薄
+ * 灏唒aram push鍒扮紦瀛樻暟缁勪腑
+ */
+export function setArrayStorageSync(key, param) {
+	const data = uni.getStorageSync(key) || []
+	data.push(param)
+	uni.setStorageSync(key, data)
+}
+
+// 鑾峰彇杞挱鍥惧垪琛�
+export function getBannerImg(val, state) {
+	let list = []
+	if (!isBlank(val) && state === '2') {
+		let arr = JSON.parse(val)
+		arr.map(x => {
+			list.push(config.sftpURL + x.path)
+		})
+	} else {
+		list = [config.imgUrl + 'no-book.png']
+	}
+	return list
+}
+
+// 鍟嗗搧鍥剧墖璺緞
+export function getGoodsImg(val, state) {
+	let headImg = ""
+	if (!isBlank(val) && state === '2') {
+		headImg = config.sftpURL + JSON.parse(val)[0].path
+	} else {
+		headImg = config.imgUrl + 'no-book.png'
+	}
+	return headImg
+}
+
+// 鍥剧墖璺緞
+export function GoodsImg(val) {
+	let headImg = ""
+	if (!isBlank(val)) {
+		headImg = config.sftpURL + val
+	} else {
+		headImg = config.imgUrl + 'no-book.png'
+	}
+	return headImg
+}
+
+// 淇濈暀涓変綅灏忔暟 鏈熬瓒呰繃鍚戜笂杩�1
+export function getDiscountPrice(price, discount) {
+	let newPrice = ""
+	let a = Number(price) * Number(discount) / 100
+	let b = a.toFixed(4)
+	let c = b[b.length - 1]
+	newPrice = c != 0 ? Number(b) + 0.01 : b.slice(0, -1)
+	return newPrice
+}
+
+// 鍒ゆ柇寰俊銆佹敮浠樺疂  2寰俊 5鏀粯瀹� 15浜戦棯浠� 3鍏朵粬
 export function getPlat() {
-    // #ifdef H5
-    var ua = window.navigator.userAgent.toLowerCase();
-    //鍒ゆ柇鏄笉鏄井淇�
-    if (ua.match(/MicroMessenger/i) == 'micromessenger') {
-        return 2;
-    }
-    //鍒ゆ柇鏄笉鏄敮浠樺疂
-    if (ua.match(/AlipayClient/i) == 'alipayclient') {
-        return 5;
-    }
-    //鍒ゆ柇鏄笉鏄簯闂粯
-    if (ua.indexOf('unionpay/1.0') !== -1) {
-        return 15;
-    }
-    // #endif
-    // #ifdef MP-WEIXIN
-    return 2;
-    // #endif
-    // #ifdef MP-ALIPAY
-    return 5;
-    // #endif
-    return 3;
-}
+	// #ifdef H5
+	var ua = window.navigator.userAgent.toLowerCase();
+	//鍒ゆ柇鏄笉鏄井淇�
+	if (ua.match(/MicroMessenger/i) == 'micromessenger') {
+		return 2;
+	}
+	//鍒ゆ柇鏄笉鏄敮浠樺疂
+	if (ua.match(/AlipayClient/i) == 'alipayclient') {
+		return 5;
+	}
+	//鍒ゆ柇鏄笉鏄簯闂粯
+	if (ua.indexOf('unionpay/1.0') !== -1) {
+		return 15;
+	}
+	// #endif
+	// #ifdef MP-WEIXIN
+	return 2;
+	// #endif
+	// #ifdef MP-ALIPAY
+	return 5;
+	// #endif
+	return 3;
+}
\ No newline at end of file

--
Gitblit v1.9.1