|
|
|
// 请求时接口的公用部分
|
|
|
|
// #ifdef APP-PLUS || MP
|
|
|
|
// const baseUrl = "http://116.62.210.143:9002";
|
|
|
|
// const baseUrl = "http://118.89.79.160:8800/HiatmpPro";
|
|
|
|
// const baseUrl = "http://49.235.207.167:8800/HiatmpPro";
|
|
|
|
const baseUrl = "http://219.147.31.25:30001/tht-app-api/HiatmpPro";
|
|
|
|
const chatUrl = "http://219.147.31.25:30001/hitap";
|
|
|
|
// #endif
|
|
|
|
// #ifdef H5
|
|
|
|
const baseUrl = "/HiatmpPro";
|
|
|
|
const chatUrl = "/hitapChat";
|
|
|
|
// #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,
|
|
|
|
chatUrl,
|
|
|
|
// ----------------------校验----------------------
|
|
|
|
// 处理时间两位数
|
|
|
|
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
|
|
|
|
},
|
|
|
|
|
|
|
|
}
|