@@ -14,6 +14,7 @@ import { UserAuthService } from 'src/app/services/user-auth.service';
1414import { Buffer } from 'buffer' ;
1515import { WebAnalyticsService } from 'src/app/services/web-analytics.service' ;
1616import { ClrDatagridStringFilterInterface } from '@clr/angular' ;
17+ import { forEach } from 'lodash' ;
1718declare function dateTransfer ( time : any ) : any ;
1819
1920export class CreateTimeFilter implements ClrDatagridStringFilterInterface < any > {
@@ -54,7 +55,7 @@ export class TaskDatagridComponent implements OnInit {
5455 showGenerateDatasets = false ;
5556 editProjectDialog = false ;
5657 msgEdit : any ;
57- createDateFilter = new CreateTimeFilter ( ) ;
58+ createDateFilter = new CreateTimeFilter ( )
5859
5960 constructor (
6061 private router : Router ,
@@ -80,53 +81,25 @@ export class TaskDatagridComponent implements OnInit {
8081 this . apiService . getProjects ( param ) . subscribe (
8182 ( res ) => {
8283 this . loading = false ;
83- for ( let i = 0 ; i < res . length ; i ++ ) {
84- if ( res [ i ] . creator . indexOf ( this . user . email ) > - 1 ) {
85- res [ i ] . allowOwnerReview = true ;
86- }
87- if ( res [ i ] . annotator . indexOf ( this . user . email ) > - 1 ) {
88- res [ i ] . allowStart = true ;
89- }
90- for ( let j = 0 ; j < res [ i ] . userCompleteCase . length ; j ++ ) {
91- if ( res [ i ] . userCompleteCase [ j ] . completeCase > 0 ) {
92- res [ i ] . disableReview = true ;
93- break ;
94- }
95- }
96- // res[i].isExtend = true;
97- //start to array annotators's first letter
98- let firstLetter = [ ] ;
99- for ( let j = 0 ; j < res [ i ] . annotator . length ; j ++ ) {
100- firstLetter . push ( res [ i ] . annotator [ j ] . slice ( 0 , 1 ) . toUpperCase ( ) ) ;
101- }
102- res [ i ] . firstLetter = firstLetter ;
103- //start to array creator's first letter
104- let firstLetterOwner = [ ] ;
105- for ( let z = 0 ; z < res [ i ] . creator . length ; z ++ ) {
106- firstLetterOwner . push ( res [ i ] . creator [ z ] . slice ( 0 , 1 ) . toUpperCase ( ) ) ;
107- }
108- res [ i ] . firstLetterOwner = firstLetterOwner ;
109- }
110- this . projects = res ;
111- this . projects . forEach ( ( item ) => {
112- if ( item . labelType == 'numericLabel' && item . isMultipleLabel ) {
113- const categoryList = JSON . parse ( item . categoryList ) ;
114- const itemKeys = [ ] ;
115- categoryList . forEach ( ( element ) => {
116- const labels = Object . keys ( element ) ;
117- itemKeys . push ( labels [ 0 ] ) ;
118- } ) ;
119- item . mutilNumbericLabels = itemKeys . toString ( ) ;
120- }
121- if ( item . labelType === 'HTL' ) {
122- item . categoryList = JSON . parse ( item . categoryList ) ;
123- }
124- // calculate the progress
125- item . progress =
126- item . projectCompleteCase === item . totalCase
127- ? 100
128- : Math . round ( ( item . projectCompleteCase / item . totalCase ) * 100 ) ;
84+ this . projects = res . map ( ( item ) => {
85+ return {
86+ ...item ,
87+ allowOwnerReview : item . creator . includes ( this . user . email ) ,
88+ allowStart : item . annotator . includes ( this . user . email ) ,
89+ userCompleteCase : this . dealDisableReview ( item ?. userCompleteCase ) ,
90+ firstLetter : this . dealFirstLetter ( item ?. annotator ) ,
91+ firstLetterOwner : this . dealFirstLetter ( item ?. creator ) ,
92+ mutilNumbericLabels : this . dealMutilNumbericLabels ( item ) ,
93+ categoryList : item . labelType === 'HTL' ? JSON . parse ( item . categoryList ) : item . categoryList ,
94+ progress :
95+ item . projectCompleteCase === item . totalCase
96+ ? 100
97+ : Math . round ( ( item . projectCompleteCase / item . totalCase ) * 100 ) ,
98+ showButByShare : ! item . creator . includes ( this . user . email )
99+ } ;
129100 } ) ;
101+
102+ console . log ( 'table数据' , this . projects ) ;
130103 this . totalItems = res . length ;
131104 } ,
132105 ( error : any ) => {
@@ -135,7 +108,29 @@ export class TaskDatagridComponent implements OnInit {
135108 } ,
136109 ) ;
137110 }
138-
111+ dealMutilNumbericLabels ( item ) {
112+ if ( item ?. labelType === 'numericLabel' && item ?. isMultipleLabel ) {
113+ const categoryList = JSON . parse ( item . categoryList ) ;
114+ const itemKeys = [ ] ;
115+ categoryList . forEach ( ( element ) => {
116+ const labels = Object . keys ( element ) ;
117+ itemKeys . push ( labels [ 0 ] ) ;
118+ } ) ;
119+ return itemKeys . toString ( ) ;
120+ }
121+ }
122+ dealFirstLetter ( data ) {
123+ let firstLetter = [ ] ;
124+ data . map ( ( item ) => {
125+ firstLetter . push ( item . slice ( 0 , 1 ) . toUpperCase ( ) ) ;
126+ } ) ;
127+ return firstLetter ;
128+ }
129+ dealDisableReview ( data ) {
130+ data . forEach ( ( item ) => {
131+ item . disableReview = item . completeCase > 0 ;
132+ } ) ;
133+ }
139134 getChildren = ( folder ) => folder . children ;
140135
141136 clickTreeView ( data ) {
0 commit comments