UNPKG

bixi

Version:

企业级中后台前端解决方案

71 lines (67 loc) 1.94 kB
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'; @Injectable() 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(@Optional() @Inject(BIXI_TABLE_CONFIG) 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 }; } } } } } }