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;
|