前言:一般来说,放在utils里为全局的工具函数,包括时间,token,封装的网络请求
对于时间来说,我们有轻量的 Moment.js 中文网
不想增加项目依赖,就自己写函数
JavaScript获取三天前,一周前,一月前的时间戳_小余会努力的博客-CSDN博客
自己写:
先在data里定义 timer: "", //定义一个定时器的变量
currentTime: "", // 获取当前时间
页面上就用{{currentTime}}展示
把下面这个函数放在created生命周期里面,
getTime() {
var _this = this; //声明一个变量指向Vue实例this,保证作用域一致
_this.timer = setInterval(function() {
let Hours =
new Date().getHours() < 10
? "0" + new Date().getHours()
: new Date().getHours();
let Minutes =
new Date().getMinutes() < 10
? "0" + new Date().getMinutes()
: new Date().getMinutes();
let Seconds =
new Date().getSeconds() < 10
? "0" + new Date().getSeconds()
: new Date().getSeconds();
_this.currentTime = Hours + ":" + Minutes + ":" + Seconds;
}, 1000);
}
记得清除定时器
beforeDestroy() {
if (this.timer) {
clearInterval(this.timer); // 在Vue实例销毁前,清除我们的定时器
}
}
import { Message } from 'element-ui'
// import { getToken } from '@/utils/authToken' // 与后端的协商,websocket请求需要带上token参数
let websock = null
let messageCallback = null
let errorCallback = null
let wsUrl = ''
// 接收ws后端返回的数据
function websocketonmessage (e) {
let memData = JSON.parse(e.data);
messageCallback(memData)
}
/**
* 发起websocket连接
* @param {Object} agentData 需要向后台传递的参数数据
*/
function websocketSend (agentData) {
// 加延迟是为了尽量让ws连接状态变为OPEN
setTimeout(() => {
// 添加状态判断,当为OPEN时,发送消息
if (websock.readyState === websock.OPEN) {
// websock.OPEN = 1
// 发给后端的数据需要字符串化
websock.send(JSON.stringify(agentData))
}
if (websock.readyState === websock.CLOSED) {
// websock.CLOSED = 3
console.log("websock.readyState=3");
Message.error("");
errorCallback();
}
}, 500)
}
// 关闭ws连接
function websocketclose (e) {
// e.code === 1000 表示正常关闭。 无论为何目的而创建, 该链接都已成功完成任务。
// e.code !== 1000 表示非正常关闭。
if (e && e.code !== 1000) {
Message.error("");
errorCallback();
}
}
// 建立ws连接
function websocketOpen (e) {
// console.log('ws连接成功')
}
// 初始化weosocket
function initWebSocket () {
if (typeof (WebSocket) === 'undefined') {
Message.error('您的浏览器不支持WebSocket,无法获取数据')
return false
}
// const token = 'JWT=' + getToken()
// ws请求完整地址
const requstWsUrl = wsUrl // + '?' + token
websock = new WebSocket(requstWsUrl)
websock.onmessage = function(e) {
websocketonmessage(e);
};
websock.onopen = function() {
websocketOpen();
};
websock.onerror = function() {
Message.error("");
errorCallback();
};
websock.onclose = function(e) {
websocketclose(e);
};
}
/**
* 发起websocket请求函数
* @param {string} url ws连接地址
* @param {Object} agentData 传给后台的参数
* @param {function} successCallback 接收到ws数据,对数据进行处理的回调函数
* @param {function} errCallback ws连接错误的回调函数
*/
export function sendWebsocket (url, agentData, successCallback, errCallback) {
wsUrl = url
initWebSocket()
messageCallback = successCallback
errorCallback = errCallback
websocketSend(agentData)
}
/**
* 关闭websocket函数
*/
export function closeWebsocket () {
if (websock) {
websock.close() // 关闭websocket
websock.onclose() // 关闭websocket
}
}
<el-upload
class="avatar-uploader"
action="#"
:show-file-list="false"
:before-upload="beforeAvatarUpload">
<img v-if="logoUrl" :src="logoUrl" class="avatar" style="max-
width: 180px;">
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
</el-upload>
<span style="margin-top:110px; padding-left: 20px">注意:Logo图片格式为png格式,最大分辨率不超过256*256,大小不超过100K</span>
beforeAvatarUpload(file) {
const isJPG = file.type === "image/png";
const isLt2M = file.size / 1024 / 1024 < 0.1;
if (!isJPG) {
this.$message.error("上传图片只能是 PNG 格式!");
}
if (!isLt2M) {
this.$message.error("上传图片大小不能超过 100kb!");
}
if (isJPG && isLt2M) {
const formData = new FormData();
formData.append("file", file);
this.$api
.uploadFile(formData)
.then(res => {
if (res.code === 200) {
this.$message({
message: "上传成功,请点击保存",
type: "success"
});
// 判断端口域名后是否有\,有就去掉
let configUrl = CONFIG.parameters.apiUrl;
let str = configUrl.charAt(configUrl.length - 1);
if (str === "/") {
configUrl = configUrl.slice(
0,
configUrl.length - 1
);
}
this.config.logo = res.data.filename;
this.getLogo(res.data.filename);
} else {
this.$message({
message: "上传失败",
type: "error"
});
}
})
.catch(err => {
this.$message({
message: "上传失败",
type: "error"
});
});
}
},