-
-
- 已选择
- {{ selectedRows.length }} 项 服务调用总计 {{ totalCallNo
- }} 万
- 0" (click)="st.clearCheck()" class="ml-lg">清空
-
-
+
+
+
-
-
-
-
-
-
-
-
- 描述
-
-
-
-
-
\ No newline at end of file
+
diff --git a/src/app/routes/dashboard/dashboard.component.ts b/src/app/routes/dashboard/dashboard.component.ts
index 35a69bcf..a069694d 100644
--- a/src/app/routes/dashboard/dashboard.component.ts
+++ b/src/app/routes/dashboard/dashboard.component.ts
@@ -1,9 +1,10 @@
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, TemplateRef, ViewChild } from '@angular/core';
import { STComponent, STColumn, STData, STChange } from '@delon/abc/st';
+import { SFSchema, SFUISchema } from '@delon/form';
import { _HttpClient } from '@delon/theme';
import { NzSafeAny } from 'ng-zorro-antd/core/types';
import { NzMessageService } from 'ng-zorro-antd/message';
-import { NzModalService } from 'ng-zorro-antd/modal';
+import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map, tap } from 'rxjs/operators';
@Component({
@@ -13,154 +14,53 @@ import { map, tap } from 'rxjs/operators';
changeDetection: ChangeDetectionStrategy.OnPush
})
export class DashboardComponent {
- q: {
- pi: number;
- ps: number;
- no: string;
- sorter: string;
- status: number | null;
- statusList: NzSafeAny[];
- } = {
- pi: 1,
- ps: 10,
- no: '',
- sorter: '',
- status: null,
- statusList: []
+ @ViewChild('sf')
+ sf!: SFSchema;
+ record: any = {};
+ i: any;
+ schema: any = {
+ properties: {
+ no: { type: 'string', title: '编号' },
+ owner: { type: 'string', title: '姓名' },
+ callNo: { type: 'number', title: '调用次数' },
+ href: { type: 'string', title: '链接', format: 'uri', ui: { errors: { uri: '11' } } },
+ description: { type: 'string', title: '描述' }
+ },
+ required: ['owner', 'callNo', 'href', 'description']
};
- data: any[] = [];
- loading = false;
- status = [
- { index: 0, text: '关闭', value: false, type: 'default', checked: false },
- {
- index: 1,
- text: '运行中',
- value: false,
- type: 'processing',
- checked: false
+ ui: SFUISchema = {
+ '*': {
+ spanLabelFixed: 100,
+ grid: { span: 12 }
},
- { index: 2, text: '已上线', value: false, type: 'success', checked: false },
- { index: 3, text: '异常', value: false, type: 'error', checked: false }
- ];
- @ViewChild('st', { static: true })
- st!: STComponent;
- columns: STColumn[] = [
- { title: '', index: 'key', type: 'checkbox' },
- { title: '规则编号', index: 'no' },
- { title: '描述', index: 'description' },
- {
- title: '服务调用次数',
- index: 'callNo',
- type: 'number',
- format: item => `${item.callNo} 万`,
- sort: {
- compare: (a, b) => a.callNo - b.callNo
- }
+ $no: {
+ widget: 'text'
},
- {
- title: '状态',
- index: 'status',
- render: 'status',
- filter: {
- menus: this.status,
- fn: (filter, record) => record.status === filter.index
- }
+ $href: {
+ widget: 'string'
},
- {
- title: '更新时间',
- index: 'updatedAt',
- type: 'date',
- sort: {
- compare: (a, b) => a.updatedAt - b.updatedAt
- }
- },
- {
- title: '操作',
- buttons: [
- {
- text: '配置',
- click: item => this.msg.success(`配置${item.no}`)
- },
- {
- text: '订阅警报',
- click: item => this.msg.success(`订阅警报${item.no}`)
- }
- ]
+ $description: {
+ widget: 'textarea',
+ grid: { span: 24 }
}
- ];
- selectedRows: STData[] = [];
- description = '';
- totalCallNo = 0;
- expandForm = false;
+ };
- constructor(private http: _HttpClient, public msg: NzMessageService, private modalSrv: NzModalService, private cdr: ChangeDetectorRef) {}
+ constructor(private msgSrv: NzMessageService, public http: _HttpClient) {}
ngOnInit(): void {
- this.getData();
+ // if (this.record.id > 0) this.http.get(`/user/${this.record.id}`).subscribe(res => (this.i = res));
}
- getData(): void {
- this.loading = true;
- this.q.statusList = this.status.filter(w => w.checked).map(item => item.index);
- if (this.q.status !== null && this.q.status > -1) {
- this.q.statusList.push(this.q.status);
- }
- this.http
- .get('/rule?_allow_anonymous=true', this.q)
- .pipe(
- map((list: Array<{ status: number; statusText: string; statusType: string }>) =>
- list.map(i => {
- const statusItem = this.status[i.status];
- i.statusText = statusItem.text;
- i.statusType = statusItem.type;
- return i;
- })
- ),
- tap(() => (this.loading = false))
- )
- .subscribe(res => {
- this.data = res;
- this.cdr.detectChanges();
- });
+ save(value: any): void {
+ console.log(this.sf.value);
+
+ // this.http.post(`/user/${this.record.id}`, value).subscribe(res => {
+ // this.msgSrv.success('保存成功');
+ // // this.modal.close(true);
+ // });
}
- stChange(e: STChange): void {
- switch (e.type) {
- case 'checkbox':
- this.selectedRows = e.checkbox!;
- this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.callNo, 0);
- this.cdr.detectChanges();
- break;
- case 'filter':
- this.getData();
- break;
- }
- }
-
- remove(): void {
- this.http.delete('/rule', { nos: this.selectedRows.map(i => i.no).join(',') }).subscribe(() => {
- this.getData();
- this.st.clearCheck();
- });
- }
-
- approval(): void {
- this.msg.success(`审批了 ${this.selectedRows.length} 笔`);
- }
-
- add(tpl: TemplateRef<{}>): void {
- this.modalSrv.create({
- nzTitle: '新建规则',
- nzContent: tpl,
- nzOnOk: () => {
- this.loading = true;
- this.http.post('/rule', { description: this.description }).subscribe(() => this.getData());
- }
- });
- }
-
- reset(): void {
- // wait form reset updated finished
- setTimeout(() => this.getData());
+ close(): void {
+ // this.modal.destroy();
}
}
diff --git a/src/app/routes/demo/components/alian-demo/alian-demo.component.html b/src/app/routes/demo/components/alian-demo/alian-demo.component.html
new file mode 100644
index 00000000..e2acb3be
--- /dev/null
+++ b/src/app/routes/demo/components/alian-demo/alian-demo.component.html
@@ -0,0 +1,44 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0">
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/demo/components/alian-demo/alian-demo.component.less b/src/app/routes/demo/components/alian-demo/alian-demo.component.less
new file mode 100644
index 00000000..73710dfa
--- /dev/null
+++ b/src/app/routes/demo/components/alian-demo/alian-demo.component.less
@@ -0,0 +1,5 @@
+:host::ng-deep {
+ nz-range-picker {
+ width: 100%;
+ }
+}
\ No newline at end of file
diff --git a/src/app/routes/demo/components/alian-demo/alian-demo.component.ts b/src/app/routes/demo/components/alian-demo/alian-demo.component.ts
new file mode 100644
index 00000000..0dbbe39c
--- /dev/null
+++ b/src/app/routes/demo/components/alian-demo/alian-demo.component.ts
@@ -0,0 +1,206 @@
+import { Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
+import { STComponent, STColumn, STChange } from '@delon/abc/st';
+import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
+import { _HttpClient, ModalHelper } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { DemoService } from '../../services/demo.service';
+import { DemoEditComponent } from '../zorro-demo/edit/edit.component';
+
+@Component({
+ selector: 'app-alian-demo',
+ templateUrl: './alian-demo.component.html',
+ styleUrls: ['./alian-demo.component.less']
+})
+export class AlianDemoComponent implements OnInit {
+ url = `/rule?_allow_anonymous=true`;
+
+ status = [
+ { index: 0, text: '关闭', value: false, type: 'default', checked: false },
+ {
+ index: 1,
+ text: '运行中',
+ value: false,
+ type: 'processing',
+ checked: false
+ },
+ { index: 2, text: '已上线', value: false, type: 'success', checked: false },
+ { index: 3, text: '异常', value: false, type: 'error', checked: false }
+ ];
+ @ViewChild('st', { static: true })
+ st!: STComponent;
+ @ViewChild('sf', { static: false })
+ sf!: SFComponent;
+ columns: STColumn[] = [
+ { title: '', index: 'key', type: 'checkbox' },
+ { title: '规则编号', index: 'no' },
+ { title: '描述', index: 'description' },
+ {
+ title: '服务调用次数',
+ index: 'callNo',
+ type: 'number',
+ format: item => `${item.callNo} 万`,
+ sort: {
+ compare: (a, b) => a.callNo - b.callNo
+ }
+ },
+ {
+ title: '状态',
+ index: 'status',
+ render: 'status',
+ filter: {
+ menus: this.status,
+ fn: (filter, record) => record.status === filter.index
+ }
+ },
+ {
+ title: '更新时间',
+ index: 'updatedAt',
+ type: 'date',
+ sort: {
+ compare: (a, b) => a.updatedAt - b.updatedAt
+ }
+ },
+ {
+ title: '操作',
+ buttons: [
+ {
+ text: '修改',
+ click: item => this.edit(item)
+ },
+ {
+ text: '删除',
+ click: item => this.delete(item)
+ }
+ ]
+ }
+ ];
+ searchSchema: SFSchema = {
+ properties: {
+ expand: {
+ type: 'boolean',
+ ui: {
+ hidden: true
+ }
+ },
+ orderSn: {
+ type: 'string',
+ title: '订单号',
+ ui: {
+ autocomplete: 'off'
+ }
+ },
+ receiveName: {
+ type: 'string',
+ title: '收件人'
+ },
+ receiveMobile: {
+ type: 'string',
+ title: '收件人电话'
+ },
+ tenantName: {
+ type: 'string',
+ title: '下单商家',
+ ui: {
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ }
+ },
+ createTime: {
+ title: '下单时间',
+ type: 'string',
+ ui: {
+ widget: 'date',
+ mode: 'range',
+ format: 'yyyy-MM-dd',
+ visibleIf: {
+ expand: (value: boolean) => value
+ }
+ } as SFDateWidgetSchema
+ }
+ }
+ };
+
+ ui: SFUISchema = {
+ '*': {
+ spanLabelFixed: 90,
+ grid: { span: 8, gutter: 4 }
+ },
+ $orderSn: {
+ grid: { span: 8 }
+ },
+ $receiveName: {
+ grid: { span: 8 }
+ },
+ $createTime: { grid: { span: 8 } }
+ };
+ _$expand = false;
+
+ selectedRows: any[] = [];
+ totalCallNo = 0;
+ constructor(public service: DemoService, public msg: NzMessageService, private modal: ModalHelper) {}
+
+ ngOnInit(): void {}
+
+ stChange(e: STChange): void {
+ switch (e.type) {
+ case 'checkbox':
+ this.selectedRows = e.checkbox!;
+ this.totalCallNo = this.selectedRows.reduce((total, cv) => total + cv.callNo, 0);
+ break;
+ case 'filter':
+ this.st.load();
+ break;
+ }
+ }
+
+ remove(): void {
+ this.service.request('/delete/rule?_allow_anonymous=true', { nos: this.selectedRows.map(i => i.no).join(',') }).subscribe(() => {
+ this.st.load();
+ this.st.clearCheck();
+ });
+ }
+
+ approval(): void {
+ this.msg.success(`审批了 ${this.selectedRows.length} 笔`);
+ }
+
+ add(): void {
+ this.modal.createStatic(DemoEditComponent, { i: { id: 0 } }).subscribe(res => {
+ if (res) {
+ console.log(res);
+ }
+ });
+ }
+
+ edit(item: any) {
+ this.modal
+ .createStatic(DemoEditComponent, { i: { no: 1, owner: '22222', callNo: 111, status: 1, description: '222' } })
+ .subscribe(res => {
+ if (res) {
+ this.st.setRow(item, res);
+ }
+ });
+ }
+
+ delete(item: any) {
+ this.st.removeRow(item);
+ }
+
+ /**
+ * 重置表单
+ */
+ resetSF() {
+ this.sf.reset();
+ this._$expand = false;
+ }
+
+ /**
+ * 伸缩查询条件
+ */
+ expandToggle() {
+ this._$expand = !this._$expand;
+ this.sf?.setValue('/expand', this._$expand);
+ }
+}
diff --git a/src/app/routes/demo/components/zorro-demo/edit/edit.component.html b/src/app/routes/demo/components/zorro-demo/edit/edit.component.html
new file mode 100644
index 00000000..97f50494
--- /dev/null
+++ b/src/app/routes/demo/components/zorro-demo/edit/edit.component.html
@@ -0,0 +1,10 @@
+
+
+
+
+
diff --git a/src/app/routes/demo/components/zorro-demo/edit/edit.component.spec.ts b/src/app/routes/demo/components/zorro-demo/edit/edit.component.spec.ts
new file mode 100644
index 00000000..5fa67a8b
--- /dev/null
+++ b/src/app/routes/demo/components/zorro-demo/edit/edit.component.spec.ts
@@ -0,0 +1,24 @@
+import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
+import { DemoEditComponent } from './edit.component';
+
+describe('DemoEditComponent', () => {
+ let component: DemoEditComponent;
+ let fixture: ComponentFixture
;
+
+ beforeEach(waitForAsync(() => {
+ TestBed.configureTestingModule({
+ declarations: [ DemoEditComponent ]
+ })
+ .compileComponents();
+ }));
+
+ beforeEach(() => {
+ fixture = TestBed.createComponent(DemoEditComponent);
+ component = fixture.componentInstance;
+ fixture.detectChanges();
+ });
+
+ it('should create', () => {
+ expect(component).toBeTruthy();
+ });
+});
diff --git a/src/app/routes/demo/components/zorro-demo/edit/edit.component.ts b/src/app/routes/demo/components/zorro-demo/edit/edit.component.ts
new file mode 100644
index 00000000..989ed27f
--- /dev/null
+++ b/src/app/routes/demo/components/zorro-demo/edit/edit.component.ts
@@ -0,0 +1,63 @@
+import { Component, OnInit } from '@angular/core';
+import { SFSchema, SFUISchema } from '@delon/form';
+import { _HttpClient } from '@delon/theme';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalRef } from 'ng-zorro-antd/modal';
+
+@Component({
+ selector: 'app-demo-edit',
+ templateUrl: './edit.component.html',
+})
+export class DemoEditComponent implements OnInit {
+ record: any = {};
+ i: any;
+ schema: SFSchema = {
+ properties: {
+ no: { type: 'string', title: '编号' },
+ owner: { type: 'string', title: '姓名', maxLength: 15 },
+ callNo: { type: 'number', title: '调用次数' },
+ status: { type: 'number', title: '链接' },
+ description: { type: 'string', title: '描述', maxLength: 140 },
+ },
+ required: ['owner', 'callNo', 'description'],
+ };
+ ui: SFUISchema = {
+ '*': {
+ spanLabelFixed: 100,
+ grid: { span: 12 },
+ },
+ $no: {
+ widget: 'text'
+ },
+ $href: {
+ widget: 'string',
+ },
+ $description: {
+ widget: 'textarea',
+ grid: { span: 24 },
+ },
+ };
+
+ constructor(
+ private modal: NzModalRef,
+ private msgSrv: NzMessageService,
+ public http: _HttpClient,
+ ) {}
+
+ ngOnInit(): void {
+ if (this.record.id > 0)
+ this.http.get(`/user/${this.record.id}`).subscribe(res => (this.i = res));
+ }
+
+ save(value: any): void {
+ this.modal.close(value);
+ // this.http.post(`/user/${this.record.id}`, value).subscribe(res => {
+ // this.msgSrv.success('保存成功');
+ // this.modal.close(true);
+ // });
+ }
+
+ close(): void {
+ this.modal.destroy();
+ }
+}
diff --git a/src/app/routes/demo/components/zorro-demo/zorro-demo.component.html b/src/app/routes/demo/components/zorro-demo/zorro-demo.component.html
new file mode 100644
index 00000000..ec55f6ee
--- /dev/null
+++ b/src/app/routes/demo/components/zorro-demo/zorro-demo.component.html
@@ -0,0 +1,129 @@
+
+
+
+
+
+
+ 0">
+
+
+
+
+
+
+
+
+
+
+
+ |
+ |
+ No |
+ Name |
+ Description |
+ Option |
+
+
+
+
+ |
+ |
+ {{ data.no }} |
+ {{ data.callNo }} |
+ {{ data.description }} |
+
+ Edit
+
+ Delete
+ |
+
+
+
+
+
+
+
+
+
+ 描述
+
+
+
+
+
\ No newline at end of file
diff --git a/src/app/routes/demo/components/zorro-demo/zorro-demo.component.less b/src/app/routes/demo/components/zorro-demo/zorro-demo.component.less
new file mode 100644
index 00000000..e69de29b
diff --git a/src/app/routes/demo/components/zorro-demo/zorro-demo.component.ts b/src/app/routes/demo/components/zorro-demo/zorro-demo.component.ts
new file mode 100644
index 00000000..cef1b137
--- /dev/null
+++ b/src/app/routes/demo/components/zorro-demo/zorro-demo.component.ts
@@ -0,0 +1,161 @@
+import { ChangeDetectorRef, Component, OnInit, TemplateRef } from '@angular/core';
+import { NzSafeAny } from 'ng-zorro-antd/core/types';
+import { NzMessageService } from 'ng-zorro-antd/message';
+import { NzModalService } from 'ng-zorro-antd/modal';
+import { map, tap } from 'rxjs/operators';
+import { DemoService } from '../../services/demo.service';
+
+@Component({
+ selector: 'app-zorro-demo',
+ templateUrl: './zorro-demo.component.html',
+ styleUrls: ['./zorro-demo.component.less']
+})
+export class ZorroDemoComponent implements OnInit {
+ data: any[] = [];
+ loading = false;
+ expandForm = false;
+
+ q: {
+ pi: number;
+ ps: number;
+ no: string;
+ sorter: string;
+ status: number | null;
+ statusList: NzSafeAny[];
+ } = {
+ pi: 1,
+ ps: 10,
+ no: '',
+ sorter: '',
+ status: null,
+ statusList: []
+ };
+
+ status = [
+ { index: 0, text: '关闭', value: false, type: 'default', checked: false },
+ {
+ index: 1,
+ text: '运行中',
+ value: false,
+ type: 'processing',
+ checked: false
+ },
+ { index: 2, text: '已上线', value: false, type: 'success', checked: false },
+ { index: 3, text: '异常', value: false, type: 'error', checked: false }
+ ];
+
+ selectedRows: any[] = [];
+ totalCallNo = 0;
+ description: string = '';
+ checkedAll = false;
+ indeterminate = false;
+ constructor(
+ private service: DemoService,
+ public msg: NzMessageService,
+ private modalSrv: NzModalService,
+ private cdr: ChangeDetectorRef
+ ) {}
+
+ ngOnInit(): void {
+ this.getData();
+ }
+
+ getData(): void {
+ this.loading = true;
+ this.q.statusList = this.status.filter(w => w.checked).map(item => item.index);
+ if (this.q.status !== null && this.q.status > -1) {
+ this.q.statusList.push(this.q.status);
+ }
+ this.service
+ .request('/rule?_allow_anonymous=true', this.q)
+ .pipe(
+ map((list: Array<{ status: number; statusText: string; statusType: string }>) =>
+ list.map(i => {
+ const statusItem = this.status[i.status];
+ i.statusText = statusItem.text;
+ i.statusType = statusItem.type;
+ return i;
+ })
+ ),
+ tap(() => (this.loading = false))
+ )
+ .subscribe(res => {
+ this.data = res;
+ });
+ }
+
+ action(tpl: TemplateRef<{}>, data?: any): void {
+ if (data) {
+ this.description = data.description;
+ }
+ this.modalSrv.create({
+ nzTitle: '新建规则',
+ nzContent: tpl,
+ nzOnOk: () => {
+ this.loading = true;
+
+ // this.http.post('/rule', { description: this.description }).subscribe(() => this.getData());
+ if (data) {
+ Object.assign(data, { description: this.description });
+ } else {
+ this.data.push({
+ checked: false,
+ key: this.data.length,
+ callNo: 111,
+ description: this.description
+ });
+ this.data = [...this.data];
+ }
+ setTimeout(() => {
+ this.loading = false;
+ }, 1000);
+ }
+ });
+ }
+
+ remove(): void {
+ this.service.request('/delete/rule?_allow_anonymous=true', { nos: this.selectedRows.map((i: any) => i.no).join(',') }).subscribe(() => {
+ this.getData();
+ this.clearCheck();
+ });
+ }
+
+ deleteAction(item: any) {
+ this.data = this.data.filter(({ no }) => no !== item.no);
+ }
+
+ approval(): void {
+ this.msg.success(`审批了 ${this.selectedRows.length} 笔`);
+ }
+
+ onAllChecked(checked: boolean): void {
+ this.data.filter(({ disabled }) => !disabled).forEach(item => (item.checked = checked));
+ this.selectedRows = this.data.filter(({ checked }) => checked);
+ }
+
+ onItemChecked(checked: boolean, item: any): void {
+ if (checked) {
+ this.selectedRows.push(item);
+ } else {
+ this.selectedRows = this.selectedRows.filter(({ no }) => no !== item.no);
+ }
+ this.refreshCheckedStatus();
+ }
+
+ refreshCheckedStatus(): void {
+ this.checkedAll = this.data.every(item => item.checked);
+ this.indeterminate = this.data.some(item => item.checked) && !this.checkedAll;
+ }
+
+ clearCheck() {
+ this.data.forEach(item => (item.checked = false));
+ this.selectedRows = [];
+ this.checkedAll = false;
+ this.indeterminate = false;
+ }
+
+ reset(): void {
+ // wait form reset updated finished
+ setTimeout(() => this.getData());
+ }
+}
diff --git a/src/app/routes/demo/demo-routing.module.ts b/src/app/routes/demo/demo-routing.module.ts
new file mode 100644
index 00000000..2f6625d7
--- /dev/null
+++ b/src/app/routes/demo/demo-routing.module.ts
@@ -0,0 +1,15 @@
+import { NgModule } from '@angular/core';
+import { RouterModule, Routes } from '@angular/router';
+import { AlianDemoComponent } from './components/alian-demo/alian-demo.component';
+import { ZorroDemoComponent } from './components/zorro-demo/zorro-demo.component';
+
+const routes: Routes = [
+ { path: 'zorro', component: ZorroDemoComponent },
+ { path: 'alain', component: AlianDemoComponent },
+];
+
+@NgModule({
+ imports: [RouterModule.forChild(routes)],
+ exports: [RouterModule]
+})
+export class DemoRoutingModule { }
diff --git a/src/app/routes/demo/demo.module.ts b/src/app/routes/demo/demo.module.ts
new file mode 100644
index 00000000..b1828a1e
--- /dev/null
+++ b/src/app/routes/demo/demo.module.ts
@@ -0,0 +1,15 @@
+import { NgModule, Type } from '@angular/core';
+import { SharedModule } from '@shared';
+import { AlianDemoComponent } from './components/alian-demo/alian-demo.component';
+import { DemoEditComponent } from './components/zorro-demo/edit/edit.component';
+
+import { ZorroDemoComponent } from './components/zorro-demo/zorro-demo.component';
+import { DemoRoutingModule } from './demo-routing.module';
+
+const COMPONENTS: Array> = [DemoEditComponent, ZorroDemoComponent, AlianDemoComponent];
+
+@NgModule({
+ imports: [SharedModule, DemoRoutingModule],
+ declarations: COMPONENTS
+})
+export class DemoModule {}
diff --git a/src/app/routes/demo/services/demo.service.ts b/src/app/routes/demo/services/demo.service.ts
new file mode 100644
index 00000000..0bc392c4
--- /dev/null
+++ b/src/app/routes/demo/services/demo.service.ts
@@ -0,0 +1,11 @@
+import { Injectable, Injector } from '@angular/core';
+import { BaseService } from 'src/app/shared/services';
+
+@Injectable({
+ providedIn: 'root'
+})
+export class DemoService extends BaseService {
+ constructor(public injector: Injector) {
+ super(injector);
+ }
+}
diff --git a/src/app/routes/routes-routing.module.ts b/src/app/routes/routes-routing.module.ts
index 0f1254e9..b1e59f60 100644
--- a/src/app/routes/routes-routing.module.ts
+++ b/src/app/routes/routes-routing.module.ts
@@ -3,6 +3,7 @@ import { RouterModule, Routes } from '@angular/router';
// layout
import { LayoutProComponent } from '@brand';
import { environment } from '@env/environment';
+
// dashboard pages
import { DashboardComponent } from './dashboard/dashboard.component';
@@ -13,13 +14,14 @@ const routes: Routes = [
children: [
{ path: '', redirectTo: 'dashboard', pathMatch: 'full' },
{ path: 'dashboard', component: DashboardComponent },
- ],
+ { path: 'demo', loadChildren: () => import('./demo/demo.module').then(m => m.DemoModule) }
+ ]
},
// passport
- { path: '', loadChildren: () => import('./passport/passport.module').then((m) => m.PassportModule) },
- { path: 'exception', loadChildren: () => import('./exception/exception.module').then((m) => m.ExceptionModule) },
+ { path: '', loadChildren: () => import('./passport/passport.module').then(m => m.PassportModule) },
+ { path: 'exception', loadChildren: () => import('./exception/exception.module').then(m => m.ExceptionModule) },
// 单页不包裹Layout
- { path: '**', redirectTo: 'exception/404' },
+ { path: '**', redirectTo: 'exception/404' }
];
@NgModule({
@@ -28,9 +30,9 @@ const routes: Routes = [
useHash: environment.useHash,
// NOTICE: If you use `reuse-tab` component and turn on keepingScroll you can set to `disabled`
// Pls refer to https://ng-alain.com/components/reuse-tab
- scrollPositionRestoration: 'top',
- }),
+ scrollPositionRestoration: 'top'
+ })
],
- exports: [RouterModule],
+ exports: [RouterModule]
})
export class RouteRoutingModule {}
diff --git a/src/app/routes/routes.module.ts b/src/app/routes/routes.module.ts
index 4bb976fa..1651bc70 100644
--- a/src/app/routes/routes.module.ts
+++ b/src/app/routes/routes.module.ts
@@ -1,16 +1,16 @@
import { NgModule, Type } from '@angular/core';
-
import { SharedModule } from '@shared';
+
// dashboard pages
import { DashboardComponent } from './dashboard/dashboard.component';
import { RouteRoutingModule } from './routes-routing.module';
-const COMPONENTS: Type[] = [DashboardComponent];
-const COMPONENTS_NOROUNT: Type[] = [];
+const COMPONENTS = [DashboardComponent];
+const COMPONENTS_NOROUNT: Array> = [];
@NgModule({
imports: [SharedModule, RouteRoutingModule],
declarations: [...COMPONENTS, ...COMPONENTS_NOROUNT],
- entryComponents: COMPONENTS_NOROUNT,
+ entryComponents: COMPONENTS_NOROUNT
})
export class RoutesModule {}
diff --git a/src/app/shared/services/business/sl-platform.service.ts b/src/app/shared/services/business/sl-platform.service.ts
index 10b74cd1..3ed710bd 100644
--- a/src/app/shared/services/business/sl-platform.service.ts
+++ b/src/app/shared/services/business/sl-platform.service.ts
@@ -9,7 +9,6 @@ import { Injectable, Injector } from '@angular/core';
import { Observable, zip } from 'rxjs';
import { catchError, switchMap } from 'rxjs/operators';
import { CoreService } from 'src/app/core/core.service';
-import { EAEncryptUtil } from '../../utils';
import { BaseService } from '../core/base.service';
@Injectable({
@@ -61,7 +60,7 @@ export class EAPlatformService extends BaseService {
getPlatformStatus(): number {
const encryptStatus = this.coreSrv.cacheSrv.getNone(this._cachePlatformStatusKey);
try {
- const status = EAEncryptUtil.deencryptByDeAES(encryptStatus);
+ // const status = EAEncryptUtil.deencryptByDeAES(encryptStatus);
return +status;
} catch (error) {
return 0;
@@ -118,8 +117,8 @@ export class EAPlatformService extends BaseService {
}
// 加密并保存平台状态
- const ciphertext = EAEncryptUtil.encryptByEnAES(status.toString());
- this.coreSrv.cacheSrv.set(this._cachePlatformStatusKey, ciphertext);
+ // const ciphertext = EAEncryptUtil.encryptByEnAES(status.toString());
+ // this.coreSrv.cacheSrv.set(this._cachePlatformStatusKey, ciphertext);
}
/**
diff --git a/src/app/shared/services/business/user.service.ts b/src/app/shared/services/business/user.service.ts
index d6247d3a..49dff211 100644
--- a/src/app/shared/services/business/user.service.ts
+++ b/src/app/shared/services/business/user.service.ts
@@ -101,7 +101,7 @@ export class EAUserService extends BaseService {
if (res?.token) {
this.cacheSrv.set(cacheConf.token, res.token);
this.doAfterLogin();
- this.eventSrv.event.emit(eventConf.reflesh_login_status);
+ // this.eventSrv.event.emit(eventConf.reflesh_login_status);
this.router.navigate([this.ar.snapshot.queryParams.returnUrl || '/']);
}
});
@@ -117,7 +117,7 @@ export class EAUserService extends BaseService {
if (res?.token) {
this.tokenSrv.set({ token: res.token });
this.doAfterLogin();
- this.eventSrv.event.emit(eventConf.reflesh_login_status, this.ar.snapshot.queryParams.returnUrl || '/');
+ // this.eventSrv.event.emit(eventConf.reflesh_login_status, this.ar.snapshot.queryParams.returnUrl || '/');
}
});
}
diff --git a/src/app/shared/services/core/cache.service.ts b/src/app/shared/services/core/cache.service.ts
index 996eed97..7d715525 100644
--- a/src/app/shared/services/core/cache.service.ts
+++ b/src/app/shared/services/core/cache.service.ts
@@ -11,19 +11,19 @@ import { cacheConf } from '@conf/cache.conf';
import { CacheService } from '@delon/cache';
import { BehaviorSubject } from 'rxjs';
import { distinctUntilChanged } from 'rxjs/operators';
+
import { ICacheObj } from '../../interfaces/core/i-cache-obj';
import { EADateUtil } from '../../utils';
-import { EAEncryptUtil } from '../../utils/encrypt.util';
@Injectable({
- providedIn: 'root',
+ providedIn: 'root'
})
export class EACacheService {
// 监听最后操作时间值变化
private listen$ = new BehaviorSubject(0);
private listen = this.listen$.asObservable();
constructor(private service: CacheService) {
- this.listen.pipe(distinctUntilChanged()).subscribe((res) => {
+ this.listen.pipe(distinctUntilChanged()).subscribe(res => {
this.set(cacheConf.last_operation_time, res);
});
}
@@ -44,11 +44,11 @@ export class EACacheService {
pd: new Date().getTime(),
data,
vld,
- encrypt,
+ encrypt
};
if (encrypt) {
// 加密
- cahceObj.data = EAEncryptUtil.encryptByEnAES(JSON.stringify(data));
+ // cahceObj.data = EAEncryptUtil.encryptByEnAES(JSON.stringify(data));
}
this.service.set(key, cahceObj);
// 更新系统最后操作时间
@@ -86,10 +86,11 @@ export class EACacheService {
// 判断是否加密
if (cacheObj.encrypt) {
- const encryptJson = EAEncryptUtil.deencryptByDeAES(cacheObj.data);
+ // const encryptJson = EAEncryptUtil.deencryptByDeAES(cacheObj.data);
// 更新系统最后操作时间
this.refleshLastOperationTime();
- return JSON.parse(encryptJson);
+ // return JSON.parse(encryptJson);
+ return;
}
// 更新系统最后操作时间
diff --git a/src/app/shared/services/core/event.service.ts b/src/app/shared/services/core/event.service.ts
index a05a5b7e..91efba61 100644
--- a/src/app/shared/services/core/event.service.ts
+++ b/src/app/shared/services/core/event.service.ts
@@ -12,8 +12,6 @@ import * as EventEmitter from 'eventemitter3';
providedIn: 'root',
})
export class EAEventService {
- event: EventEmitter;
constructor() {
- this.event = new EventEmitter();
}
}
diff --git a/src/app/shared/shared-zorro.module.ts b/src/app/shared/shared-zorro.module.ts
index a3bc7c29..794dc59c 100644
--- a/src/app/shared/shared-zorro.module.ts
+++ b/src/app/shared/shared-zorro.module.ts
@@ -3,12 +3,14 @@ import { NzBadgeModule } from 'ng-zorro-antd/badge';
import { NzButtonModule } from 'ng-zorro-antd/button';
import { NzCardModule } from 'ng-zorro-antd/card';
import { NzDatePickerModule } from 'ng-zorro-antd/date-picker';
+import { NzDividerModule } from 'ng-zorro-antd/divider';
import { NzDropDownModule } from 'ng-zorro-antd/dropdown';
import { NzFormModule } from 'ng-zorro-antd/form';
import { NzGridModule } from 'ng-zorro-antd/grid';
import { NzIconModule } from 'ng-zorro-antd/icon';
import { NzInputModule } from 'ng-zorro-antd/input';
import { NzSelectModule } from 'ng-zorro-antd/select';
+import { NzSpinModule } from 'ng-zorro-antd/spin';
import { NzTableModule } from 'ng-zorro-antd/table';
export const SHARED_ZORRO_MODULES = [
@@ -23,5 +25,7 @@ export const SHARED_ZORRO_MODULES = [
NzSelectModule,
NzDatePickerModule,
NzCardModule,
- NzIconModule
+ NzIconModule,
+ NzSpinModule,
+ NzDividerModule,
];
diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json
index dad1d744..7037444d 100644
--- a/src/assets/mocks/menu-data.json
+++ b/src/assets/mocks/menu-data.json
@@ -1,22 +1,32 @@
{
"menu": [
{
- "text": "主导航",
- "group": true,
+ "text": "样例",
"hideInBreadcrumb": true,
"children": [
{
- "text": "DEMO页面",
+ "text": "仪表盘",
"icon": "anticon anticon-dashboard",
"link": "/dashboard"
},
{
- "text": "快捷菜单",
- "icon": "anticon anticon-rocket",
- "shortcutRoot": true,
- "children": []
+ "text": "样例",
+ "icon": "anticon anticon-dashboard",
+ "group": true,
+ "children": [
+ {
+ "text": "Zorro案例",
+ "icon": "anticon anticon-dashboard",
+ "link": "/demo/zorro"
+ },
+ {
+ "text": "Alain案例",
+ "icon": "anticon anticon-dashboard",
+ "link": "/demo/alain"
+ }
+ ]
}
]
}
]
-}
+}
\ No newline at end of file
diff --git a/src/styles.less b/src/styles.less
index b2f747e8..de0c513b 100644
--- a/src/styles.less
+++ b/src/styles.less
@@ -5,3 +5,9 @@
@import './styles/index';
@import './styles/theme';
+
+
+// .page-header {
+// margin-left: -24px;
+// margin-top : -24px;
+// }
\ No newline at end of file