diff --git a/src/app/view/admin/components/common-table/common-table.component.html b/src/app/view/admin/components/common-table/common-table.component.html index 7aed052..35a0ab3 100644 --- a/src/app/view/admin/components/common-table/common-table.component.html +++ b/src/app/view/admin/components/common-table/common-table.component.html @@ -9,35 +9,35 @@ [nzScroll]="{x:'1300px'}"> - - - {{headData.fieldName}} + + + {{data.title}} - - + - - + + + *ngTemplateOutlet="template[data.fieldValue].temp; context:getContext(data.fieldValue,index) "> - - {{ getValue(index, headData.fieldValue) }} + + {{ getValue(index, data.fieldValue) }} - - + {{action.name}} - + diff --git a/src/app/view/admin/components/common-table/common-table.component.ts b/src/app/view/admin/components/common-table/common-table.component.ts index 7f9d56c..b9c63bd 100644 --- a/src/app/view/admin/components/common-table/common-table.component.ts +++ b/src/app/view/admin/components/common-table/common-table.component.ts @@ -17,7 +17,7 @@ export class CommonTableComponent implements OnInit, OnChanges { /** * 设置readonly data 因为后面有使用eval 为了安全 */ - @Input() readonly data: Data[]; + @Input() headData: Data[]; @Input() request: RequestObj; @Input() cardTitle: string; @Input() template: { @@ -33,7 +33,7 @@ export class CommonTableComponent implements OnInit, OnChanges { ngOnInit(): void { if (!this.template) this.template = {} - this.data.forEach(dat => { + this.headData.forEach(dat => { if (!dat.action) return; dat.action.forEach(act => { if (!act.hover) { @@ -73,18 +73,14 @@ export class CommonTableComponent implements OnInit, OnChanges { } - getValue(index: number, fieldValue: string) { - let str = `this.dataList.list[${index}].` + fieldValue; - const regexp = /<|>|=|onload|$|{|}|《/ - str = str.replace(regexp, ''); - let value; + getValue(index: number, fieldValue: string): string { + let value = this.dataList.list[index]; try { - // tslint:disable-next-line:no-eval - value = eval(str); + for (const key of fieldValue.split('.')) value = value[key] } catch (e) { - value = null + // ignore } - return (value != null) ? value : '————'; + return (value != null) ? value.toString() : '————'; } getContext = (fieldValue: string, index: number) => { diff --git a/src/app/view/admin/components/common-table/data.ts b/src/app/view/admin/components/common-table/data.ts index 4eb528f..304b9cf 100644 --- a/src/app/view/admin/components/common-table/data.ts +++ b/src/app/view/admin/components/common-table/data.ts @@ -1,7 +1,7 @@ import {TemplateRef} from '@angular/core'; export class Data { - fieldName: string; + title: string; fieldValue: string; show: boolean = true; primaryKey?: boolean = false;