244 lines
5.7 KiB
JavaScript
244 lines
5.7 KiB
JavaScript
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:00:00
|
||
*/
|
||
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;
|