bixi
Version:
企业级中后台前端解决方案
71 lines (67 loc) • 1.94 kB
text/typescript
import { Inject, Injectable, Optional } from '@angular/core';
import { get, has, isString } from '@bixi/core/utils';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { BIXI_TABLE_CONFIG } from '../table.token';
import { IBixiTableConfig, IBixiTableStatusConfig, IBixiTableStatusConfigCustom } from '../table.type';
export class ColStatusService {
defaultStatus: NzSafeAny = {
// green
'success': {
text: '已完成',
class: 'bixi-col-success-status'
},
// blue
'processing': {
text: '正在执行',
class: 'bixi-col-processing-status'
},
// red
'error': {
text: '异常',
class: 'bixi-col-error-status'
},
// default
'default': {
text: '等待执行',
class: 'bixi-col-default-status'
},
// orange
'stop': {
text: '已终止',
class: 'bixi-col-stop-status'
}
};
constructor( private bixiTableConfig: IBixiTableConfig) {
}
mergeTableConfig() {
const statusConfig = get(this.bixiTableConfig, 'status', {} as IBixiTableStatusConfig);
for (const key in statusConfig) {
if (has(statusConfig, key)) {
const val = statusConfig[key];
if (isString(val)) {
// 默认内置 status
this.defaultStatus[key] = { ...this.defaultStatus[val as string] };
} else {
const value = val as IBixiTableStatusConfigCustom;
// 自定义 status
if (value.className) {
// 包含 className
this.defaultStatus[key] = {
class: value.className,
text: value.text
};
}
if (value.style) {
// 包含 style
this.defaultStatus[key] = {
class: 'status',
text: value.text,
style: value.style
};
}
}
}
}
}
}