123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288 |
- import moment from 'moment';
- function fixedZero(val) {
- return val * 1 < 10 ? `0${val}` : val;
- }
- const filters = {
- // 格式化时间展示多长时间之前
- formatTime(time) {
- let formatTime
- const date = new Date(time)
- const dateObj = {
- year: date.getFullYear(),
- month: date.getMonth(),
- date: date.getDate(),
- hours: date.getHours(),
- minutes: date.getMinutes()
- }
- const newTime = new Date()
- const diff = newTime.getTime() - time
- if (newTime.getDate() === dateObj.date && diff < 60000) {
- formatTime = '刚刚'
- } else if (
- newTime.getDate() === dateObj.date &&
- diff > 60000 &&
- diff < 3600000
- ) {
- formatTime = `${Math.floor(diff / 60000)}分钟前`
- } else if (
- newTime.getDate() === dateObj.date &&
- diff > 3600000 &&
- diff < 86400000
- ) {
- formatTime = `${addZero(dateObj.hours)}:${addZero(dateObj.minutes)}`
- } else if (newTime.getDate() !== dateObj.date && diff < 86400000) {
- formatTime = `昨天${addZero(dateObj.hours)}:${addZero(dateObj.minutes)}`
- } else if (newTime.getFullYear() === dateObj.year) {
- formatTime = `${dateObj.month + 1}月${dateObj.date}日`
- } else {
- formatTime = `${dateObj.year}年${dateObj.month + 1}月${dateObj.date}日`
- }
- return formatTime
- },
- //时间日期格式化
- format(time) {
- const hours = 60 * 60 * 1000;
- const minutes = 60 * 1000;
- const h = Math.floor(time / hours);
- const m = Math.floor((time - h * hours) / minutes);
- const s = Math.floor((time - h * hours - m * minutes) / 1000);
- return `${fixedZero(h)}:${fixedZero(m)}:${fixedZero(s)}`
- },
- //年月日格式化
- getDate(value) {
- let date = new Date(value)
- let y = date.getFullYear()
- let MM = date.getMonth() + 1
- MM = MM < 10 ? '0' + MM : MM
- let d = date.getDate()
- d = d < 10 ? '0' + d : d
- return y + '-' + MM + '-' + d
- },
- //年月日时分秒格式化
- formatDate: function (value) {
- let date = new Date(value)
- let y = date.getFullYear()
- let MM = date.getMonth() + 1
- MM = MM < 10 ? '0' + MM : MM
- let d = date.getDate()
- d = d < 10 ? '0' + d : d
- let h = date.getHours()
- h = h < 10 ? '0' + h : h
- let m = date.getMinutes()
- m = m < 10 ? '0' + m : m
- let s = date.getSeconds()
- s = s < 10 ? '0' + s : s
- return y + '-' + MM + '-' + d + ' ' + h + ':' + m + ':' + s
- },
- //bidType类型
- bidType(sta) {
- var data = {
- null: '-',
- 1: 'CPM',
- 2: 'CPC',
- 6: 'OCPC',
- 10: 'OCPM',
- }
- return data[sta]
- },
- //ocpxActionType类型
- ocpxActionType(sta) {
- var data = {
- null: '-',
- 0: '封面点击',
- 2: '行为数',
- 10: '曝光',
- 11: '点击',
- 31: '下载完成',
- 53: '提交线索',
- 180: '激活',
- 190: '付费',
- 191: '首日ROI',
- 348: '有效线索',
- 383: '授信',
- 384: '完件',
- 394: '订单提交',
- }
- return data[sta]
- },
- //角色类型
- roleCode(value) {
- var state = {
- clip: '剪辑',
- shot: '拍摄',
- plan: '策划',
- plane: '平面',
- admin: '管理员',
- operator: '运营专员',
- kuaishouOperationManager: '快手运营经理',
- designTeamLeader: '设计组长',
- planeLeader: '平面组长',
- touTiaoOperationManager: '头条运营经理',
- operationAssistant: '运营助理',
- }
- if (value) {
- return state[value]
- } else {
- return '暂无'
- }
- },
- //保留两位小数并且变成货币格式
- decimalsHandle(val) {
- if (val && typeof val != 'string') {
- if (val >= 0) {
- val = parseFloat(val).toFixed(2);
- let numberStr = val.toString()
- let str = numberStr.split('.')
- let str0 = str[0].split('').reverse();
- for (let i = 0; i < str0.length; i++) {
- if ((i + 1) % 4 === 0) {
- str0.splice(i, 0, ',')
- }
- }
- str0.reverse()
- let handleResult = ''
- for (let j = 0; j < str0.length; j++) {
- handleResult += str0[j]
- }
- return handleResult + '.' + str[1]
- } else {
- val = parseFloat(val).toFixed(2);
- let numberStr = val.toString()
- let str = numberStr.split('.')
- let str0 = str[0].substr(1).split('').reverse();
- for (let i = 0; i < str0.length; i++) {
- if ((i + 1) % 4 === 0) {
- str0.splice(i, 0, ',')
- }
- }
- str0.reverse()
- let handleResult = ''
- for (let j = 0; j < str0.length; j++) {
- handleResult += str0[j]
- }
- return '-' + handleResult + '.' + str[1]
- }
- } else if (typeof val == 'string') {
- return val
- }
- else {
- return 0
- }
- },
- //变成货币格式
- formatCurrency(val) {
- if ((val || val == 0) && typeof val != 'string') {
- let numberStr = val.toString()
- let str = numberStr.split('').reverse()
- for (let i = 0; i < str.length; i++) {
- if ((i + 1) % 4 === 0) {
- str.splice(i, 0, ',')
- }
- }
- str.reverse()
- let handleResult = ''
- for (let j = 0; j < str.length; j++) {
- handleResult += str[j]
- }
- return handleResult
- } else if (typeof val == 'string') {
- return val
- }
- else {
- return '-'
- }
- },
- //加百分比
- toPercentage(val) {
- if (val) {
- if (typeof val != 'string') {
- return (val * 100).toFixed(2) + '%'
- } else {
- return val
- }
- } else if (typeof val == 'string') {
- return val
- }
- else {
- return 0
- }
- },
- //媒体类型
- handleMediaType(val) {
- switch (val) {
- case 1:
- return '头条'
- break
- case 2:
- return '快手'
- break
- case 3:
- return '头条内广'
- break
- case 4:
- return '快手内广'
- break
- default:
- break
- }
- },
- //文件大小
- sizeShow(value) {
- return (value / 1024).toFixed(2)
- },
- }
- // 获取当前月的第一天
- function getCurrentMonthFirst() {
- let date = new Date();
- date.setDate(1);
- return date;
- }
- // 获取当前月的最后一天
- function getCurrentMonthLast() {
- let date = new Date();
- let currentMonth = date.getMonth();
- let nextMonth = ++currentMonth;
- let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
- let oneDay = 1000 * 60 * 60 * 24;
- return new Date(nextMonthFirstDay - oneDay);
- }
- // 今日日期小于15号时和今日日期大于等于15号时
- function getCurrentMonthFifty() {
- let date = new Date();
- if (date.getDate() < 15) {
- let bb = date.setTime(new Date().getTime() - 3600 * 1000 * 24 * 15);
- return bb;
- } else if (date.getDate() >= 15) {
- let year = date.getFullYear();
- let month = date.getMonth();
- let myDate = new Date(year, month, 0);
- let lastDay = year + "-" + month + "-" + myDate.getDate();//上个月的最后一天
- return lastDay;
- }
- }
- export default {
- install: function (Vue) {
- Object.keys(filters).forEach(key => {
- Vue.filter(key, filters[key])
- })
- }
- }
|