123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499 |
- import moment from 'moment';
- function fixedZero(val) {
- return val * 1 < 10 ? `0${val}` : val;
- }
- // function getrandom(minnum , maxnum ,total,size){
- // var num = total; //定义整数
- // var length= size; //定义多个整数的数量
- // var numArr = [];
- // while(length > 1){
- // var rnd = Math.floor(Math.random() * num); //通过JS的随机函数生成随机数
- // num -= rnd;
- // numArr.push(rnd);
- // length --;
- // }
- // numArr.push(num);
- // console.info(numArr);
- // return numArr;
- // };getrandom(6,30,45,6)
- 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
- },
- //时间秒转化为时间格式
- formatS: function (s) {
- var sTime = parseInt(s);// 秒
- var mTime = 0;// 分
- var hTime = 0;// 时
- if (sTime > 60) {//如果秒数大于60,将秒数转换成整数
- //获取分钟,除以60取整数,得到整数分钟
- mTime = parseInt(sTime / 60);
- //获取秒数,秒数取佘,得到整数秒数
- sTime = parseInt(sTime % 60);
- //如果分钟大于60,将分钟转换成小时
- if (mTime > 60) {
- //获取小时,获取分钟除以60,得到整数小时
- hTime = parseInt(mTime / 60);
- //获取小时后取佘的分,获取分钟除以60取佘的分
- mTime = parseInt(mTime % 60);
- }
- }
- var result = '';
- if (sTime >= 0 && sTime < 10) {
- result = "0" + parseInt(sTime) + "";
- } else {
- result = "" + parseInt(sTime) + "";
- }
- if (mTime >= 0 && mTime < 10) {
- result = "0" + parseInt(mTime) + ":" + result;
- } else {
- result = "" + parseInt(mTime) + ":" + result;
- }
- if (hTime >= 0 && hTime < 10) {
- result = "0" + parseInt(hTime) + ":" + result;
- } else {
- result = "" + parseInt(hTime) + ":" + result;
- }
- return result;
- },
- //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: '订单提交',
- 324: '唤起应用',
- 715: '微信复制优化目标',
- 716: '多转化事件',
- 396: '注册优化目标',
- 731: '广告观看5次',
- 732: '广告观看10次',
- 773: '关键行为'
- }
- 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)
- },
- //预警计算符号
- conditionName(val) {
- var data = {
- equal: '=',//'等于',
- not_equal: '≠',//不等于,
- greater: '>',//大于
- less: '<',//小于
- greater_equal: '≥',//大于等于
- less_equal: '≤',//小于等于
- }
- return data[val]
- },
- //快手年龄
- kuaishouAge(val) {
- var data = {
- 18: '18-23岁',//'等于',
- 24: '24-30岁',//不等于,
- 31: '31-40岁',//大于
- 41: '41-49岁',//小于
- 50: '50+',//大于等于
- }
- return data[val]
- },
- //快手手机价格
- kuaishouPrice(val) {
- var data = {
- 1: '1500以下',
- 2: '1501~2000',
- 3: '2001~2500',
- 4: '2501~3000',
- 5: '3001~3500',
- 6: '3501~4000',
- 7: '4001~4500',
- 8: '4501~5000',
- 9: '5001~5500',
- 10: '5500以上',
- }
- return data[val]
- },
- //快手过滤以转化用户
- kuaishouFilterConvertedLevel(val) {
- var data = {
- 0: '不限',
- 1: '广告组',
- 2: '广告计划',
- 3: '本账户',
- 4: '公司主体',
- 5: 'APP'
- }
- return data[val]
- },
- //场景广告位
- kuaishouSceneId(val) {
- var data = {
- 1: '优选广告位',
- 3: '视频播放页广告',
- 6: '上下滑大屏广告',
- 7: '信息流广告',
- 5: "联盟广告"
- }
- return data[val]
- },
- platform(str) {
- var data = {
- 1: 'Android应用下载',
- 2: 'Android网页游戏',
- 3: 'iOS应用下载',
- 4: 'iOS网页游戏'
- }
- return data[str]
- },
- // 人群包定向
- customCrowdHandler(val){
- let str=''
- switch (val) {
- case 1:
- str='上传人群'
- break;
- case 2:
- str='广告人群'
- break;
- case 3:
- str='主题专区'
- break;
- case 4:
- str='逻辑规则'
- break;
- case 5:
- str='人群扩展'
- break;
- case 6:
- str='平台定制'
- break;
- case 7:
- str='定制付费'
- break;
- case 8:
- str='网红粉丝类别'
- break;
- case 9:
- str='内容付费行为'
- break;
- case 10:
- str='移动应用安装'
- break;
- case 11:
- str='快手使用活跃度'
- break;
- case 12:
- str='行业分类'
- break;
- case 13:
- str='商业兴趣'
- break;
- case 14:
- str='固化标签'
- break;
- case 15:
- str='行业偏好'
- break;
- case 16:
- str='第三方标签'
- break;
- case 17:
- str='产品关键词'
- break;
-
- default:
- break;
- }
- return str
- },
- deviceBrand(str) {
- var data = {
- 1:"OPPO",
- 2:"VIVO",
- 3:"华为",
- 4:"小米",
- 5:"荣耀",
- 6:"三星",
- 7:"金立",
- 8:"魅族",
- 9:"乐视",
- 10:"其他",
- 11:"苹果",
- }
- return data[str]
- }
- }
- // 获取当前月的第一天
- 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])
- })
- }
- }
|