80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /* eslint-disable import/order */
 | |
| import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core';
 | |
| import { throwIfAlreadyLoaded } from '@core';
 | |
| import { ReuseTabMatchMode, ReuseTabService, ReuseTabStrategy } from '@delon/abc/reuse-tab';
 | |
| import { DelonACLModule } from '@delon/acl';
 | |
| import { AlainThemeModule } from '@delon/theme';
 | |
| import { AlainConfig, ALAIN_CONFIG } from '@delon/util';
 | |
| import { environment } from '@env/environment';
 | |
| 
 | |
| // Please refer to: https://ng-alain.com/docs/global-config
 | |
| // #region NG-ALAIN Config
 | |
| 
 | |
| const alainConfig: AlainConfig = {
 | |
|   st: {
 | |
|     req: { method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } },
 | |
|     res: { reName: { list: 'data.records', total: 'data.total' } },
 | |
|     page: { show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000], toTop: false },
 | |
|     modal: { size: 'lg' }
 | |
|   },
 | |
|   sf: { button: { search: '查询' } },
 | |
|   pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true },
 | |
|   auth: { login_url: '/passport/login' },
 | |
|   acl: { guard_url: '/exception/403' },
 | |
|   chart: {
 | |
|     // 以下是默认配置,如果项目无法外网访问,可以根据 `angular.json` 配置将依赖包直接使用 `./assets***` 路径
 | |
|     libs: [
 | |
|       'https://gw.alipayobjects.com/os/lib/antv/g2/4.1.4/dist/g2.min.js',
 | |
|       'https://gw.alipayobjects.com/os/lib/antv/data-set/0.11.7/dist/data-set.js'
 | |
|     ]
 | |
|   },
 | |
| };
 | |
| 
 | |
| const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()];
 | |
| const alainProvides = [{ provide: ALAIN_CONFIG, useValue: alainConfig }];
 | |
| 
 | |
| // #region reuse-tab
 | |
| 
 | |
| // import { RouteReuseStrategy } from '@angular/router';
 | |
| // alainProvides.push({
 | |
| //   provide: RouteReuseStrategy,
 | |
| //   useClass: ReuseTabStrategy,
 | |
| //   deps: [ReuseTabService]
 | |
| // } as any);
 | |
| 
 | |
| // #endregion
 | |
| 
 | |
| // #endregion
 | |
| 
 | |
| // Please refer to: https://ng.ant.design/docs/global-config/en#how-to-use
 | |
| // #region NG-ZORRO Config
 | |
| 
 | |
| import { NzConfig, NZ_CONFIG } from 'ng-zorro-antd/core/config';
 | |
| 
 | |
| const ngZorroConfig: NzConfig = {};
 | |
| 
 | |
| const zorroProvides = [{ provide: NZ_CONFIG, useValue: ngZorroConfig }];
 | |
| 
 | |
| // #endregion
 | |
| 
 | |
| @NgModule({
 | |
|   imports: [...alainModules, ...(environment.modules || [])]
 | |
| })
 | |
| export class GlobalConfigModule {
 | |
|   constructor(@Optional() @SkipSelf() parentModule: GlobalConfigModule, reuseTabService: ReuseTabService) {
 | |
|     throwIfAlreadyLoaded(parentModule, 'GlobalConfigModule');
 | |
|     // NOTICE: Only valid for menus with reuse property
 | |
|     // Pls refer to the E-Mail demo effect
 | |
|     // reuseTabService.mode = ReuseTabMatchMode.MenuForce;
 | |
|     // Shouled be trigger init, you can ingore when used `reuse-tab` component in layout component
 | |
|     // reuseTabService.init();
 | |
|   }
 | |
| 
 | |
|   static forRoot(): ModuleWithProviders<GlobalConfigModule> {
 | |
|     return {
 | |
|       ngModule: GlobalConfigModule,
 | |
|       providers: [...alainProvides, ...zorroProvides]
 | |
|     };
 | |
|   }
 | |
| }
 |