diff --git a/src/app/routes/datatable/components/compliance/customer/customer.component.html b/src/app/routes/datatable/components/compliance/customer/customer.component.html
new file mode 100644
index 00000000..56092666
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/customer/customer.component.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/app/routes/datatable/components/compliance/customer/customer.component.ts b/src/app/routes/datatable/components/compliance/customer/customer.component.ts
new file mode 100644
index 00000000..1546a048
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/customer/customer.component.ts
@@ -0,0 +1,45 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { STColumn, STComponent } from '@delon/abc/st';
+import { SFSchema } from '@delon/form';
+import { ModalHelper, _HttpClient } from '@delon/theme';
+
+@Component({
+ selector: 'app-datatable-compliance-customer',
+ templateUrl: './customer.component.html',
+})
+export class DatatableComplianceCustomerComponent implements OnInit {
+ url = `/user`;
+ searchSchema: SFSchema = {
+ properties: {
+ no: {
+ type: 'string',
+ title: '编号'
+ }
+ }
+ };
+ @ViewChild('st') private readonly st!: STComponent;
+ columns: STColumn[] = [
+ { title: '编号', index: 'no' },
+ { title: '调用次数', type: 'number', index: 'callNo' },
+ { title: '头像', type: 'img', width: '50px', index: 'avatar' },
+ { title: '时间', type: 'date', index: 'updatedAt' },
+ {
+ title: '',
+ buttons: [
+ // { text: '查看', click: (item: any) => `/form/${item.id}` },
+ // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
+ ]
+ }
+ ];
+
+ constructor(private http: _HttpClient, private modal: ModalHelper) { }
+
+ ngOnInit(): void { }
+
+ add(): void {
+ // this.modal
+ // .createStatic(FormEditComponent, { i: { id: 0 } })
+ // .subscribe(() => this.st.reload());
+ }
+
+}
diff --git a/src/app/routes/datatable/components/compliance/index/index.component.html b/src/app/routes/datatable/components/compliance/index/index.component.html
new file mode 100644
index 00000000..dbcfc3c0
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/index/index.component.html
@@ -0,0 +1,66 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 合格:12423 不合格:12423
+
+
+
+
+
+
+
+
+ 货源单:12423 合同单:12423
+
+
+
+
+
+
+
+
+ 司机:12423 车队长:12423
+
+
+
+
+
+
+
+
+ 准时:12423 逾期:12423
+
+
+
+
+
+
+
+
+
diff --git a/src/app/routes/datatable/components/compliance/index/index.component.less b/src/app/routes/datatable/components/compliance/index/index.component.less
new file mode 100644
index 00000000..3d0d3e63
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/index/index.component.less
@@ -0,0 +1,17 @@
+.card-f{
+ color: #5a5a5a;
+ .card-f-l{
+ margin-right: 24px;
+ }
+}
+.chooseBox{
+ display: flex;
+}
+.timeBox{
+ display: flex;
+ margin: 0 0 0 10px;
+}
+.dateBox{
+ display: inline-block;
+ margin: 0 0 0 10px;
+}
\ No newline at end of file
diff --git a/src/app/routes/datatable/components/compliance/index/index.component.ts b/src/app/routes/datatable/components/compliance/index/index.component.ts
new file mode 100644
index 00000000..b50e7764
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/index/index.component.ts
@@ -0,0 +1,125 @@
+import { Component, ElementRef, NgZone, OnInit, ViewChild } from '@angular/core';
+import { DatePipe, ModalHelper, _HttpClient } from '@delon/theme';
+import { G2MiniAreaClickItem, G2MiniAreaData } from '@delon/chart/mini-area';
+import { format } from 'date-fns';
+import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
+import { G2TimelineData, G2TimelineMap } from '@delon/chart/timeline';
+import { Chart } from '@antv/g2';
+const DataSet = require('@antv/data-set');
+@Component({
+ selector: 'app-datatable-compliance-index',
+ templateUrl: './index.component.html',
+ styleUrls: ['./index.component.less'],
+ providers: [DatePipe]
+})
+export class DatatableComplianceIndexComponent implements OnInit {
+ @ViewChild('sf', { static: false })
+ sf!: SFComponent;
+ ui!: SFUISchema;
+ schema: SFSchema = {};
+
+ mode = 'year';
+ date: any = null;
+ dateFormat = 'yyyy-MM-dd';
+ time: any = ['2022-01-01 00:00:00']
+ constructor(private http: _HttpClient, private modal: ModalHelper, private ngZone: NgZone, private datePipe: DatePipe) {}
+
+ ngOnInit(): void {
+ this.initSF();
+ }
+
+ changeData(){
+ if(this.mode === 'year') {
+ this.dateFormat = 'yyyy'
+ } else if(this.mode === 'month') {
+ this.dateFormat = 'yyyy-MM'
+ } else {
+ this.dateFormat = 'yyyy-MM-dd'
+ }
+ }
+
+ onChange(result: any) {
+ if(this.mode === 'year') {
+ this.time = [this.datePipe.transform(this.date, 'yyyy') + '-01-01 00:00:00']
+ } else if(this.mode === 'month') {
+ this.time = [this.datePipe.transform(this.date, 'yyyy-MM') + '-01 00:00:00']
+ }
+ }
+
+ initSF() {
+ this.schema = {
+ properties: {
+ name: {
+ type: 'string',
+ title: '',
+ ui: {
+ widget: 'select',
+ placeholder: '网络货运人'
+ }
+ },
+ name2: {
+ type: 'string',
+ title: '',
+ ui: {
+ widget: 'select',
+ placeholder: '部门'
+ }
+ },
+ name3: {
+ type: 'string',
+ title: '',
+ ui: {
+ placeholder: '业务员'
+ }
+ }
+ }
+ };
+ this.ui = {
+ '*': {
+ grid: { span: 4 }
+ }
+ };
+
+ }
+
+ data = [
+ { Date: '22 February', 订单合格率: 50000, 付款及时率: 125000 },
+ { Date: '28 February', 订单合格率: 60000, 付款及时率: 150000 },
+ { Date: '3 March', 订单合格率: 100000, 付款及时率: 250000 },
+ { Date: '20 March', 订单合格率: 200000, 付款及时率: 500000 },
+ { Date: '7 April', 订单合格率: 250000, 付款及时率: 625000 },
+ { Date: '13 June', 订单合格率: 210000, 付款及时率: 525000 }
+ ];
+ render(el: ElementRef) {
+ this.ngZone.runOutsideAngular(() => this.init(el.nativeElement));
+ }
+
+ private init(el: HTMLElement): void {
+ const chart = new Chart({
+ container: el,
+ autoFit: true,
+ height: 400
+ });
+ // 以三组数据为例, 需要展示 91/92/93年中a/b/c数据走势
+ const data = [
+ {x: '1991', z: 'a', y: 1},
+ {x: '1991', z: 'b', y: 2},
+ {x: '1991', z: 'c', y: 3},
+
+ {x: '1992', z: 'a', y: 11},
+ {x: '1992', z: 'b', y: 22},
+ {x: '1992', z: 'c', y: 33},
+
+ {x: '1993', z: 'a', y: 1},
+ {x: '1993', z: 'b', y: 2},
+ {x: '1993', z: 'c', y: 3}
+ ];
+
+ chart.data(data);
+ // 在x*y的坐标点上按z值绘制线条, 如果z值相同将使用直线连接
+ chart.line().position('x*y').color('z');
+ // 在x*y的坐标上按z值绘制圆点
+ chart.point().position('x*y').size(4).color('z').shape('circle');
+ chart.render();
+ }
+}
diff --git a/src/app/routes/datatable/components/compliance/salesman/salesman.component.html b/src/app/routes/datatable/components/compliance/salesman/salesman.component.html
new file mode 100644
index 00000000..56092666
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/salesman/salesman.component.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/app/routes/datatable/components/compliance/salesman/salesman.component.ts b/src/app/routes/datatable/components/compliance/salesman/salesman.component.ts
new file mode 100644
index 00000000..3b6cd019
--- /dev/null
+++ b/src/app/routes/datatable/components/compliance/salesman/salesman.component.ts
@@ -0,0 +1,45 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { STColumn, STComponent } from '@delon/abc/st';
+import { SFSchema } from '@delon/form';
+import { ModalHelper, _HttpClient } from '@delon/theme';
+
+@Component({
+ selector: 'app-datatable-compliance-salesman',
+ templateUrl: './salesman.component.html',
+})
+export class DatatableComplianceSalesmanComponent implements OnInit {
+ url = `/user`;
+ searchSchema: SFSchema = {
+ properties: {
+ no: {
+ type: 'string',
+ title: '编号'
+ }
+ }
+ };
+ @ViewChild('st') private readonly st!: STComponent;
+ columns: STColumn[] = [
+ { title: '编号', index: 'no' },
+ { title: '调用次数', type: 'number', index: 'callNo' },
+ { title: '头像', type: 'img', width: '50px', index: 'avatar' },
+ { title: '时间', type: 'date', index: 'updatedAt' },
+ {
+ title: '',
+ buttons: [
+ // { text: '查看', click: (item: any) => `/form/${item.id}` },
+ // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
+ ]
+ }
+ ];
+
+ constructor(private http: _HttpClient, private modal: ModalHelper) { }
+
+ ngOnInit(): void { }
+
+ add(): void {
+ // this.modal
+ // .createStatic(FormEditComponent, { i: { id: 0 } })
+ // .subscribe(() => this.st.reload());
+ }
+
+}
diff --git a/src/app/routes/datatable/components/financetable/financetable.component.html b/src/app/routes/datatable/components/financetable/financetable.component.html
new file mode 100644
index 00000000..56092666
--- /dev/null
+++ b/src/app/routes/datatable/components/financetable/financetable.component.html
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/src/app/routes/datatable/components/financetable/financetable.component.ts b/src/app/routes/datatable/components/financetable/financetable.component.ts
new file mode 100644
index 00000000..00e0f1b3
--- /dev/null
+++ b/src/app/routes/datatable/components/financetable/financetable.component.ts
@@ -0,0 +1,45 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { STColumn, STComponent } from '@delon/abc/st';
+import { SFSchema } from '@delon/form';
+import { ModalHelper, _HttpClient } from '@delon/theme';
+
+@Component({
+ selector: 'app-datatable-financetable',
+ templateUrl: './financetable.component.html',
+})
+export class DatatableFinancetableComponent implements OnInit {
+ url = `/user`;
+ searchSchema: SFSchema = {
+ properties: {
+ no: {
+ type: 'string',
+ title: '编号'
+ }
+ }
+ };
+ @ViewChild('st') private readonly st!: STComponent;
+ columns: STColumn[] = [
+ { title: '编号', index: 'no' },
+ { title: '调用次数', type: 'number', index: 'callNo' },
+ { title: '头像', type: 'img', width: '50px', index: 'avatar' },
+ { title: '时间', type: 'date', index: 'updatedAt' },
+ {
+ title: '',
+ buttons: [
+ // { text: '查看', click: (item: any) => `/form/${item.id}` },
+ // { text: '编辑', type: 'static', component: FormEditComponent, click: 'reload' },
+ ]
+ }
+ ];
+
+ constructor(private http: _HttpClient, private modal: ModalHelper) { }
+
+ ngOnInit(): void { }
+
+ add(): void {
+ // this.modal
+ // .createStatic(FormEditComponent, { i: { id: 0 } })
+ // .subscribe(() => this.st.reload());
+ }
+
+}
diff --git a/src/app/routes/datatable/components/invoicetable/invoicetable.component.html b/src/app/routes/datatable/components/invoicetable/invoicetable.component.html
new file mode 100644
index 00000000..13411ab5
--- /dev/null
+++ b/src/app/routes/datatable/components/invoicetable/invoicetable.component.html
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/src/app/routes/datatable/components/invoicetable/invoicetable.component.ts b/src/app/routes/datatable/components/invoicetable/invoicetable.component.ts
new file mode 100644
index 00000000..9916e4c4
--- /dev/null
+++ b/src/app/routes/datatable/components/invoicetable/invoicetable.component.ts
@@ -0,0 +1,70 @@
+import { Component, OnInit, ViewChild } from '@angular/core';
+import { STColumn, STComponent } from '@delon/abc/st';
+import { SFSchema } from '@delon/form';
+import { ModalHelper, _HttpClient } from '@delon/theme';
+
+@Component({
+ selector: 'app-datatable-invoicetable',
+ templateUrl: './invoicetable.component.html',
+})
+export class DatatableInvoicetableComponent implements OnInit {
+ @ViewChild('st', { static: false })
+ st!: STComponent;
+ columns!: STColumn[];
+
+ data=[{name1:1111}]
+ constructor(private http: _HttpClient, private modal: ModalHelper) { }
+
+ /**
+ * 查询参数
+ */
+ get reqParams() {
+ return { };
+ }
+ ngOnInit(): void {
+ this.initST();
+ }
+ initST() {
+ this.columns = [
+ {
+ title: '运营主体',
+ index: 'name1'
+ },
+ {
+ title: '已开票总金额',
+ index: 'name1'
+ },
+ {
+ title: '当月已开票金额',
+ index: 'name1'
+ },
+ {
+ title: '已申请待开金额',
+ index: 'name1'
+ },
+ {
+ title: '未申请开票金额(历史)',
+ index: 'name1'
+ },
+ {
+ title: '未申请开票金额(当月)',
+ index: 'name1'
+ },
+ {
+ title: '当月发票张数',
+ index: 'name1'
+ },
+ {
+ title: '剩余发票张数',
+ index: 'name1'
+ },
+
+ ];
+ }
+ add(): void {
+ // this.modal
+ // .createStatic(FormEditComponent, { i: { id: 0 } })
+ // .subscribe(() => this.st.reload());
+ }
+
+}
diff --git a/src/app/routes/datatable/datatable-routing.module.ts b/src/app/routes/datatable/datatable-routing.module.ts
index c71ba4c6..2bea9ee5 100644
--- a/src/app/routes/datatable/datatable-routing.module.ts
+++ b/src/app/routes/datatable/datatable-routing.module.ts
@@ -7,6 +7,11 @@ import { DatatableDriverComponent } from './components/customtable/driver/driver
import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component';
import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component';
import { DatatableDataindexComponent } from './components/dataindex/dataindex.component';
+import { DatatableComplianceIndexComponent } from './components/compliance/index/index.component';
+import { DatatableFinancetableComponent } from './components/financetable/financetable.component';
+import { DatatableInvoicetableComponent } from './components/invoicetable/invoicetable.component';
+import { DatatableComplianceSalesmanComponent } from './components/compliance/salesman/salesman.component';
+import { DatatableComplianceCustomerComponent } from './components/compliance/customer/customer.component';
const routes: Routes = [
{ path: 'dataindex', component: DatatableDataindexComponent },
@@ -15,9 +20,14 @@ const routes: Routes = [
{ path: 'owner', component: DatatableOwnerComponent },
{ path: 'driver', component: DatatableDriverComponent },
{ path: 'operationtable', component: DatatableOperationtableComponent },
- { path: 'reporting/order', component: DatatableOrderReportingComponent }];
+ { path: 'reporting/order', component: DatatableOrderReportingComponent },
+ { path: 'compliancetabel/index', component: DatatableComplianceIndexComponent },
+ { path: 'compliancetabel/salesman', component: DatatableComplianceSalesmanComponent },
+ { path: 'compliancetabel/customer', component: DatatableComplianceCustomerComponent },
+ { path: 'financetable', component: DatatableFinancetableComponent },
+ { path: 'invoicetable', component: DatatableInvoicetableComponent },
+];
-
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
diff --git a/src/app/routes/datatable/datatable.module.ts b/src/app/routes/datatable/datatable.module.ts
index d37e1e6b..6516ec67 100644
--- a/src/app/routes/datatable/datatable.module.ts
+++ b/src/app/routes/datatable/datatable.module.ts
@@ -9,6 +9,11 @@ import { DatatableOperationtableComponent } from './components/operationtable/op
import { OperationtablePieComponent } from './components/operationtable/pie/pie.component';
import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component';
import { DatatableDataindexComponent } from './components/dataindex/dataindex.component';
+import { DatatableComplianceIndexComponent } from './components/compliance/index/index.component';
+import { DatatableFinancetableComponent } from './components/financetable/financetable.component';
+import { DatatableInvoicetableComponent } from './components/invoicetable/invoicetable.component';
+import { DatatableComplianceSalesmanComponent } from './components/compliance/salesman/salesman.component';
+import { DatatableComplianceCustomerComponent } from './components/compliance/customer/customer.component';
const COMPONENTS: Type[] = [
DatatableDataindexComponent,
@@ -18,8 +23,13 @@ const COMPONENTS: Type[] = [
DatatableDriverComponent,
DatatableOperationtableComponent,
OperationtablePieComponent,
- DatatableOrderReportingComponent
-];
+ DatatableOrderReportingComponent,
+ DatatableComplianceIndexComponent,
+ DatatableFinancetableComponent,
+ DatatableInvoicetableComponent,
+ DatatableComplianceSalesmanComponent,
+ DatatableComplianceCustomerComponent
+]
@NgModule({
imports: [
diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json
index 824190d8..69601b29 100644
--- a/src/assets/mocks/menu-data.json
+++ b/src/assets/mocks/menu-data.json
@@ -646,8 +646,32 @@
{
"text": "订单上报",
"link": "/datatable/reporting/order"
+ },
+ {
+ "text": "合规监控报表",
+ "children": [{
+ "text": "合规监控报表",
+ "link": "/datatable/compliancetabel/index"
+ },
+ {
+ "text": "业务员-合规报表",
+ "link": "/datatable/compliancetabel/salesman"
+ },
+ {
+ "text": "客户-合规报表",
+ "link": "/datatable/compliancetabel/customer"
+ }
+ ]
+ },
+ {
+ "text": "财务报表",
+ "link": "/datatable/financetable"
+ },
+ {
+ "text": "开票数据报表",
+ "link": "/datatable/invoicetable"
}
- ]
+ ]
}
]
}]