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;