You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

772 lines
23 KiB

// 请求时接口的公用部分
// #ifdef APP-PLUS || MP
// const baseUrl = "http://116.62.210.143:9002";
const baseUrl = "http://118.89.79.160:8800/HiatmpPro";
// #endif
// #ifdef H5
const baseUrl = "/HiatmpPro";
// #endif
// 图片路径的公用部分
const imgSrc = "/static";
// 图片上传地址
const imgUrl = "/hyjg-admin/mapi/upload/upload";
const imgUserIdUrl = "/hyjg-admin/mapi/upload/uploadAndIdentify";
// 上传图片的name值
const fileImgKey = "file";
// 上传视频的name值
const fileVideoKey = "img";
// 上传视频的大小限制(单位:千字节)
const videoSize = 10240000; // 10M
module.exports = {
// --------------------变量--------------------
// 图片路径的公用部分
imgSrc,
// 图片上传地址
imgUrl,
imgUserIdUrl,
// 上传图片的name值
fileImgKey,
// 视频大小
videoSize,
// 视频name值
fileVideoKey,
baseUrl,
// ----------------------校验----------------------
// 处理时间两位数
timeDealTwo(value){
let val = Number(value)
return val < 10 ? '0' + val : val
},
// 判断两个对象是否相同
isObjEqual (o1, o2) {
var props1 = Object.getOwnPropertyNames(o1)
var props2 = Object.getOwnPropertyNames(o2)
if (props1.indexOf('__ob__') !== -1) {
props1.splice(props1.indexOf('__ob__'), 1)
}
if (props2.indexOf('__ob__') !== -1) {
props2.splice(props2.indexOf('__ob__'), 1)
}
var a = true
var b = true
if (props1.length !== props2.length) {
a = false
} else {
for (var i = 0, max = props1.length; i < max; i++) {
var propName = props1[i]
if (o1[propName] !== o2[propName]) {
b = false
break
}
}
}
return a && b
},
checkHasKey(key,str){
if(str.indexOf(key) != -1){
return true
}
return false
},
// 非空验证(包含数字)
isEmpty(value,isnumber = false){
if(isnumber){
if(value <= 0){
return false
}
}
if(value == '' || value == null || typeof(value) == 'undefined'){
return false
}
return true
},
// 手机号验证
isPhone(phone) {
// 是否正确(默认不正确)
let br = false;
if (/^0?(13[0-9]|14[5-9]|15[012356789]|166|17[0-9]|18[0-9]|19[8-9])[0-9]{8}$/.test(phone)) {
br = true;
}
return br;
},
// 邮箱验证
isEmail(email) {
// 是否正确(默认不正确)
let br = false;
if (/^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(email)) {
br = true;
}
return br;
},
// 身份证验证
isPersonID(code) {
//身份证号合法性验证
//支持15位和18位身份证号
//支持地址编码、出生日期、校验位验证
var city = {
11: "北京",
12: "天津",
13: "河北",
14: "山西",
15: "内蒙古",
21: "辽宁",
22: "吉林",
23: "黑龙江 ",
31: "上海",
32: "江苏",
33: "浙江",
34: "安徽",
35: "福建",
36: "江西",
37: "山东",
41: "河南",
42: "湖北 ",
43: "湖南",
44: "广东",
45: "广西",
46: "海南",
50: "重庆",
51: "四川",
52: "贵州",
53: "云南",
54: "西藏 ",
61: "陕西",
62: "甘肃",
63: "青海",
64: "宁夏",
65: "新疆",
71: "台湾",
81: "香港",
82: "澳门",
91: "国外 "
};
var br = true;
var msg = "验证成功";
if (!code || !/^\d{6}(18|19|20)?\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}(\d|[xX])$/.test(code)) {
br = false;
msg = "被保人身份证号格式错误";
} else if (!city[code.substr(0, 2)]) {
br = false;
msg = "被保人身份证号地址编码错误";
} else {
//18位身份证需要验证最后一位校验位
if (code.length == 18) {
code = code.split('');
//∑(ai×Wi)(mod 11)
//加权因子
var factor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];
//校验位
var parity = [1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2];
var sum = 0;
var ai = 0;
var wi = 0;
for (var i = 0; i < 17; i++) {
ai = code[i];
wi = factor[i];
sum += ai * wi;
}
if (parity[sum % 11] != code[17].toUpperCase()) {
br = false;
msg = "被保人身份证号校验位错误";
}
}
}
return {
br,
msg
};
},
// 处理时间
dealTimeLength(value){
let num = Number(value)
let str = num < 10 ? '0' + num : num
// let str = value.toString()
return str
},
// 是否是正整数
isNum(num){
if (!(/(^[1-9]\d*$)/.test(num))) {
return false;
}
return true
},
// 是否有小数点
isDot(num) {
var result = (num.toString()).indexOf(".");
if(result != -1) {
return false
alert("含有小数点");
}
return true
},
// ----------------------原生----------------------
setNavName(value){
uni.setNavigationBarTitle({
title:value
})
},
// 查看文件
checkFile(url){
uni.showLoading({
mask: true,
});
uni.downloadFile({
url: url, //仅为示例,并非真实的资源
success: function(res){
if (res.statusCode === 200) {
uni.hideLoading();
var filePath = res.tempFilePath;
uni.openDocument({
filePath: filePath,
success: function (res) {
console.log("打开文档成功");
},
});
}
},
});
},
// 扫一扫
scanCode(callback){
uni.scanCode({
scanType: ['barCode','qrCode'],
success (res) {
callback(res)
}
});
},
// 图片预览
previewImg(current, urls) {
uni.previewImage({
current: current, // 当前显示图片的https链接
urls: urls // 需要预览的图片https链接列表
})
},
// 显示加载动画
showLoading(title = "加载中...", mask = true) {
uni.showLoading({
title: title,
mask: mask,
})
},
// 关闭加载动画
hideLoading() {
uni.hideLoading();
},
// 提示框
toast(title, time = 1500, mask = true, icon = "none") {
uni.showToast({
// 提示的内容
title: title,
// 提示的时间
duration: time,
// 是否显示透明蒙层,防止触摸穿透(false)
mask: mask,
// 图标(success)
icon: icon,
})
},
// 对话框
dialogBox(obj) {
let showCancel = true;
if (obj.l_show == false) {
showCancel = false;
}
uni.showModal({
// 对话框的标题(选填)
title: obj.title || "",
// 对话框的内容(选填)
content: obj.content || "",
// 是否显示左边的按钮(选填,默认显示)
showCancel: showCancel,
// 左边按钮的文字内容(选填,默认取消)
cancelText: obj.l_text || "取消",
// 左边按钮的文字颜色(选填,默认#000000)
cancelColor: obj.l_color || "#000000",
// 右边按钮的文字内容(选填,默认确定)
confirmText: obj.r_text || "确定",
// 右边按钮的文字颜色(选填,默认#3cc51f)
confirmColor: obj.r_color || "#3cc51f",
success: (res) => {
if (res.confirm) { // 点击了确定按钮
if (obj.r_fun) {
obj.r_fun();
}
} else { // 点击了取消按钮
if (obj.l_fun) {
obj.l_fun();
}
}
}
})
},
// 打开一个新页面
open(url) {
uni.navigateTo({
url: url
})
},
// 关闭所有页面,然后打开一个新页面
openNew(url) {
uni.reLaunch({
url: url
});
},
// 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
openTab(url) {
uni.switchTab({
url: url
});
},
// 当前页打开新页面
href(url) {
uni.redirectTo({
url: url
})
},
// 页面返回
back(delta = 1) {
// #ifdef H5
const pages = getCurrentPages()
if (pages.length > 1) {
uni.navigateBack(1)
return;
}
//使用vue-router返回上一级
if (typeof(this.$router) == 'undefined') {
//重新定向跳转页面
uni.switchTab({
url: '/pages/index/index'
})
}else{
this.$router.go(-1)
}
return;
// #endif
if (getCurrentPages().length > 1) {
uni.navigateBack({
delta: delta
})
} else {
// #ifdef APP-PLUS
uni.switchTab({
url: '/pages/index/index'
})
// #endif
// #ifdef MP-WEIXIN
uni.switchTab({
url: '/pages/index/index'
})
// #endif
}
},
// 获取之前页面的数据
backGetData(index = 1) {
// 往上一级页面传参
const pages = getCurrentPages();
const prevPage = pages[pages.length - index - 1]; // 上index级页面
return prevPage;
},
// 将数据存到本地
setData(key, data) {
uni.setStorageSync(key, data);
},
// 从本地获取数据
getData(key) {
return uni.getStorageSync(key);
},
// 同步删除本地数据
removeData(key) {
uni.removeStorageSync(key);
},
// 同步清除本地数据
clearData() {
uni.clearStorage();
},
// 设置底部导航
setBar(index,text){
uni.setTabBarItem({
index:index,
text:text
})
},
// 打开地图选择地址
chooseAddress(success) {
uni.chooseLocation({
success: function(res) {
success({
// 地点名称
name: res.name,
// 详细地址
address: res.address,
// 经纬度
lng: res.longitude,
lat: res.latitude
});
},
});
},
// 打开地图
openMap(lng, lat, name) {
uni.openLocation({
longitude: lng - 0,
latitude: lat - 0,
name: name,
})
},
// 复制
copy(text,toasttext = '复制成功') {
// #ifdef APP-PLUS
uni.setClipboardData({
data: text,
success: () => {
toast(toasttext);
}
});
// #endif
// #ifdef H5
// 如果是H5,获取设备信息
uni.getSystemInfo({
success: function(res) {
let input = document.createElement('input');
input.type = 'text';
input.value = text;
input.style.position = 'fixed';
input.style.top = "-100vh";
input.style.left = "-100vw";
input.style.opacity = 0;
window.document.body.appendChild(input);
input.select();
if (res.platform == "ios") {
input.setSelectionRange(0, input.value.length), document.execCommand('Copy');
} else {
document.execCommand("Copy");
}
document.body.removeChild(input);
toast(toasttext);
}
});
// #endif
},
// 拨打电话
callNumber(phone) {
uni.makePhoneCall({
phoneNumber: phone,
})
},
// ----------------------自封方法----------------------
// 获取分发类型
getTypeFenFa(){
return [
{type:1,label:'代表发文'},
{type:2,label:'收文'},
{type:3,label:'呈报事项'},
{type:4,label:'纪检发文'},
{type:5,label:'会议通知'},
{type:6,label:'重大事项通知'},
{type:7,label:'议案分发提议人'},
{type:8,label:'公文流转'},
]
},
// 获取员工类型
getPersonType(){
return [
{type:1,label:'集团领导'},
{type:2,label:'中层领导'},
{type:3,label:'普通员工'},
]
},
// 获取书记类型
getTypeSJ(){
return [
{type:1,label:'党委书记'},
{type:2,label:'党委副书记'}
]
},
// 获取当前时间-年月日
getNowTimeYMD(){
let date = new Date(),
year = date.getFullYear(),
month = (date.getMonth()+1) < 10 ? '0' + (date.getMonth()+1) : date.getMonth()+1,
day = (date.getDate()) < 10 ? '0' + (date.getDate()) : date.getDate(),
days = year + '-' + month + '-' + day
return days
},
// 获取当前时间-年月日时分
getNowTimeYMDHM(){
let date = new Date(),
year = date.getFullYear(),
month = (date.getMonth()+1) < 10 ? '0' + (date.getMonth()+1) : date.getMonth()+1,
day = (date.getDate()) < 10 ? '0' + (date.getDate()) : date.getDate(),
hour = (date.getHours()) < 10 ? '0' + (date.getHours()) : date.getHours(),
min = (date.getMinutes()) < 10 ? '0' + (date.getMinutes()) : date.getMinutes(),
days = year + '-' + month + '-' + day + ' ' + hour + ':' + min
return days
},
// 两个数组合并并且去重
mergeArr(arr1,arr2,key){
let arr = arr1.concat(arr2); //两个数组对象合并
let newArr = []; //盛放去重后数据的新数组
for(let a = 0; a < arr.length; a++){ //循环json数组对象的内容
let flag = true; //建立标记,判断数据是否重复,true为不重复
for(let b = 0; b < newArr.length; b++){ //循环新数组的内容
if(arr[a][key] == newArr[b][key]){ //让json数组对象的内容与新数组的内容作比较,相同的话,改变标记为false
flag = false;
}
}
if(flag){ //判断是否重复
newArr.push(arr[a]); //不重复的放入新数组。 新数组的内容会继续进行上边的循环。
}
}
return newArr
},
// 去掉数组重复数据
delArrRepeat(arr,key){
var result = [];
var obj = {};
for(var i =0; i<arr.length; i++){
if(!obj[arr[i][key]]){
result.push(arr[i]);
obj[arr[i][key]] = true;
}
}
return result
},
// 检查对象是否有某key
checkObjHasKey(key,obj){
if(key in obj){
return true
}
return false
},
IsPC() {
var userAgentInfo = navigator.userAgent;
var Agents = ["Android", "iPhone",
"SymbianOS", "Windows Phone",
"iPad", "iPod"];
var flag = true;
for (var v = 0; v < Agents.length; v++) {
if (userAgentInfo.indexOf(Agents[v]) > 0) {
flag = false;
break;
}
}
return flag;
},
// 获取语言列表
getLanguage(){
return [
{id:'cn',name:'CN',type:1},
// {id:'en',name:'English',type:2}
]
},
// 检测url是否有某key,并获取值
urlIsHaveKey(key){
let urlAll = window.location.href
let urls = urlAll.replace('?','&')
let urlArr = urls.split('&')
// console.log(urlArr)
for(let a = 0; a < urlArr.length;a++){
let urlA = urlArr[a].split('=')
if(urlA[0] == key){
return urlA[1]
}
}
return ''
},
// 计算精度
getPoint(num){
let number = 1
for(let a = 0; a < num;a++){
number = number + '0'
}
return Number(number)
},
// 获取合约地址
getContract(){
return {
'key':'地址',
}
},
// 获取请求域名
getBaseUrl(){
return baseUrl
},
// 获取图片域名
getBasePageUrl(){
return 'https://pool.xinhuoshuju.com'
},
// 判断对象中是否有某key值,如果有该值,直接返回该对象
checkObjKeyIsValue(arrs,key,value){
let items = ''
arrs.forEach((item,k) => {
if(item[key] == value){
items = item
}
})
if(items){
return items
}
return false
},
// 数字转换小数点任意位
changeNumberPoint(number,length = 2){
let nums = '1'
for(let a = 0; a < length; a++){
nums = nums + '0'
}
let num = Number(number) / nums // 金额转换小数点后六位
let result = num.toFixed(length) // 截取6位
return result
},
// 检测密码只能是英文大小写加数字
checkPswEN(psw){
let check_big = /[A-Z]/g
// console.log(check_big.test(psw))
let check_small = /[a-z]/g
// console.log(check_small.test(psw))
let check_num = /[0-9]/g
// console.log(check_num.test(psw))
if(check_big.test(psw) && check_small.test(psw) && check_num.test(psw)){
return true
}
return false
},
// 生成uuid
createUUID() {
var s = [];
var hexDigits = "0123456789abcdef";
for (var i = 0; i < 36; i++) {
s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
}
s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
s[8] = s[13] = s[18] = s[23] = "-";
var uuid = s.join("");
return uuid;
},
// ----------------------时间转换----------------------
// 获取当前时间-精确到时分秒
time_StampToHMS(){
var now = new Date();
var hour = now.getHours();//得到小时
var minu = now.getMinutes();//得到分钟
var sec = now.getSeconds();//得到秒
if(hour < 10){
hour = '0' + hour
}
if(minu < 10){
minu = '0' + minu
}
if(sec < 10){
sec = '0' + sec
}
return hour + ':' + minu + ':' + sec
},
// 时分秒转换成秒数
time_HMSToS(time){
var s = '';
var hour = time.split(':')[0];
var min = time.split(':')[1];
var sec = time.split(':')[2];
s = Number(hour*3600) + Number(min*60) + Number(sec);
return s;
},
// 根据时间戳获取年月日时分秒
time_StampToYMDHMS(sjc) {
let datetime = new Date(sjc);
// 获取年月日时分秒值 slice(-2)过滤掉大于10日期前面的0
var year = datetime.getFullYear(),
month = ("0" + (datetime.getMonth() + 1)).slice(-2),
date = ("0" + datetime.getDate()).slice(-2),
hour = ("0" + datetime.getHours()).slice(-2),
minute = ("0" + datetime.getMinutes()).slice(-2),
second = ("0" + datetime.getSeconds()).slice(-2);
// 拼接
var result = year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second;
// 返回
return result;
},
// 毫秒转换时分秒
time_MsecToHMS(value) {
var theTime = parseInt(value);// 秒
var middle= 0;// 分
var hour= 0;// 小时
if(theTime > 60) {
middle= parseInt(theTime/60);
theTime = parseInt(theTime%60);
if(middle> 60) {
hour= parseInt(middle/60);
middle= parseInt(middle%60);
}
}
var result = parseInt(theTime);
if(theTime < 10){
result = "0"+theTime;
}
if(middle > 0) {
if(middle < 10){
result = "0"+parseInt(middle)+":"+result;
}else{
result = parseInt(middle)+":"+result;
}
}
if(hour> 0) {
if(hour < 10){
result = "0"+parseInt(hour)+":"+result;
}else{
result = parseInt(hour)+":"+result;
}
}
return result;
},
clearEmpty(value){
return value.replaceAll(' ','')
},
// 秒转换成天时分秒
time_MsecToDHMS(time){
time = (time / 1000).toFixed(0)
var days = parseInt(time / (1000 * 60 * 60 * 24));
var hours = parseInt((time % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = parseInt((time % (1000 * 60 * 60)) / (1000 * 60));
var seconds = (time % (1000 * 60)) / 1000;
return (days).toFixed(0) + " 天 " + (hours).toFixed(0) + " 小时 " + (minutes).toFixed(0) + " 分钟 " + (seconds).toFixed(0) + " 秒 ";
},
// 秒数转换成时分秒
time_SToHMS(s){
var t
if(s > -1){
var hour = Math.floor(s/3600)
var min = Math.floor(s/60) % 60
var sec = s % 60
if(hour < 10) {
t = '0'+ hour + ":"
} else {
t = hour + ":"
}
if(min < 10){
t += "0"
}
t += min + ":"
if(sec < 10){
t += "0"
}
t += sec.toFixed(2)
}
return t
},
}