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 0b1c2f9..9aa373e 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
@@ -26,7 +26,14 @@
nzTooltipPlacement="top"
nz-tooltip>
- {{ getValue(index, headData.fieldValue) }}
+
+
+
+
+
+ {{ getValue(index, headData.fieldValue) }}
+
implements OnInit, OnChanges {
/**
* 设置readonly data 因为后面有使用eval 为了安全 TODO
*/
- @Input() readonly data: Data[]
- @Input() request: RequestObj
- @Input() cardTitle: string
+ @Input() readonly data: Data[];
+ @Input() request: RequestObj;
+ @Input() cardTitle: string;
+ @Input() template: {
+ [fieldValue: string]: {
+ temp: TemplateRef,
+ param?: { [key: string]: string }
+ }
+ };
loading: boolean = true;
dataList: PageList = new PageList();
@@ -58,6 +64,23 @@ export class CommonTableComponent implements OnInit, OnChanges {
getValue(index: number, fieldValue: string) {
// todo: 过滤
// tslint:disable-next-line:no-eval
- return eval(`this.dataList.list[${index}].` + fieldValue);
+ const value = eval(`this.dataList.list[${index}].` + fieldValue);
+ return value ? value : '暂无数据';
+ }
+
+ getContext = (fieldValue: string, index: number) => {
+ const valueData = this.getValue(index, fieldValue);
+ let context: { value: string, originValue?: string };
+ if (this.template[fieldValue].param) {
+ context = {
+ value: this.template[fieldValue].param[valueData],
+ originValue: valueData
+ }
+ } else {
+ context = {
+ value: valueData
+ }
+ }
+ return context;
}
}
diff --git a/src/app/view/admin/components/common-table/common-table.module.ts b/src/app/view/admin/components/common-table/common-table.module.ts
index e546f2a..4244f58 100644
--- a/src/app/view/admin/components/common-table/common-table.module.ts
+++ b/src/app/view/admin/components/common-table/common-table.module.ts
@@ -4,7 +4,7 @@ import {CommonTableComponent} from './common-table.component';
import {
NzCardModule,
NzDividerModule,
- NzIconModule,
+ NzIconModule, NzOutletModule,
NzTableModule,
NzToolTipModule,
NzTypographyModule
@@ -25,7 +25,8 @@ import {
NzTypographyModule,
NzToolTipModule,
NzCardModule,
- NzIconModule
+ NzIconModule,
+ NzOutletModule
]
})
export class CommonTableModule {
diff --git a/src/app/view/admin/components/common-table/data.ts b/src/app/view/admin/components/common-table/data.ts
index 83a6c7b..421f3bb 100644
--- a/src/app/view/admin/components/common-table/data.ts
+++ b/src/app/view/admin/components/common-table/data.ts
@@ -1,10 +1,18 @@
+import {TemplateRef} from '@angular/core';
+
export class Data {
fieldName: string;
fieldValue: string;
show: boolean = true;
primaryKey?: boolean = false;
isActionColumns?: boolean = false;
- action?: {
+ template?: {
+ template: TemplateRef,
+ keymap?: {
+ [value: string]: string
+ }
+ };
+ action ?: {
name: string,
color?: string,
order?: number,
diff --git a/src/app/view/admin/test-common-table/test-common-table.component.html b/src/app/view/admin/test-common-table/test-common-table.component.html
index 09d986b..c02b31e 100644
--- a/src/app/view/admin/test-common-table/test-common-table.component.html
+++ b/src/app/view/admin/test-common-table/test-common-table.component.html
@@ -1 +1,23 @@
-
+
+
+
+ {{value}}
+
+
+
+ {{value}}
+
+
+
+ {{value}}
+
+
+
+
+
diff --git a/src/app/view/admin/test-common-table/test-common-table.component.ts b/src/app/view/admin/test-common-table/test-common-table.component.ts
index b02b194..035aae1 100644
--- a/src/app/view/admin/test-common-table/test-common-table.component.ts
+++ b/src/app/view/admin/test-common-table/test-common-table.component.ts
@@ -1,4 +1,4 @@
-import {Component, OnInit} from '@angular/core';
+import {Component, OnInit, TemplateRef, ViewChild} from '@angular/core';
import {Data} from '../components/common-table/data';
import {Article} from '../../../class/Article';
import {RequestObj} from '../../../class/HttpReqAndResp';
@@ -24,6 +24,8 @@ summary: a
tags: [{id: 26, name: "脚本"}, {id: 27, name: "网课"}]
title: "教你动手写一个刷课脚本"
updateDateFormat: "2020-05-27 00:55:05"*/
+ // @ViewChild('tag') tagTemp: TemplateRef;
+
constructor() {
this.data = [
{fieldName: '主键', fieldValue: 'id', show: false, primaryKey: true},
diff --git a/src/app/view/admin/test-common-table/test-common-table.module.ts b/src/app/view/admin/test-common-table/test-common-table.module.ts
index 97f6e8e..7d9aced 100644
--- a/src/app/view/admin/test-common-table/test-common-table.module.ts
+++ b/src/app/view/admin/test-common-table/test-common-table.module.ts
@@ -3,6 +3,8 @@ import {CommonModule} from '@angular/common';
import {TestCommonTableComponent} from './test-common-table.component';
import {Router, RouterModule} from '@angular/router';
import {CommonTableModule} from '../components/common-table/common-table.module';
+import {NzCheckboxModule, NzTagModule} from 'ng-zorro-antd';
+import {FormsModule} from '@angular/forms';
@NgModule({
@@ -10,7 +12,10 @@ import {CommonTableModule} from '../components/common-table/common-table.module'
imports: [
CommonModule,
RouterModule.forChild([{path: '', component: TestCommonTableComponent}]),
- CommonTableModule
+ CommonTableModule,
+ NzTagModule,
+ NzCheckboxModule,
+ FormsModule
]
})
export class TestCommonTableModule {