From 5672f352d0ba114e2ae96c8cefad6c74ae6d2934 Mon Sep 17 00:00:00 2001 From: unknown <280848880@qq.com> Date: 星期一, 23 十月 2023 10:38:28 +0800 Subject: [PATCH] 苏州-web:智能安全帽提交 --- web/src/plugins/public.js | 363 ++++++++++++++++++++++++++++----------------------- 1 files changed, 196 insertions(+), 167 deletions(-) diff --git a/web/src/plugins/public.js b/web/src/plugins/public.js index 10fb130..cd06262 100644 --- a/web/src/plugins/public.js +++ b/web/src/plugins/public.js @@ -1,167 +1,196 @@ -import axios from 'axios' -import Vue from 'vue' -/** - * 防抖函数 - */ - export const debounce = (fun, time) => { - let timer = null - return function() { - if(timer) { - clearTimeout(timer) - } - let args = arguments - timer = setTimeout(() => { - fun.apply(this, args) - }, time) - } -} - -/** - * 节流函数 - */ -export const throttle = (fun, time) => { - let strTime = 0 - return function() { - let endTime = new Date() - let args = arguments - if(endTime - strTime > time) { - strTime = endTime - fun.apply(this, args) - } - } -} - -/** - * 动态切换组件尺寸 -*/ -export const changeSize = () => { - // let size = "" - // let viewWidth = document.documentElement.clientWidth - // switch(true) { - // case viewWidth <= 1024: - // size = "mini" - // break; - // case viewWidth <= 1280: - // size = "small" - // break; - // case viewWidth <= 1600: - // size = "medium" - // break; - // default: - // size = "" - // } - // return size - return 'small' -} - -/** - * 存入/更新cookie信息 - * name: cookie 名称 - * values: cookie 值 - * times: 过期时间 -*/ -export const setCookie = (name, values, times) => { - let date = new Date(); - let params = JSON.stringify(values) - date.setTime(date.getTime() + (times * 24 * 60 * 60 * 1000)); - document.cookie = `${name}=${params};expires=${date.toGMTString()}`; -} - -/** - * 获取cookie信息 - * name: 存入的cookie名 -*/ -export const getCookie = (name) => { - let data = ""; - let list = document.cookie.split(';'); - list.forEach(item => { - item = item.split('=') - if(item[0].replace(/^\s+|\s+$/g,"") === name) { - data = JSON.parse(item[item.length - 1]) - } - }) - return data -} - -/** - * 处理时间戳 -*/ -export const changeTime = (time) => { - const date = new Date(time); - console.log(date,'---'); - let year = date.getFullYear(); - let month = date.getMonth() + 1; - month = month > 9 ? month : `0${month}`; - let day = date.getDate() > 9 ? date.getDate() : `0${date.getDate()}`; - let hours = date.getHours() > 9 ? date.getHours() : `0${date.getHours()}`; - let min = date.getMinutes() > 9 ? date.getMinutes() : `0${date.getMinutes()}`; - let sec = date.getSeconds() > 9 ? date.getSeconds() : `0${date.getSeconds()}`; - return `${year}-${month}-${day} ${hours}:${min}:${sec}` -} - -/** - * 下载文件公共方法 -*/ - -export const downLoadFile = (data, url) => { - let link = document.createElement("a") - link.style.display = "none"; - link.href = `${process.env.VUE_APP_BASE_URL}${url}?authcode=${data}`; - document.body.appendChild(link) - link.click(); - URL.revokeObjectURL(link.href) // 释放URL 对象 -} - -export const downFiles = (data, fileName = 'downLoad', fileType) => { - let url = URL.createObjectURL(new Blob([data])) - let link = document.createElement("a") - link.style.display = "none"; - link.href = url; - link.setAttribute("download", `${fileName}.${fileType}`) - document.body.appendChild(link) - link.click(); - URL.revokeObjectURL(link.href) // 释放URL 对象 -} - -/** - * 转二维码(blob流转地址) - */ -export const tranQr = (val) => { - let imageUrl = ''; - Vue.prototype.$api.Print.getPrintPhone({num:val}).then(res=>{ - imageUrl = URL.createObjectURL(new Blob([res.data])); - }) - return imageUrl -} - - -export const downLoadQR = (data, url) => { - axios({ - method: 'get', - url: `${process.env.VUE_APP_BASE_URL}${url}?num=${data}`, - responseType: 'blob' - }).then((res) => { - downFiles(res.data, '二维码图片','png') - }) - // let link = document.createElement("a") - // link.style.display = "none"; - // link.href = ; - // document.body.appendChild(link) - // link.click(); - // URL.revokeObjectURL(link.href) // 释放URL 对象 - - // link.href = `${process.env.VUE_APP_BASE_URL}${url}?num=${data}`; - // link.setAttribute("download", '二维码图片.png') - // document.body.appendChild(link) - // link.click(); -} -//通过扫描二维码跳转详情页面 -export const downLoadQRDetails = (data,id,typePage, url) => { - axios({ - method: 'get', - url: `${process.env.VUE_APP_BASE_URL}${url}?num=${data}&bigDeviceId=${id}&type=${typePage}`, - responseType: 'blob' - }).then((res) => { - downFiles(res.data, '二维码图片','png') - }) -} \ No newline at end of file +import axios from 'axios' +import Vue from 'vue' +/** + * 防抖函数 + */ + export const debounce = (fun, time) => { + let timer = null + return function() { + if(timer) { + clearTimeout(timer) + } + let args = arguments + timer = setTimeout(() => { + fun.apply(this, args) + }, time) + } +} + +/** + * 节流函数 + */ +export const throttle = (fun, time) => { + let strTime = 0 + return function() { + let endTime = new Date() + let args = arguments + if(endTime - strTime > time) { + strTime = endTime + fun.apply(this, args) + } + } +} + +/** + * 动态切换组件尺寸 +*/ +export const changeSize = () => { + // let size = "" + // let viewWidth = document.documentElement.clientWidth + // switch(true) { + // case viewWidth <= 1024: + // size = "mini" + // break; + // case viewWidth <= 1280: + // size = "small" + // break; + // case viewWidth <= 1600: + // size = "medium" + // break; + // default: + // size = "" + // } + // return size + return 'small' +} + +/** + * 存入/更新cookie信息 + * name: cookie 名称 + * values: cookie 值 + * times: 过期时间 +*/ +export const setCookie = (name, values, times) => { + let date = new Date(); + let params = JSON.stringify(values) + date.setTime(date.getTime() + (times * 24 * 60 * 60 * 1000)); + document.cookie = `${name}=${params};expires=${date.toGMTString()}`; +} + +/** + * 获取cookie信息 + * name: 存入的cookie名 +*/ +export const getCookie = (name) => { + let data = ""; + let list = document.cookie.split(';'); + list.forEach(item => { + item = item.split('=') + if(item[0].replace(/^\s+|\s+$/g,"") === name) { + data = JSON.parse(item[item.length - 1]) + } + }) + return data +} + +/** + * 处理时间戳 +*/ +export const changeTime = (time) => { + const date = new Date(time); + console.log(date,'---'); + let year = date.getFullYear(); + let month = date.getMonth() + 1; + month = month > 9 ? month : `0${month}`; + let day = date.getDate() > 9 ? date.getDate() : `0${date.getDate()}`; + let hours = date.getHours() > 9 ? date.getHours() : `0${date.getHours()}`; + let min = date.getMinutes() > 9 ? date.getMinutes() : `0${date.getMinutes()}`; + let sec = date.getSeconds() > 9 ? date.getSeconds() : `0${date.getSeconds()}`; + return `${year}-${month}-${day} ${hours}:${min}:${sec}` +} + +/** + * 下载文件公共方法 +*/ + +export const downLoadFile = (data, url) => { + let link = document.createElement("a") + link.style.display = "none"; + link.href = `${process.env.VUE_APP_BASE_URL}${url}?authcode=${data}`; + document.body.appendChild(link) + link.click(); + URL.revokeObjectURL(link.href) // 释放URL 对象 +} + +export const downFiles = (data, fileName = 'downLoad', fileType) => { + let url = URL.createObjectURL(new Blob([data])) + let link = document.createElement("a") + link.style.display = "none"; + link.href = url; + link.setAttribute("download", `${fileName}.${fileType}`) + document.body.appendChild(link) + link.click(); + URL.revokeObjectURL(link.href) // 释放URL 对象 +} + +/** + * 转二维码(blob流转地址) + */ +export const tranQr = (val) => { + let imageUrl = ''; + Vue.prototype.$api.Print.getPrintPhone({num:val}).then(res=>{ + imageUrl = URL.createObjectURL(new Blob([res.data])); + }) + return imageUrl +} + + +export const downLoadQR = (data, url) => { + axios({ + method: 'get', + url: `${process.env.VUE_APP_BASE_URL}${url}?num=${data}`, + responseType: 'blob' + }).then((res) => { + downFiles(res.data, '二维码图片','png') + }) + // let link = document.createElement("a") + // link.style.display = "none"; + // link.href = ; + // document.body.appendChild(link) + // link.click(); + // URL.revokeObjectURL(link.href) // 释放URL 对象 + + // link.href = `${process.env.VUE_APP_BASE_URL}${url}?num=${data}`; + // link.setAttribute("download", '二维码图片.png') + // document.body.appendChild(link) + // link.click(); +} +//通过扫描二维码跳转详情页面 +export const downLoadQRDetails = (data,id,typePage, url) => { + axios({ + method: 'get', + url: `${process.env.VUE_APP_BASE_URL}${url}?num=${data}&bigDeviceId=${id}&type=${typePage}`, + responseType: 'blob' + }).then((res) => { + downFiles(res.data, '二维码图片','png') + }) +} + +/* Date原型添加format方法 */ +Date.prototype.format = function (fmt) { + fmt = fmt || 'yyyy-MM-dd' + var o = { + 'M+': this.getMonth() + 1, //月份 + 'd+': this.getDate(), //日 + 'h+': this.getHours(), //小时 + 'm+': this.getMinutes(), //分 + 's+': this.getSeconds(), //秒 + 'q+': Math.floor((this.getMonth() + 3) / 3), //季度 + S: this.getMilliseconds() //毫秒 + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + (this.getFullYear() + '').substr(4 - RegExp.$1.length) + ) + } + for (var k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace( + RegExp.$1, + RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) + ) + } + } + return fmt +} \ No newline at end of file -- Gitblit v1.9.3