表格内cron表达式转成需要的时间格式

1.表格内添加 :formatter=""
<el-table-column
label="监视周期"
align="center"
prop="corn"
:formatter="cornFormat"
/>
2.方法
// 频率corn转时间格式
cornFormat(row, column) {
let str = row.corn;
// let str = row.corn; 每行数据的字段
return this.cronChangeDate(str);
},
// corn表达式转时间
cronChangeDate(str) {
console.log(str, 'strstr');
if (str == null) {
return '--';
} else {
var toDate = {};
if (!str) {
toDate.loopType = '单次循环';
} else {
var result = str.split(' ').join('');
var nArr = str.split(' ');
var countData = this.getPlaceholderCount(result);
// console.log(countData, 'countData');
if (countData.count1 === 1 && countData.count2 === 1) {
// 只有一个'?'一个'*'则是按周循环
toDate.loopType = '周';
var keys = nArr[5];
var en2cnMap = {
1: '周日',
2: '周一',
3: '周二',
4: '周三',
5: '周四',
6: '周五',
7: '周六'
};
var cnKeys = keys.split(',').map(function (key, idx) {
return en2cnMap[key];
});
toDate.loopValue = cnKeys.join(',');
} else if (countData.count1 + countData.count2 === 3) {
toDate.loopType = '月';
var mot = [];
var mkeys = nArr[3].split(',');
for (var i = 0; i < mkeys.length; i++) {
let mo = mkeys[i] + '号';
mot.push(mo);
}
toDate.loopValue = mot.join(',');
} else {
toDate.loopType = '日';
}
toDate.loopTime = nArr[2] + ':' + nArr[1] + ':' + nArr[0];
}
let data = '';
if (!toDate.loopValue) {
data = '每' + toDate.loopType + ' ' + toDate.loopTime;
} else {
data =
'每' +
toDate.loopType +
' ' +
toDate.loopValue +
' ' +
toDate.loopTime;
}
return data;
}
},
// 统计字符串中包含某个字符的个数
getPlaceholderCount(strSource) {
var count1 = 0; // ?的个数
var count2 = 0; // *的个数
strSource.replace(/\*|\?/g, function (m, i) {
if (m === '?') {
count1++;
} else if (m === '*') {
count2++;
}
});
var obj = {};
obj.count1 = count1; // ?
obj.count2 = count2; // *
// console.log(obj, 'obj');
return obj; //返回一个对象,根据需要得到想要的值
},

浙公网安备 33010602011771号