function Log() {}
|
|
Log.prototype.type = ['primary', 'success', 'warn', 'error', 'info'];
|
|
Log.prototype.typeColor = function(type) {
|
let color = '';
|
switch (type) {
|
case 'primary':
|
color = '#2d8cf0';
|
break;
|
case 'success':
|
color = '#19be6b';
|
break;
|
case 'info':
|
color = '#909399';
|
break;
|
case 'warn':
|
color = '#ff9900';
|
break;
|
case 'error':
|
color = '#f03f14';
|
break;
|
default:
|
color = '#35495E';
|
break;
|
}
|
return color;
|
};
|
|
Log.prototype.isArray = function(obj) {
|
return Object.prototype.toString.call(obj) === '[object Array]';
|
};
|
|
Log.prototype.print = function(text, type = 'default', back = false) {
|
if (typeof text === 'object') {
|
// 如果是對象則調用打印對象方式
|
this.isArray(text) ? console.table(text) : console.dir(text);
|
return;
|
}
|
if (back) {
|
// 如果是打印帶背景圖的
|
console.log(`%c ${text} `, `background:${this.typeColor(type)}; padding: 2px; border-radius: 4px; color: #fff;`);
|
} else {
|
console.log(
|
`%c ${text} `,
|
`border: 1px solid ${this.typeColor(type)};
|
padding: 2px; border-radius: 4px;
|
color: ${this.typeColor(type)};`
|
);
|
}
|
};
|
|
Log.prototype.printBack = function(type = 'primary', title) {
|
this.print(type, title, true);
|
};
|
|
Log.prototype.pretty = function(type = 'primary', title, text) {
|
if (typeof text === 'object') {
|
console.group('Console Group', title);
|
console.log(
|
`%c ${title}`,
|
`background:${this.typeColor(type)};border:1px solid ${this.typeColor(type)};
|
padding: 1px; border-radius: 4px; color: #fff;`
|
);
|
this.isArray(text) ? console.table(text) : console.dir(text);
|
console.groupEnd();
|
return;
|
}
|
console.log(
|
`%c ${title} %c ${text} %c`,
|
`background:${this.typeColor(type)};border:1px solid ${this.typeColor(type)};
|
padding: 1px; border-radius: 4px 0 0 4px; color: #fff;`,
|
`border:1px solid ${this.typeColor(type)};
|
padding: 1px; border-radius: 0 4px 4px 0; color: ${this.typeColor(type)};`,
|
'background:transparent'
|
);
|
};
|
|
Log.prototype.prettyPrimary = function(title, ...text) {
|
text.forEach(t => this.pretty('primary', title, t));
|
};
|
|
Log.prototype.prettySuccess = function(title, ...text) {
|
text.forEach(t => this.pretty('success', title, t));
|
};
|
|
Log.prototype.prettyWarn = function(title, ...text) {
|
text.forEach(t => this.pretty('warn', title, t));
|
};
|
|
Log.prototype.prettyError = function(title, ...text) {
|
text.forEach(t => this.pretty('error', title, t));
|
};
|
|
Log.prototype.prettyInfo = function(title, ...text) {
|
text.forEach(t => this.pretty('info', title, t));
|
};
|
|
export default new Log();
|