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]
|
|
};
|
|
}
|
|
}
|