project/utils/system.js

244 lines
5.7 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import regular from './regular.js'
import clientJs from './client.js'
const system = {
/**
* 打开线上文件
* @param {String} fileUrl 文件路径
*/
openFile(fileUrl, fileName) {
if (!fileUrl) {
return
}
// 图片预览
if (regular.isPicture(fileUrl)) {
uni.previewImage({
urls: [fileUrl]
})
return
}
// #ifdef APP-PLUS
// console.log(fileUrl);
// let dtask = plus.downloader.createDownload(fileUrl,{
// filename: fileName
// },function(d, status) {//d为下载的文件对象;status下载状态
// console.log('d',status)
// if (status == 200) {//下载成功
// console.log("下载成功",)
// console.log(d);
// //d.filename是文件在保存在本地的相对路径使用下面的API可转为平台绝对路径
// let fileSaveUrl = plus.io.convertLocalFileSystemURL(d.filename);
// console.log(fileSaveUrl);
// // plus.runtime.openURL(d.filename)
// plus.runtime.openFile(fileSaveUrl); //选择软件打开文件
// // plus.runtime.openFile(d.filename, {}, function(e) { //调用第三方应用打开文件
// // plus.runtime.launchApplication({
// // pname: d.filename
// // }, function(e) {
// // plus.nativeUI.confirm('检查到您未安装\' 文件查看器\' 是否需要下载安装?',
// // function(i) {
// // if (i.index == 0) {
// // document.location.href = PDFAPPUrl
// // return;
// // }
// // });
// // });
// // });
// } else {//下载失败
// console.log("下载失败")
// plus.downloader.clear(); //清除下载任务
// }
// }
// );
// dtask.start();//启用
plus.runtime.openURL(fileUrl)
// #endif
// #ifdef H5
// 尝试打开手机系统浏览器,不行跳转页面访问
try {
// 原生APP通过系统浏览器访问
if (!clientJs.openPhoneBrowser(fileUrl)) {
window.location.href = fileUrl
}
} catch (e) {
window.open(fileUrl)
}
// #endif
// #ifdef MP
uni.setClipboardData({
data: fileUrl
});
uni.showModal({
content: '附件链接已复制',
showCancel: false
});
// #endif
},
/**
* 函数异步操作
* @param {Object} func 待转异步执行函数
*/
promisic(func) {
return function(params = {}) {
return new Promise((resolve, reject) => {
const args = Object.assign(params, {
success(res) {
resolve(res);
},
fail(error) {
reject(error);
}
});
func(args);
});
};
},
/**
* 去除字符串中h5标签
*/
delHtmlTag(content) {
if (!content) {
return null
}
return content.replace(/<[^>]+>/g, "");
},
/**
* 文本截取,超过指定长度显示省略号
*/
subWithEl(content, maxLength = 30) {
if (!content || content.length <= maxLength) {
return content
} else {
return content.substring(0, maxLength) + "...";
}
},
/**
* 判断文本内容是否为空
*/
isEmpty(content) {
return !content || String(content).trim().length == 0
},
/**
* px转rpx
* @param {Object} pxNumber
*/
px2rpx(pxNumber) {
const {
screenWidth
} = wx.getSystemInfoSync();
const rpxNumber = (750 / screenWidth) * pxNumber;
return parseInt(rpxNumber);
},
/**
* 返回上一层并且刷新页面
* 注意需要现在onLoad里定义initData方法
* @param {Object} op 返回页面传参op为一个对象
*/
refreshBack(op) {
var pages = getCurrentPages(); // 当前页面
var beforePage = pages[pages.length - 2]; // 前一个页面
// console.log(that.appointmentId);
uni.navigateBack({
delta: 1,
success: function() {
// 执行前一个页面的刷新 initData是我自己定义的方法
beforePage.$vm.initData(op);
}
});
},
/**
* 秒数转化为时、分、秒00:0000
*/
getTime(time) {
// 转换为时分秒
// let h = parseInt(time / 60 / 60 % 24)
// h = h < 10 ? '0' + h : h
// let m = parseInt(time / 60 % 60)
// m = m < 10 ? '0' + m : m
// let s = parseInt(time % 60)
// s = s < 10 ? '0' + s : s
// // 作为返回值返回
// return h+'时'+m+"分"+s + '秒'
// return m +"分"+s + '秒'
var secondTime = parseInt(time); // 秒
var minuteTime = 0; // 分
var hourTime = 0; // 小时
if (secondTime >= 60) {
minuteTime = parseInt(secondTime / 60);
secondTime = parseInt(secondTime % 60);
}
var result = "" + (parseInt(secondTime) < 10 ? "0" + parseInt(secondTime) : parseInt(secondTime)) + '秒';
if (minuteTime > 0) {
result = "" + (parseInt(minuteTime) < 10 ? "0" + parseInt(minuteTime) : parseInt(minuteTime)) + "分" +
result;
}
if (hourTime > 0) {
result = "" + (parseInt(hourTime) < 10 ? "0" + parseInt(hourTime) : parseInt(hourTime)) + ":" + result;
}
return result
},
/**
* 解析特殊符号
**/
escapeHtml(str) {
var arrEntities = {
'lt': '<',
'gt': '>',
'nbsp': ' ',
'amp': '&',
'quot': '"'
};
return str.replace(/&(lt|gt|nbsp|amp|quot);/ig, function(all, t) {
return arrEntities[t];
});
},
/**
* 防抖函数(立即执行版本)
*/
debounce(fn, delay) {
// 存储定时标识符,以便清除定时器
let timer = null
return function _debounce() {
if (timer) clearTimeout(timer)
timer = setTimeout(() => {
fn()
}, delay)
}
},
};
// #ifdef H5
(function() {
var u = navigator.userAgent,
w = window.innerWidth;
if (!u.match(/AppleWebKit.*Mobile.*/) || u.indexOf('iPad') > -1) {
window.innerWidth = 750 * (w / 1920);
window.onload = function() {
window.innerWidth = w;
}
}
})();
// #endif
module.exports = system;