import { APP_INITIALIZER, ApplicationConfig, importProvidersFrom } from '@angular/core' import { provideRouter } from '@angular/router' import { registerLocaleData } from '@angular/common' import zh from '@angular/common/locales/zh' import { FormsModule } from '@angular/forms' import { HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http' import { provideAnimations } from '@angular/platform-browser/animations' import { zh_CN, provideNzI18n } from 'ng-zorro-antd/i18n' import { routes } from './app.routes' import { LocalHttpInterceptorService } from './services' import { PermissionModule } from './shared/permission/permission.module' import { TINYMCE_SCRIPT_SRC } from '@tinymce/tinymce-angular' import { ServerPaginatedTableService } from './shared/components/server-paginated-table' registerLocaleData(zh) export function initializeApp(configService: ServerPaginatedTableService) { return () => { configService.initial() configService.setConfig({ formatPaginationData(v) { return { pageNum: v.pageIndex, pageSize: v.pageSize, } }, formatServiceData(v) { // console.log('【formatServiceData】', v) return { total: v.body.total, // totalPages: Math.ceil(v.body.rows / 5), totalPages: 0, data: v.body.rows ?? v.body.records, } }, }) } } export const appConfig: ApplicationConfig = { providers: [ provideRouter(routes), provideNzI18n(zh_CN), importProvidersFrom(FormsModule), importProvidersFrom(HttpClientModule), importProvidersFrom(PermissionModule.forRoot()), provideAnimations(), { provide: HTTP_INTERCEPTORS, useClass: LocalHttpInterceptorService, multi: true, }, { provide: APP_INITIALIZER, useFactory: initializeApp, deps: [ServerPaginatedTableService], multi: true, }, { provide: TINYMCE_SCRIPT_SRC, useValue: 'tinymce/tinymce.min.js' }, ], }