From 9383bf5b9321361331c842352c871cb2693df693 Mon Sep 17 00:00:00 2001
From: PC-20250623MANY\Administrator <344137771@qq.com>
Date: Sun, 10 Aug 2025 16:25:09 +0800
Subject: [PATCH] 1

---
 src/utils/utils.js |  196 ++++++++++++++++++++++++++++++------------------
 1 files changed, 123 insertions(+), 73 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index efd89ea..5a703c3 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -1,100 +1,150 @@
+const moment = require("moment-timezone");
+
+// 设置时区为印度标准时间
+moment.tz.setDefault("Asia/Kolkata");
 // 单位用千位分隔符显示
-export function thousandBitSeparator (str) {
-  var num = parseFloat(str).toFixed(3) // 这里因为我需要两位小数所以做一个限制,你们看情况做小数位的限制
-  var s = num.substring(0, (num.length - 1)) // 只取小数位2位
-  return s && s.toString().replace(/(\d)(?=(\d{3})+\.)/g, function ($0, $1) {
-    return $1 + ','
-  })
+export function thousandBitSeparator(str) {
+  var num = parseFloat(str).toFixed(3); // 这里因为我需要两位小数所以做一个限制,你们看情况做小数位的限制
+  var s = num.substring(0, num.length - 1); // 只取小数位2位
+  return (
+    s &&
+    s.toString().replace(/(\d)(?=(\d{3})+\.)/g, function($0, $1) {
+      return $1 + ",";
+    })
+  );
 }
 
 // 判断是不是空 是--true
-export function isNull (str) {
-  if (str === '' || str === null) {
-    return true
+export function isNull(str) {
+  if (str === "" || str === null) {
+    return true;
   } else {
-    return false
+    return false;
   }
 }
-
+export function debounce(fn, delay) {
+  // 时间期限
+  var delay = delay || 200;
+  var timer;
+  // 闭包
+  return function() {
+    // 考虑作用域,上下文环境,apply需要用到this对象
+    var th = this;
+    // 接收的参数用 ES6 中的 rest 参数统一存储到变量 args 中。arguments就是传入的参数数组,而且个数可以不确定的传回给fn(不确定函数到底有多少个参数,用arguments来接收)
+    var args = arguments;
+    // 判断还在定时,说明当前正在一个计时过程中,并且又触发了相同事件。所以要取消当前的计时,重新开始计时
+    if (timer) {
+      clearTimeout(timer);
+    }
+    timer = setTimeout(function() {
+      timer = null;
+      // 执行方法
+      fn.apply(th, args);
+    }, delay);
+  };
+}
 // 判断是不是邮箱 是--true
-export function isEmail (str) {
-  let myreg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/
-  return myreg.test(str)
+export function isEmail(str) {
+  let myreg = /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/;
+  return myreg.test(str);
 }
 
-// 只能中英文
-export function isName (str) {
-  let myreg = /^[\u4E00-\u9FA5A-Za-z]+$/
-  return myreg.test(str)
+// 只能中文
+export function isName(str) {
+  let myreg = /^[\u4E00-\u9FA5]+$/;
+  return myreg.test(str);
 }
 
 // 手机号码
-export function isPhone (mobile) {
+export function isPhone(mobile) {
   // let myreg = /^[1][3,4,5,7,8][0-9]{9}$/  //手机号码验证
-  let myreg = /^[0-9]{11}$/ // 手机号码验证
-  return myreg.test(mobile)
+  let myreg = /^[0-9]{11}$/; // 手机号码验证
+  return myreg.test(mobile);
+}
+
+// 密码 校验
+export function pwdReg(psd) {
+  let value = psd.replace(/\s*/g, "");
+  let myreg = /^[a-zA-Z0-9!@#$%^&*.]{6,12}$/; // 手机号码验证
+  return myreg.test(value);
+}
+
+// 身份证校验
+export function idCardReg(idcard) {
+  var myreg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
+  return myreg.test(idcard);
+}
+
+// 银行卡校验
+export function bankNoReg(val) {
+  var myreg = /^([1-9]{1})(\d{14,18})$/;
+  return myreg.test(val);
 }
 
 // 数字隐藏显示 *
-export function hideNumberTo (str) {
-  let number = str.toFixed(2)
-  let arr = number.split('.')
-  console.log(arr)
-  let string = ''
+export function hideNumberTo(str) {
+  let number = str.toFixed(2);
+  let arr = number.split(".");
+  let string = "";
   for (var i = 0; i < arr[0].length; i++) {
-    string += '*'
+    string += "*";
   }
-  return string + '.**'
+  return string + ".**";
 }
 
 // 时间戳转换为时间格式
-export function timeFormat (val) {
-  let fmt = 'yyyy-MM-dd hh:mm:ss'
-  // let date = new Date(time)
-  if (!val) {
-    return
+export function timeFormat(date) {
+  return moment(date).format("DD-MM-YYYY hh:mm:ss A");
+}
+
+function padLeftZero(str) {
+  return ("00" + str).substr(str.length);
+}
+
+// cookie 操作
+export function setCookie(name, value, day) {
+  if (day !== 0) {
+    // 当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除
+    var curDate = new Date();
+    var curTamp = curDate.getTime();
+    var curWeeHours = new Date(curDate.toLocaleDateString()).getTime() - 1;
+    var passedTamp = curTamp - curWeeHours;
+    var leftTamp = 24 * 60 * 60 * 1000 - passedTamp;
+    var leftTime = new Date();
+    leftTime.setTime(leftTamp + curTamp);
+    document.cookie =
+      name + "=" + escape(value) + ";expires=" + leftTime.toGMTString();
+  } else {
+    document.cookie = name + "=" + escape(value);
   }
-  let date = new Date(val)
-  if (/(y+)/.test(fmt)) {
-    fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
+}
+
+// get
+export function getCookie(name) {
+  var arr;
+  var reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
+  arr = document.cookie.match(reg);
+  if (arr) {
+    return unescape(arr[2]);
+  } else {
+    return null;
   }
-  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 : padLeftZero(str))
+  // document.cookie = name + "=" + escape(value);
+}
+
+export function clearCookie() {
+  this.setCookie("USER_TOKEN", "", -1);
+}
+
+//
+export function checkCookie() {
+  var user = this.getCookie("USER_TOKEN");
+  if (user !== "") {
+    alert("Welcome again " + user);
+  } else {
+    user = prompt("Please enter your name:", "");
+    if (user !== "" && user != null) {
+      this.setCookie("USER_TOKEN", user, 365);
     }
   }
-  return fmt
 }
-
-function padLeftZero (str) {
-  return ('00' + str).substr(str.length)
-}
-
-
-export function formatDate(date, fmt) {
-  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 : padLeftZero(str));
-      }
-  }
-  return fmt;
-};
\ No newline at end of file

--
Gitblit v1.9.3