function formatNumber(n) { const str = n.toString() return str[1] ? str : `0${str}` } export function formatTime(date) { if (date.length <= 11) { date = date * 1000 } var date = new Date(date) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() return year + "/" + month + "/" + day } export function formatAllTime(date) { if (date.length <= 11) { date = date * 1000 } var date = new Date(date) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minutes = date.getMinutes() return year + "/" + month + "/" + day + " " + hour + ":" + minutes } export function formatTimeForSeconds(date) { if (date.length <= 11) { date = date * 1000 } var date = new Date(date) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() return year + "/" + month + "/" + day + " " + hour + ":" + minute } export function formatValidityTime(date) { if (date.toString().length <= 11) { date = date * 1000 } var date = new Date(date) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() return year + "/" + month + "/" + day + " " + hour + "时" } export function formatBirthday(date) { var date = new Date(date * 1000) const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const t1 = [year, month, day].map(formatNumber).join('-') return `${t1}` } // 专注力与放松力图表 function getLineOption(lineData_att, lineData_med) { const that = this var option = { color: ["#FFB400", "#D4327A"], legend: { data: ["Att(专注度)", "Med(放松度)"], top: -5, left: 210, // left: 'center', orient: "horizontal", icon: "circle", itemWidth: 8, itemGap: 5, // 解决部分安卓手机图例字体显示太小的问题 textStyle: { // fontWeight: 'bold', fontSize: 10, color: "#CFCFCF" }, selectedMode: false, show: false }, grid: { left: 20, right: 20, bottom: 16, top: 16, // show:true, containLabel: true, zlevel: 1 }, tooltip: { show: true, trigger: 'axis' }, yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } }, axisLine: { lineStyle: { color: '#ccc' }, show: false }, axisLabel: { color: '#ccc' }, max: 100, // data: ["0", "20", "40", "60", "80", "100"] // show: false }, xAxis: { type: 'category', boundaryGap: false, splitLine: { lineStyle: { type: 'dashed' } }, axisLine: { lineStyle: { color: '#ccc' } }, axisLabel: { color: '#ccc' }, show: false }, series: [{ name: "Att(专注度)", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: lineData_att }, { name: "Med(放松度)", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: lineData_med }, ], animation: false } return option } // 基本脑波图 function getBaseOption(delta, theta, alpha, beta) { const that = this var option = { color: ["#4b8cb4", "#ed4b59", "#fdb64b", "#F6CB90"], legend: { data: ["Delta", "Theta", "Alpha", "Beta"], left: 'center', bottom: 20, icon: "circle", itemWidth: 8, itemGap: 25, // 解决部分安卓手机图例字体显示太小的问题 textStyle: { // fontWeight: 'bold', fontSize: 10, color: "#CFCFCF", }, show: false }, grid: { left: 20, right: 20, bottom: 16, top: 16, // show:false, containLabel: true }, tooltip: { show: true, trigger: 'axis' }, yAxis: { x: 'center', type: 'value', splitLine: { lineStyle: { type: 'dashed' } }, axisLine: { lineStyle: { color: '#ccc' }, show: false }, axisLabel: { color: '#ccc' }, // max: 100, // data: ["0", "20", "40", "60", "80", "100"] // show: false }, xAxis: { type: 'category', boundaryGap: false, splitLine: { lineStyle: { type: 'dashed' } }, axisLine: { lineStyle: { color: '#ccc' } }, axisLabel: { color: '#ccc' }, show: false }, series: [{ name: "Delta", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: delta }, { name: "Theta", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: theta }, { name: "Alpha", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: alpha }, { name: "Beta", symbol: 'none', //取消折点圆圈 type: 'line', smooth: true, data: beta, }, ], animation: false } return option } export function formatSeconds(value) { var secondTime = parseInt(value);// 秒 var minuteTime = 0;// 分 var hourTime = 0;// 小时 if (secondTime > 60) {//如果秒数大于60,将秒数转换成整数 //获取分钟,除以60取整数,得到整数分钟 minuteTime = parseInt(secondTime / 60); //获取秒数,秒数取佘,得到整数秒数 secondTime = parseInt(secondTime % 60); //如果分钟大于60,将分钟转换成小时 if (minuteTime > 60) { //获取小时,获取分钟除以60,得到整数小时 hourTime = parseInt(minuteTime / 60); //获取小时后取佘的分,获取分钟除以60取佘的分 minuteTime = parseInt(minuteTime % 60); } } var result = "" + parseInt(secondTime) + "秒"; if (minuteTime > 0) { result = "" + parseInt(minuteTime) + "分" + result; } if (hourTime > 0) { result = "" + parseInt(hourTime) + "小时" + result; } return result; } //获取等级名称 function get_level_name($level_id) { let $level = ['普通用户', '体验会员', '黄金会员', '白金会员', '钻石会员', '创客代理', '区域代理', '合伙人', '店员', '店长', '老师'] return $level[$level_id] } export function cal_down_time($final_time) { let $today = new Date().getTime() let $differ = $final_time * 1000 - $today //计算出相差天数 var days = Math.floor($differ / (24 * 3600 * 1000)) //计算出小时数 var leave1 = $differ % (24 * 3600 * 1000) //计算天数后剩余的毫秒数 var hours = Math.floor(leave1 / (3600 * 1000)) //计算相差分钟数 var leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数 var minutes = Math.floor(leave2 / (60 * 1000)) //计算相差秒数 var leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数 var seconds = Math.round(leave3 / 1000) return { differ: $differ, days, hours, minutes, seconds } } export function getHightPieChartOption($params) { let $option = { tooltip: { trigger: 'item' }, series: [ { name: '访问来源', type: 'pie', radius: '50%', labelLine: { show: false }, data: [ // {value: $params, name: '高专注占比'}, // {value: Math.abs(100-$params), name: '直接访问'}, {value: $params, name: '高专注占比'}, {value: Math.abs(100 - $params), name: '直接访问'}, ] } ] }; return $option } export function getRadarChartOption($params) { let $option = { tooltip: {}, radar: { // shape: 'circle', radius: '55%', name: { textStyle: { color: '#fff', backgroundColor: '#999', borderRadius: 3, padding: [3, 5] } }, indicator: [ {name: '专注力平均值指数', max: 6500}, {name: '专注力广度指数', max: 16000}, {name: '专注力爆发指数', max: 30000}, {name: '专注力抗性指数', max: 38000}, {name: '专注力启动指数', max: 52000}, {name: '高专注力占比指数', max: 25000} ] }, series: [{ name: '预算 vs 开销(Budget vs spending)', type: 'radar', // areaStyle: {normal: {}}, lineStyle: { color: "#D28885" }, data: [ { value: [5000, 14000, 28000, 31000, 42000, 21000], name: '实际开销(Actual Spending)' } ] }] }; return $option } export default { formatNumber, formatTime, getLineOption, getBaseOption, get_level_name }