时间格式化过滤器
代码
Vue.filter('dateFormat', function (time) {
const dt = new Date(time) //new实例
const y = dt.getFullYear() //获取年
//获取月 日 时等等 其中月默认从0开始所以+1
//使用空字符串转为string类型
//使用padStart方法补0
const m = (dt.getMonth() + 1 + '').padStart(2, '0')
const d = (dt.getDate() + '').padStart(2, '0')
const hh = (dt.getHours() + '').padStart(2, '0')
const mm = (dt.getMinutes() + '').padStart(2, '0')
const ss = (dt.getSeconds() + '').padStart(2, '0')
return `${y}-${m}-${d} ${hh}:${mm}:${ss}`
})
使用
{{时间戳 | dateFormat}}
拖拽自定义指令
代码
/*
* @Author: wangchaoxu
* @Date: 2020-07-15 18:56:51
* @LastEditors: wangchaoxu
* @LastEditTime: 2020-07-17 17:34:55
* @Description:
*/
import Vue from 'vue';
Vue.directive('drag', function(el) {
el.style.position = 'absolute';
el.style.zIndex = 9;
el.style.cursor = 'move';
el.onmousedown = function(ev) {
let mx = ev.clientX; //鼠标距离浏览器窗口左侧
let my = ev.clientY; //鼠标距离浏览器窗口上侧
let ex = el.offsetLeft; //元素距离浏览器窗口左侧
let ey = el.offsetTop; //元素距离上侧
let ew = el.offsetWidth; //元素宽度
let eh = el.offsetHeight; //元素高度
let cx = mx - ex; //鼠标距离元素左边距离
let cy = my - ey; //元素距离元素上面距离
let bw = document.body.clientWidth; //浏览器宽度
let bh = document.body.clientHeight; //浏览器高度
document.onmousemove = function(ev) {
let nmx = ev.clientX;
let nmy = ev.clientY;
let emx = nmx - cx; //元素停止时距离浏览器左边距离
let emy = nmy - cy; //元素停止时距离浏览器顶部距离
el.style.left = emx + 'px';
el.style.top = emy + 'px';
if (nmx < cx) el.style.left = 0 + 'px';
if (nmy < cy) el.style.top = 0 + 'px';
if (nmx > bw - (ew - cx)) el.style.left = bw - ew + 'px';
if (nmy > bh - (eh - cy)) el.style.top = bh - eh + 'px';
};
document.onmouseup = function() {
// 清除mousemove事件
document.onmousemove = null;
};
};
});
使用
<div class="box" v-drag></div>