mirror of https://gitee.com/godoos/godoos.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
304 lines
8.1 KiB
304 lines
8.1 KiB
// 初始化变量和常量
|
|
const icon_play = "";
|
|
const icon_stop = "";
|
|
const icon_study = "";
|
|
const icon_rest = "";
|
|
let t_study = 45*60;
|
|
let t_rest = 5*60;
|
|
let plan_name = "godo发布";
|
|
let plan_time = "2021/12/31 18:00:00";
|
|
let isPlay = false;
|
|
let isRest = false;
|
|
let isShowPlan = false;
|
|
let isClock = false;
|
|
let localData = {};
|
|
let today = null;
|
|
let res_time = t_study;
|
|
let study_time = 0;
|
|
//获取现在的日期并返回
|
|
function getToday(){
|
|
let t = new Date();
|
|
let day = t.getDate();
|
|
let month = t.getMonth() +1 ;
|
|
let year = t.getFullYear();
|
|
let tmp = year +
|
|
(month < 10 ? "0" + month : month) +
|
|
(day < 10 ? "0" + day : day);
|
|
return tmp;
|
|
}
|
|
//更新today变量为最新的当前日期
|
|
function updateToday(){
|
|
today = getToday();
|
|
}
|
|
|
|
//读取本地的存储,放到localDate对象中
|
|
function loadLocalData(){
|
|
updateToday();
|
|
//如果存在本地数据
|
|
if(window.localStorage && window.localStorage.length){
|
|
for (let i=0;i<window.localStorage.length;i++){
|
|
let date = window.localStorage.key(i);
|
|
let data = window.localStorage.getItem(date);
|
|
localData[date] = data;
|
|
}
|
|
//console.log('本地数据读取完成:'+JSON.stringify(localData));
|
|
//如果有今天的数据,那今天的工作时间叠加
|
|
if(localData[today]){
|
|
study_time+=localData[today];
|
|
}
|
|
if(localData['plan-name']){
|
|
plan_name = localData['plan-name'];
|
|
$(".p4 input").eq(0).val(plan_name);
|
|
}
|
|
if(localData['plan-time']){
|
|
plan_time = localData['plan-time'];
|
|
$(".p4 input").eq(1).val(plan_time.substr(0,10));
|
|
}
|
|
if(localData['t_rest']){
|
|
t_rest = localData['t_rest'];
|
|
$(".p3 input").eq(1).val(t_rest/60);
|
|
}
|
|
if(localData['t_study']){
|
|
t_study = localData['t_study'];
|
|
$(".p3 input").eq(0).val(t_study/60);
|
|
res_time = t_study;
|
|
showRestTime();
|
|
}
|
|
}
|
|
else {
|
|
study_time = 0;
|
|
}
|
|
}
|
|
//把剩余的秒数计算成四个要显示的数字并返回
|
|
function calTime(t){
|
|
let min = Math.floor(t/60);
|
|
let sec = t %60;
|
|
return [Math.floor(min/10) , min%10 , Math.floor(sec/10) , sec %10];
|
|
}
|
|
//更新计数器时间
|
|
function showRestTime(){
|
|
let arr = calTime(res_time);
|
|
$("#n1").text(arr[0]);
|
|
if(arr[0]==1){
|
|
$("#n1").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n1").css("transform","none");
|
|
}
|
|
$("#n2").text(arr[1]);
|
|
if(arr[1]==1){
|
|
$("#n2").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n2").css("transform","none");
|
|
}
|
|
$("#n4").text(arr[2]);
|
|
if(arr[2]==1){
|
|
$("#n4").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n4").css("transform","none");
|
|
}
|
|
$("#n5").text(arr[3]);
|
|
if(arr[3]==1){
|
|
$("#n5").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n5").css("transform","none");
|
|
}
|
|
}
|
|
//更新现在的时间和电量
|
|
function showNowTime(){
|
|
let t = new Date();
|
|
let h = t.getHours();
|
|
h = h < 10 ? "0" + h : h;
|
|
let m = t.getMinutes();
|
|
m = m < 10 ? "0" + m : m;
|
|
let s = t.getSeconds();
|
|
s = s < 10 ? "0" + s : s;
|
|
if(navigator.getBattery){
|
|
navigator.getBattery().then((result)=>{
|
|
$(".now-time").text(h + ":" + m + ":" + s +" 电量:"+parseInt(result.level*100)+"%") ;
|
|
})
|
|
}
|
|
else {
|
|
$(".now-time").text(h + ":" + m + ":" + s);
|
|
}
|
|
//是否开启钟表模式
|
|
if(isClock){
|
|
//console.log(h+m);
|
|
let arr = [h.toString()[0],h.toString()[1],m.toString()[0],m.toString()[1]]
|
|
$("#n1").text(arr[0]);
|
|
$("#n2").text(arr[1]);
|
|
$("#n4").text(arr[2]);
|
|
$("#n5").text(arr[3]);
|
|
if(arr[0]==1){
|
|
$("#n1").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n1").css("transform","none");
|
|
}
|
|
$("#n2").text(arr[1]);
|
|
if(arr[1]==1){
|
|
$("#n2").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n2").css("transform","none");
|
|
}
|
|
$("#n4").text(arr[2]);
|
|
if(arr[2]==1){
|
|
$("#n4").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n4").css("transform","none");
|
|
}
|
|
$("#n5").text(arr[3]);
|
|
if(arr[3]==1){
|
|
$("#n5").css("transform","translate(30%)");
|
|
}
|
|
else {
|
|
$("#n5").css("transform","none");
|
|
}
|
|
}
|
|
else{
|
|
showRestTime();
|
|
}
|
|
}
|
|
//更新计划倒计时
|
|
function showPlan(){
|
|
let t = new Date();
|
|
let t0 = new Date(plan_time);
|
|
let ss = t0.getTime() - t.getTime();
|
|
let r_plan_days = parseInt(ss / 1000/60/60/24);
|
|
let r_plan_hours = parseInt((ss / 1000/60/60)%24);
|
|
$(".top-right").text("距" + plan_name+"还有:" + r_plan_days + "天" + r_plan_hours + "小时");
|
|
}
|
|
//存储工作时间
|
|
function saveStudyTime(){
|
|
console.log('存储数据');
|
|
if (getToday()!==today){
|
|
study_time = 0 ;
|
|
updateToday();
|
|
}
|
|
localData[today]=study_time.toFixed(2);
|
|
window.localStorage.setItem(today,study_time);
|
|
}
|
|
//更新今天已工作时间
|
|
function showStudyTime(){
|
|
$(".top-right").text("今天已工作:" +
|
|
String(Math.floor(study_time / 60)) +
|
|
"分钟" +
|
|
String(study_time % 60) +
|
|
"秒");
|
|
}
|
|
|
|
//更新最上面一栏
|
|
function showTopBar(){
|
|
showNowTime();
|
|
if(isShowPlan){
|
|
showPlan();
|
|
}
|
|
else{
|
|
showStudyTime();
|
|
}
|
|
}
|
|
//保存数据
|
|
function saveSetting (){
|
|
localData['plan-name'] = plan_name;
|
|
localData['plan-time'] = plan_name;
|
|
localData['t_study'] = t_study;
|
|
localData['t_rest'] = t_rest;
|
|
window.localStorage.setItem('plan-name',plan_name);
|
|
window.localStorage.setItem('plan-time',plan_time);
|
|
window.localStorage.setItem('t_study',t_study);
|
|
window.localStorage.setItem('t_rest',t_rest);
|
|
|
|
}
|
|
|
|
|
|
//展示图表
|
|
function showEcharts(){
|
|
//console.log("缓存数据:"+ window.localStorage);
|
|
//console.log('localData'+localData);
|
|
let myChart = echarts.init(document.getElementById('echarts'));
|
|
let dateArr = [];
|
|
let timeArr = [];
|
|
let re = /^20[0-9]{2}/;
|
|
for (let i in localData){
|
|
if(re.test(i)){
|
|
timeArr.push((localData[i]/60).toFixed(2));
|
|
//处理原来的数据
|
|
let re1 = /^0/;
|
|
if (re1.test(i.substr(4,4))){
|
|
dateArr.push(i[5]+'/'+i[6]+i[7]);
|
|
}
|
|
|
|
}
|
|
}
|
|
//处理数据补0
|
|
if (dateArr.length<4){
|
|
let n = 4 - dateArr.length;
|
|
if (dateArr.length==0){
|
|
let t = new Date();
|
|
t = t.getMonth()+1 + '/'+t.getDate();
|
|
dateArr.push(t);
|
|
timeArr.push(0);
|
|
}
|
|
for (let j=0;j<n;j++){
|
|
let t = new Date();
|
|
t=t.setDate(t.getDate()+j+1);
|
|
t = new Date(t);
|
|
dateArr.push(t.getMonth()+1+'/'+t.getDate());
|
|
timeArr.push(0);
|
|
}
|
|
|
|
}
|
|
// console.log(dateArr);
|
|
// console.log(timeArr);
|
|
let option = {
|
|
title: {
|
|
text: '工作记录',
|
|
subtext: '任意点击返回',
|
|
subtextStyle: {
|
|
align: 'right'
|
|
},
|
|
left: 'center',
|
|
icon : 'none',
|
|
textStyle: {
|
|
fontSize: 26
|
|
},
|
|
|
|
},
|
|
|
|
|
|
xAxis: {
|
|
data: dateArr,
|
|
name: '日期'
|
|
},
|
|
yAxis: {
|
|
name: '工作时间/分钟',
|
|
max: function(value){
|
|
return value.max<30?30:value.max;
|
|
}
|
|
},
|
|
series: [{
|
|
name: '时间(分)',
|
|
type: 'bar',
|
|
data: timeArr,
|
|
barMaxWidth: '40%',
|
|
itemStyle:{
|
|
color: '#555',
|
|
normal: {
|
|
label: {
|
|
show: true,
|
|
position: 'top',
|
|
formatter: '{c}分钟'
|
|
}
|
|
}
|
|
|
|
}
|
|
}]
|
|
};
|
|
myChart.setOption(option);
|
|
return myChart;
|
|
}
|
|
|