From 2ed180822cc2b260ffa24e9565c010cc27986fd5 Mon Sep 17 00:00:00 2001 From: wangshiming Date: Thu, 7 Apr 2022 10:08:57 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../datascreen/datascreen.component.html | 2 +- .../datascreen/datascreen.component.ts | 9 +- .../routes/datatable/services/data.service.ts | 20 +- .../abnormal-warning.component.html | 93 ++++++ .../abnormal-warning.component.less | 13 + .../abnormal-warning.component.spec.ts | 35 +++ .../abnormal-warning.component.ts | 294 ++++++++++++++++++ .../order-management-routing.module.ts | 4 +- .../order-management.module.ts | 4 +- .../services/order-management.service.ts | 5 +- 10 files changed, 473 insertions(+), 6 deletions(-) create mode 100644 src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.html create mode 100644 src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.less create mode 100644 src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.spec.ts create mode 100644 src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.ts diff --git a/src/app/routes/datatable/components/datascreen/datascreen.component.html b/src/app/routes/datatable/components/datascreen/datascreen.component.html index 0689ce07..624e60f0 100644 --- a/src/app/routes/datatable/components/datascreen/datascreen.component.html +++ b/src/app/routes/datatable/components/datascreen/datascreen.component.html @@ -12,7 +12,7 @@
- + diff --git a/src/app/routes/datatable/components/datascreen/datascreen.component.ts b/src/app/routes/datatable/components/datascreen/datascreen.component.ts index 876f729a..b44238ec 100644 --- a/src/app/routes/datatable/components/datascreen/datascreen.component.ts +++ b/src/app/routes/datatable/components/datascreen/datascreen.component.ts @@ -5,7 +5,7 @@ import { map } from 'rxjs/operators'; * @Author : Shiming * @Date : 2022-04-06 10:57:56 * @LastEditors : Shiming - * @LastEditTime : 2022-04-07 01:48:44 + * @LastEditTime : 2022-04-07 09:30:20 * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -56,8 +56,15 @@ export class DatatableDatascreenComponent implements OnInit { ngOnInit(): void { this.initST() this.initOrderST() + this.initData() this.initLineData() } + initData(){ + this.service.request(this.service.$api_getAnnualTransactions).subscribe((res: any) => { + console.log(res); + + }) + } initLineData(){ for (let i = 0; i < 20; i += 1) { this.chartData.push({ diff --git a/src/app/routes/datatable/services/data.service.ts b/src/app/routes/datatable/services/data.service.ts index 804aca12..32f2c4e0 100644 --- a/src/app/routes/datatable/services/data.service.ts +++ b/src/app/routes/datatable/services/data.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-27 10:30:56 * @LastEditors : Shiming - * @LastEditTime : 2022-04-06 13:47:25 + * @LastEditTime : 2022-04-07 09:30:16 * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\services\\data.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -66,6 +66,24 @@ export class DataService extends BaseService { $api_statistics_totalAdd = `/api/mdc/cuc/statistics/totalAdd`; + // 数据大屏-本年全年交易情况 + $api_getAnnualTransactions = `/api/sdc/reportDataLargeScreen/getAnnualTransactions`; + // 数据大屏-客户统计(货主,合伙人,司机,车辆) + $api_getCustomerStatistics = `/api/sdc/reportDataLargeScreen/getCustomerStatistics`; + // 数据大屏-实时货源 + $api_getRealTimeSupply = `/api/sdc/reportDataLargeScreen/getRealTimeSupply`; + // 数据大屏-实时运单风控 + $api_getRealTimeWaybillRiskControl = `/api/sdc/reportDataLargeScreen/getRealTimeWaybillRiskControl`; + // 数据大屏-本月发货量排名 + $api_getShipmentRanking = `/api/sdc/reportDataLargeScreen/getShipmentRanking`; + // 数据大屏-今日交易情况 + $api_getTradingToday = `/api/sdc/reportDataLargeScreen/getTradingToday`; + // 数据大屏-本月交易趋势 + $api_getTradingTrend = `/api/sdc/reportDataLargeScreen/getTradingTrend`; + // 数据大屏-交易额(今日,本月,累计) + $api_getTransactionAmount = `/api/sdc/reportDataLargeScreen/getTransactionAmount`; + + constructor(public injector: Injector) { super(injector); diff --git a/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.html b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.html new file mode 100644 index 00000000..5d27eff0 --- /dev/null +++ b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.html @@ -0,0 +1,93 @@ + + + + +
+ +
+ +
+ + + +
+ +
+
+ + + + +
+
+
+
+ + +
+ + + + +
{{ item?.driverName }}{{ item?.driverPhone ? "/" + item?.driverPhone : '' }}{{ item?.carNo ? "/" + item?.carNo : '' }}
+
+ +
{{ item?.payeeName }}{{ item?.payeePhone ? "/" + item?.payeePhone : '' }}
+
+ + +
+ {{ item?.billStatusLabel }} +
+
+ {{item?.billTypeLabel}}{{item?.serviceTypeLabel === item?.billTypeLabel ? '':item?.serviceTypeLabel}} +
+
+
+
+
+ + diff --git a/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.less b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.less new file mode 100644 index 00000000..149a0bc9 --- /dev/null +++ b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.less @@ -0,0 +1,13 @@ + + :host { + p{ + margin-bottom: 0 + } + .left_btn { + width: 50px; + height: 32px; + padding-left: 8px; + line-height:32px; + background-color: #d7d7d7; + } + } \ No newline at end of file diff --git a/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.spec.ts b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.spec.ts new file mode 100644 index 00000000..c2659773 --- /dev/null +++ b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.spec.ts @@ -0,0 +1,35 @@ +/* + * @Description : + * @Version : 1.0 + * @Author : Shiming + * @Date : 2021-12-06 20:03:28 + * @LastEditors : Shiming + * @LastEditTime : 2022-04-07 09:43:16 + * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\abnormal-warning\\abnormal-warning.component.spec.ts + * Copyright (C) 2022 huzhenhong. All rights reserved. + */ + +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { OrderManagementAbnormalWarningComponent } from './abnormal-warning.component'; + +describe('OrderManagementAbnormalWarningComponent', () => { + let component: OrderManagementAbnormalWarningComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ OrderManagementAbnormalWarningComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(OrderManagementAbnormalWarningComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.ts b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.ts new file mode 100644 index 00000000..d61adb85 --- /dev/null +++ b/src/app/routes/order-management/components/abnormal-warning/abnormal-warning.component.ts @@ -0,0 +1,294 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { STColumn, STComponent } from '@delon/abc/st'; +import { SFComponent, SFDateWidgetSchema, SFSchema, SFSchemaEnum, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; +import { ModalHelper, _HttpClient } from '@delon/theme'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { map } from 'rxjs/operators'; +import { OrderManagementService } from '../../services/order-management.service'; +import { UpdateFreightComponent } from '../../modal/bulk/update-freight/update-freight.component'; +import { ConfirReceiptComponent } from '../../modal/bulk/confir-receipt/confir-receipt.component'; +import { of } from 'rxjs'; +import { ShipperBaseService } from '@shared'; +import { Router } from '@angular/router'; +import { OneCarOrderAppealComponent } from '../../modal/audit/appeal/appeal.component'; + +@Component({ + selector: 'app-order-management-abnormal-warning', + templateUrl: './abnormal-warning.component.html', + styleUrls: ['./abnormal-warning.component.less'] +}) +export class OrderManagementAbnormalWarningComponent implements OnInit { + ui: SFUISchema = {}; + uiView: SFUISchema = {}; + schema: SFSchema = {}; + schemaView: SFSchema = {}; + changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录 + changeViewId: any; // 查看运费变更记录id - 用于查看 + auditId: any; + auditIdR: any; + auditMany = false; + isVisibleView = false; + isVisibleEvaluate = false; + isVisible = false; + isVisibleRE = false; + _$expand = false; + @ViewChild('st') private readonly st!: STComponent; + @ViewChild('sf', { static: false }) sf!: SFComponent; + @ViewChild('sfView', { static: false }) sfView!: SFComponent; + @ViewChild('stFloat') private readonly stFloat!: STComponent; + @ViewChild('stFloatView') private readonly stFloatView!: STComponent; + columns: STColumn[] = []; + columnsFloat: STColumn[] = []; + columnsFloatView: STColumn[] = []; + ViewCause: any; // 变更运费查看数据 + tabs = { + totalCount: 0, + qualifiedtity: 0, + spotQuantity: 0, + unstayQuantity: 0 + }; + constructor( + public service: OrderManagementService, + private modal: NzModalService, + public shipperservice: ShipperBaseService, + private router: Router + ) { } + + /** + * 查询参数 + */ + get reqParams() { + const a: any = {}; + const params: any = Object.assign({}, this.sf?.value || {}); + delete params._$expand; + return { + ...a, + ...params, + warningTime: { + start: this.sf?.value?.warningTime?.[0] || '', + end: this.sf?.value?.warningTime?.[1] || '' + } + }; + } + get changeParams() { + return { + id: this.changeId + }; + } + get selectedRows() { + return this.st?.list.filter(item => item.checked) || []; + } + get changeViewParams() { + return { + id: this.changeViewId + }; + } + search() { + this.st?.load(1); + } + + ngOnInit(): void { + this.initSF(); + this.initST(); + } + + /** + * 初始化查询表单 + */ + initSF() { + this.schema = { + properties: { + _$expand: { type: 'boolean', ui: { hidden: true } }, + billCode: { + type: 'string', + title: '订单号', + ui: { + } + }, + wayBillCode: { + type: 'string', + title: '运单号', + ui: { + } + }, + serviceType: { + title: '服务类型', + type: 'string', + default: '', + ui: { + widget: 'dict-select', + params: { dictKey: 'service:type' }, + containsAllLabel: true, + } as SFSelectWidgetSchema + }, + resourceType: { + title: '货源类型', + type: 'string', + default: '', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + }, + widget: 'dict-select', + params: { dictKey: 'goodresource:type' }, + containsAllLabel: true, + } as SFSelectWidgetSchema + }, + shipperAppUserId: { + type: 'string', + title: '货主', + ui: { + widget: 'select', + serverSearch: true, + searchDebounceTime: 300, + searchLoadingText: '搜索中...', + allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + }, + onSearch: (q: any) => { + let str =q.replace(/^\s+|\s+$/g,""); + if (str) { + return this.service + .request(this.service.$api_enterpriceList, { enterpriseName: str }) + .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) + .toPromise(); + } else { + return of([]); + } + }, + } as SFSelectWidgetSchema + }, + loadingPlace: { + type: 'string', + title: '装货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + dischargePlace: { + type: 'string', + title: '卸货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + driverName: { + title: '承运司机', + type: 'string', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + carNo: { + title: '车牌号', + type: 'string', + ui: { + visibleIf: { + _$expand: (value: boolean) => value + } + } + }, + warningTime: { + title: '预警时间', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd', + allowClear: true, + visibleIf: { + _$expand: (value: boolean) => value + } + } as SFDateWidgetSchema + }, + }, + type: 'object' + }; + this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; + } + + /** + * 初始化数据列表 + */ + initST() { + this.columns = [ + { + title: '运单号', + width: '180px', + fixed: 'left', + className: 'text-left', + index: 'wayCode' + }, + { + title: '订单号', + width: '180px', + fixed: 'left', + className: 'text-left', + index: 'billCode' + }, + { title: '服务类型', index: 'serviceTypeLabel', width: '220px', className: 'text-left' }, + { title: '货主', index: 'shipperName', width: '220px', className: 'text-left' }, + { title: '装货地', index: 'loadingAddressArr', width: '220px', className: 'text-left' }, + { title: '卸货地', index: 'unloadingAddressArr', width: '220px', className: 'text-left' }, + { title: '司机', render: 'driverName', width: '180px', className: 'text-left' }, + { title: '车牌号', index: 'carNo', width: '180px', className: 'text-left' }, + { title: '预警类型', index: 'warningTypeLabel', width: '180px', className: 'text-left' }, + { + title: '预警时间', + className: 'text-left', + width: '180px', + index: 'warningTime' + }, + { + title: '位置描述', + className: 'text-left', + width: '250px', + render: 'goodsName' + }, + { + title: '提醒内容', + className: 'text-left', + width: '250px', + index: 'warningContent', + }, + + ]; + } + + /** + * 查询字段个数 + */ + get queryFieldCount(): number { + return Object.keys(this.schema?.properties || {}).length; + } + + + /** + * 伸缩查询条件 + */ + expandToggle(): void { + this._$expand = !this._$expand; + this.sf?.setValue('/_$expand', this._$expand); + } + tabChange(item: any) { } + /** + * 重置表单 + */ + resetSF(): void { + this.sf.reset(); + this._$expand = false; + } + + + // 导出 + exprot() { + this.service.asyncExport(this.reqParams, this.service.$api_get_asyncExportSpotCheckList); + } +} diff --git a/src/app/routes/order-management/order-management-routing.module.ts b/src/app/routes/order-management/order-management-routing.module.ts index aaffea78..7be4f4e5 100644 --- a/src/app/routes/order-management/order-management-routing.module.ts +++ b/src/app/routes/order-management/order-management-routing.module.ts @@ -4,12 +4,13 @@ * @Author : Shiming * @Date : 2022-01-06 09:24:00 * @LastEditors : Shiming - * @LastEditTime : 2022-02-10 11:34:03 + * @LastEditTime : 2022-04-07 09:43:47 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\order-management-routing.module.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { OrderManagementAbnormalWarningComponent } from './components/abnormal-warning/abnormal-warning.component'; import { OrderManagementBulkDetailChangeComponent } from './components/bulk-detail-change/bulk-detail-change.component'; import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component'; import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; @@ -36,6 +37,7 @@ const routes: Routes = [ { path: 'complaint-detail/:id', component: OrderManagementComplaintDetailComponent }, { path: 'receipts-audit', component: OrderManagementReceiptsAuditComponent }, { path: 'compliance-audit', component: OrderManagementComplianceAuditComponent }, + { path: 'abnormal-warning', component: OrderManagementAbnormalWarningComponent }, ] @NgModule({ imports: [RouterModule.forChild(routes)], diff --git a/src/app/routes/order-management/order-management.module.ts b/src/app/routes/order-management/order-management.module.ts index 87ceaafd..8f00a622 100644 --- a/src/app/routes/order-management/order-management.module.ts +++ b/src/app/routes/order-management/order-management.module.ts @@ -11,6 +11,7 @@ import { NgModule, Type } from '@angular/core'; import { SharedModule } from '@shared'; +import { OrderManagementAbnormalWarningComponent } from './components/abnormal-warning/abnormal-warning.component'; import { OrderManagementBulkDetailChangeComponent } from './components/bulk-detail-change/bulk-detail-change.component'; import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component'; import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; @@ -66,7 +67,8 @@ const COMPONENTS: Type[] = [ OrderManagementComplianceAuditComponent, OneCarOrderCancelConfirmComponent, OneCarOrderViewtrackComponent, - OneCarOrderAppealComponent + OneCarOrderAppealComponent, + OrderManagementAbnormalWarningComponent ]; @NgModule({ diff --git a/src/app/routes/order-management/services/order-management.service.ts b/src/app/routes/order-management/services/order-management.service.ts index fb03d073..f3b441f8 100644 --- a/src/app/routes/order-management/services/order-management.service.ts +++ b/src/app/routes/order-management/services/order-management.service.ts @@ -4,7 +4,7 @@ * @Author : Shiming * @Date : 2021-12-03 15:31:52 * @LastEditors : Shiming - * @LastEditTime : 2022-04-06 11:03:58 + * @LastEditTime : 2022-04-07 09:49:44 * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts * Copyright (C) 2022 huzhenhong. All rights reserved. */ @@ -186,6 +186,9 @@ export class OrderManagementService extends ShipperBaseService { // 查看申述记录 $api_get_getOrderComplaintDetail = `/api/sdc/billOperate/getOrderComplaintDetail`; + // 查询异常预警表 + $api_get_abnormalWarning = `/api/sdc/abnormalWarning/list/page`; + // 异步导出运营后台大宗订单列表 $api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`;