mirror of https://github.com/shunfei/cronsun
抽出几个工业函数到单独文件
parent
f33843e0ff
commit
2834f42b34
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -58,7 +58,7 @@
|
|||
<div id="charts">
|
||||
<div class="ui card">
|
||||
<div class="content">
|
||||
<h4 class="header">当前节点状态</h4>
|
||||
<h4 class="header"><router-link to="node">当前节点状态</router-link></h4>
|
||||
<div class="description">
|
||||
<canvas ref="node"></canvas>
|
||||
</div>
|
||||
|
@ -67,7 +67,7 @@
|
|||
|
||||
<div class="ui card">
|
||||
<div class="content">
|
||||
<h4 class="header">今日任务概况</h4>
|
||||
<h4 class="header"><router-link :to="'log?begin='+today+'&end='+today">今日任务概况</router-link></h4>
|
||||
<div class="description">
|
||||
<canvas ref="job"></canvas>
|
||||
</div>
|
||||
|
@ -79,6 +79,7 @@
|
|||
|
||||
<script>
|
||||
import Chart from 'charts';
|
||||
import {formatNumber} from '../libraries/functions';
|
||||
|
||||
export default {
|
||||
name: 'dash',
|
||||
|
@ -87,11 +88,21 @@ export default {
|
|||
totalJobs: 0,
|
||||
totalExecuted: 0,
|
||||
todayExecuted: 0,
|
||||
totalNodes: 0
|
||||
totalNodes: 0,
|
||||
|
||||
today: ''
|
||||
}
|
||||
},
|
||||
|
||||
mounted(){
|
||||
// var formatNumber = function(i, len){
|
||||
// var n = i == 0 ? 1 : Math.ceil(Math.log10(i+1));
|
||||
// if (n >= len) return i.toString();
|
||||
// return '0'.repeat(len-n) + i.toString();
|
||||
// }
|
||||
var d = new Date()
|
||||
this.today = d.getFullYear().toString() + '-' + formatNumber(d.getMonth()+1, 2) + '-' + d.getDate();
|
||||
|
||||
var vm = this;
|
||||
var renderJobInfo = function(resp){
|
||||
vm.totalJobs = resp.totalJobs;
|
||||
|
@ -104,8 +115,8 @@ export default {
|
|||
labels: ["成功", "失败"],
|
||||
datasets: [{
|
||||
data: [resp.jobExecuted.successed, resp.jobExecuted.failed],
|
||||
backgroundColor: ["#21BA45", "#333", "#DB2828"],
|
||||
hoverBackgroundColor: ["#39DE60", "#555", "#D64848"]
|
||||
backgroundColor: ["#21BA45", "#DB2828"],
|
||||
hoverBackgroundColor: ["#39DE60", "#D64848"]
|
||||
}]
|
||||
}
|
||||
});
|
||||
|
|
|
@ -43,7 +43,7 @@
|
|||
<td><router-link :to="'/job/edit/'+job.group+'/'+job.id">{{job.name}}</router-link></td>
|
||||
<td>
|
||||
<span v-if="!job.latestStatus">-</span>
|
||||
<span v-else>{{formatTime(job.latestStatus.beginTime, job.latestStatus.endTime)}},于 {{job.latestStatus.node}} 耗时 {{formatDuration(job.latestStatus.beginTime, job.latestStatus.endTime)}}</span>
|
||||
<span v-else>{{formatLatest(job.latestStatus)}}</span>
|
||||
</td>
|
||||
<td :class="{error: job.latestStatus && !job.latestStatus.success}">
|
||||
<span v-if="!job.latestStatus">-</span>
|
||||
|
@ -59,6 +59,7 @@
|
|||
<script>
|
||||
import Dropdown from './basic/Dropdown.vue';
|
||||
import Pager from './basic/Pager.vue';
|
||||
import {formatTime, formatDuration} from '../libraries/functions';
|
||||
|
||||
export default {
|
||||
name: 'job',
|
||||
|
@ -135,54 +136,8 @@ export default {
|
|||
return
|
||||
},
|
||||
|
||||
formatDuration: function(beginTime, endTime){
|
||||
var d = new Date(endTime) - new Date(beginTime);
|
||||
var s = '';
|
||||
var day = d/86400000;
|
||||
if (day >= 1) s += day.toString() + ' 天 ';
|
||||
|
||||
d = d%86400000;
|
||||
var hour = d/3600000;
|
||||
if (hour >= 1) s += hour.toString() + ' 小时 ';
|
||||
|
||||
d = d%3600000;
|
||||
var min = d/60000;
|
||||
if (min >= 1) s += min.toString() + ' 分钟 ';
|
||||
|
||||
d = d%60000;
|
||||
var sec = d/1000;
|
||||
if (sec >= 1) s += sec.toString() + ' 秒 ';
|
||||
|
||||
d = d%1000;
|
||||
if (d >= 1) s = d.toString() + ' 毫秒';
|
||||
|
||||
if (s.length == 0) s = "0 毫秒";
|
||||
return s;
|
||||
},
|
||||
|
||||
formatTime: function(beginTime, endTime){
|
||||
var now = new Date();
|
||||
var bt = new Date(beginTime);
|
||||
var et = new Date(endTime);
|
||||
var s = this._formatTime(now, bt) + ' ~ ' + this._formatTime(now, et);
|
||||
return s;
|
||||
},
|
||||
|
||||
_formatTime: function(now, t){
|
||||
var s = '';
|
||||
if (now.getFullYear() != t.getFullYear()) {
|
||||
s += t.getFullYear().toString() + '-';
|
||||
}
|
||||
s += this._formatNumber(t.getMonth()+1, 2).toString() + '-';
|
||||
s += this._formatNumber(t.getDate(), 2) + ' ' + this._formatNumber(t.getHours(), 2) + ':' + this._formatNumber(t.getMinutes(), 2) + ':' + this._formatNumber(t.getSeconds(), 2);
|
||||
return s;
|
||||
},
|
||||
|
||||
// i > 0
|
||||
_formatNumber: function(i, len){
|
||||
var n = i == 0 ? 1 : Math.ceil(Math.log10(i+1));
|
||||
if (n >= len) return i.toString();
|
||||
return '0'.repeat(len-n) + i.toString();
|
||||
formatLatest: function(latest){
|
||||
return formatTime(latest.beginTime, latest.endTime)+',于 '+latest.node+' 耗时 '+formatDuration(latest.beginTime, latest.endTime);
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<tr v-for="log in list">
|
||||
<td><router-link class="item" :to="'/job/edit/'+log.jobGroup+'/'+log.jobId">{{log.name}}</router-link></td>
|
||||
<td>{{log.node}}</td>
|
||||
<td :class="{warning: durationAttention(log.beginTime, log.endTime)}"><i class="attention icon" v-if="durationAttention(log.beginTime, log.endTime)"></i> {{formatTime(log.beginTime, log.endTime)}},{{formatDuration(log.beginTime, log.endTime)}}</td>
|
||||
<td :class="{warning: durationAttention(log.beginTime, log.endTime)}"><i class="attention icon" v-if="durationAttention(log.beginTime, log.endTime)"></i> {{formatTime(log)}}</td>
|
||||
<td :class="{error: !log.success}">
|
||||
<router-link :to="'/log/'+log.id">{{log.success ? '成功' : '失败'}}</router-link>
|
||||
</td>
|
||||
|
@ -69,6 +69,7 @@
|
|||
|
||||
<script>
|
||||
import Pager from './basic/Pager.vue';
|
||||
import {formatTime, formatDuration} from '../libraries/functions';
|
||||
|
||||
export default {
|
||||
name: 'log',
|
||||
|
@ -161,54 +162,8 @@ export default {
|
|||
return d > 3600000*6;
|
||||
},
|
||||
|
||||
formatDuration: function(beginTime, endTime){
|
||||
var d = new Date(endTime) - new Date(beginTime);
|
||||
var s = '';
|
||||
var day = d/86400000;
|
||||
if (day >= 1) s += day.toString() + ' 天 ';
|
||||
|
||||
d = d%86400000;
|
||||
var hour = d/3600000;
|
||||
if (hour >= 1) s += hour.toString() + ' 小时 ';
|
||||
|
||||
d = d%3600000;
|
||||
var min = d/60000;
|
||||
if (min >= 1) s += min.toString() + ' 分钟 ';
|
||||
|
||||
d = d%60000;
|
||||
var sec = d/1000;
|
||||
if (sec >= 1) s += sec.toString() + ' 秒 ';
|
||||
|
||||
d = d%1000;
|
||||
if (d >= 1) s = d.toString() + ' 毫秒';
|
||||
|
||||
if (s.length == 0) s = "0 毫秒";
|
||||
return s;
|
||||
},
|
||||
|
||||
formatTime: function(beginTime, endTime){
|
||||
var now = new Date();
|
||||
var bt = new Date(beginTime);
|
||||
var et = new Date(endTime);
|
||||
var s = this._formatTime(now, bt) + ' ~ ' + this._formatTime(now, et);
|
||||
return s;
|
||||
},
|
||||
|
||||
_formatTime: function(now, t){
|
||||
var s = '';
|
||||
if (now.getFullYear() != t.getFullYear()) {
|
||||
s += t.getFullYear().toString() + '-';
|
||||
}
|
||||
s += this._formatNumber(t.getMonth()+1, 2).toString() + '-';
|
||||
s += this._formatNumber(t.getDate(), 2) + ' ' + this._formatNumber(t.getHours(), 2) + ':' + this._formatNumber(t.getMinutes(), 2) + ':' + this._formatNumber(t.getSeconds(), 2);
|
||||
return s;
|
||||
},
|
||||
|
||||
// i > 0
|
||||
_formatNumber: function(i, len){
|
||||
var n = i == 0 ? 1 : Math.ceil(Math.log10(i+1));
|
||||
if (n >= len) return i.toString();
|
||||
return '0'.repeat(len-n) + i.toString();
|
||||
formatTime: function(log){
|
||||
return formatTime(log.beginTime, log.endTime)+',于 '+log.node+' 耗时 '+formatDuration(log.beginTime, log.endTime);
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
|
Loading…
Reference in New Issue