From 322aca7b43409133a6dc67d78237798d4bc05d9f Mon Sep 17 00:00:00 2001 From: wangshiming Date: Mon, 6 Dec 2021 20:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=A2=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bulk-detail/bulk-detail.component.html | 148 ++++++ .../bulk-detail/bulk-detail.component.less | 36 ++ .../bulk-detail/bulk-detail.component.spec.ts | 24 + .../bulk-detail/bulk-detail.component.ts | 116 +++++ .../components/bulk/bulk.component.html | 147 ++++++ .../components/bulk/bulk.component.less | 2 + .../components/bulk/bulk.component.spec.ts | 40 ++ .../components/bulk/bulk.component.ts | 477 ++++++++++++++++++ .../gaode-map/gaode-map.component.html | 6 + .../gaode-map/gaode-map.component.ts | 70 +++ .../vehicle-detail.component.html | 80 ++- .../vehicle-detail.component.less | 7 +- .../vehicle-detail.component.ts | 77 ++- .../components/vehicle/vehicle.component.html | 105 ++-- .../components/vehicle/vehicle.component.ts | 373 +++++++++----- .../order-management-routing.module.ts | 5 +- .../order-management.module.ts | 8 +- src/assets/mocks/menu-data.json | 14 +- 18 files changed, 1538 insertions(+), 197 deletions(-) create mode 100644 src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html create mode 100644 src/app/routes/order-management/components/bulk-detail/bulk-detail.component.less create mode 100644 src/app/routes/order-management/components/bulk-detail/bulk-detail.component.spec.ts create mode 100644 src/app/routes/order-management/components/bulk-detail/bulk-detail.component.ts create mode 100644 src/app/routes/order-management/components/bulk/bulk.component.html create mode 100644 src/app/routes/order-management/components/bulk/bulk.component.less create mode 100644 src/app/routes/order-management/components/bulk/bulk.component.spec.ts create mode 100644 src/app/routes/order-management/components/bulk/bulk.component.ts create mode 100644 src/app/routes/order-management/components/gaode-map/gaode-map.component.html create mode 100644 src/app/routes/order-management/components/gaode-map/gaode-map.component.ts diff --git a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html new file mode 100644 index 00000000..d226599c --- /dev/null +++ b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.html @@ -0,0 +1,148 @@ + + + + + + + + +
+
+ + {{ i?.no }} + 待接单 + + + + +
+
+ + + + +
+
+ +
+ {{ i?.owner }} + 32943898021309809423 + 3321944288191034921 + 18112345678 +
+ +
+
+
+

装卸货信息

+

装货地:广东省深圳市龙岗区怡亚通大厦

+

联系人:奥利给/13680058545

+

卸货地:广东省深圳市福田区岗厦村9巷8号405(新村)

+

联系人:花花世界/13680058545

+

发货日期:广东省深圳市福田区岗厦村9巷8号405(新村)

+

卸货日期:花花世界/13680058545

+
+
+
+
+

货物信息

+

货物名称:广东省深圳市龙岗区怡亚通大厦

+

重量/体积:广东省深圳市福田区岗厦村9巷8号405(新村)

+

车型/车长:花花世界/13680058545

+
+
+
+
+

托运信息

+

公司名称:广东省深圳市龙岗区怡亚通大厦

+

联系人:广东省深圳市福田区岗厦村9巷8号405(新村)

+
+
+
+
+

承运信息

+

司机:广东省深圳市龙岗区怡亚通大厦

+

车牌号:广东省深圳市福田区岗厦村9巷8号405(新村)

+

车型/车长/承重:{{'拖车'}} | {{'4.5米'}} | {{'15吨'}}

+
+
+
+

补充信息

+

协议附件

+

装车附件

+

卸货附件

+

回单附件

+
+
+ +
+
+

运费信息

+
+

{{400 | currency }}

+

{{400 | currency }}

+

{{400 | currency }}

+

{{400 | currency }}

+

{{400 | currency}}

+

{{400 | currency }}

+
+
+ +
+
+

{{400 | currency }}

+

未支付

+
+ +
+
+ +
+
+
+ 司机运输费 + 1000.00 + 未支付 +
+
+
+
+ 司机运输费 + 1000.00 + 未支付 +
+
+ 附加费 + 1000.00 + 未支付 +
+
+
+ + +
+ +
+ + +
+
+ +
+
+
+
+
\ No newline at end of file diff --git a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.less b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.less new file mode 100644 index 00000000..3cd8c1be --- /dev/null +++ b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.less @@ -0,0 +1,36 @@ +:host{ + .btn-size{ + font-size: 14px; + } + .bdr{ + border-right: 1px solid #ccc; + } + .bdl{ + border-left: 1px solid #ccc; + } + .source-info{ + p{ + margin-bottom: .5em; + } + } + .freight-info-box{ + width: 95%; + } + .freigth-label{ + display: inline-block; + width: 50px; + text-align: right; + } + + ::ng-deep{ + .approval-status{ + .ant-steps{ + width: 70%; + margin: 0 auto; + } + } + } + .leftPadding { + padding-right: 100px; + } +} \ No newline at end of file diff --git a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.spec.ts b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.spec.ts new file mode 100644 index 00000000..8556cf2d --- /dev/null +++ b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.spec.ts @@ -0,0 +1,24 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { OrderManagementBulkeDetailComponent } from './bulk-detail.component'; + +describe('OrderManagementBulkeDetailComponent', () => { + let component: OrderManagementBulkeDetailComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ OrderManagementBulkeDetailComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(OrderManagementBulkeDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.ts b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.ts new file mode 100644 index 00000000..ac351533 --- /dev/null +++ b/src/app/routes/order-management/components/bulk-detail/bulk-detail.component.ts @@ -0,0 +1,116 @@ +/* + * @Author: your name + * @Date: 2021-12-03 15:31:52 + * @LastEditTime: 2021-12-06 20:21:29 + * @LastEditors: Please set LastEditors + * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + * @FilePath: \tms-obc-web\src\app\routes\order-management\components\vehicle-detail\vehicle-detail.component.ts + */ +import { Component, OnInit } from '@angular/core'; +import { ActivatedRoute } from '@angular/router'; +import { STColumn } from '@delon/abc/st'; +import { _HttpClient } from '@delon/theme'; +import { NzMessageService } from 'ng-zorro-antd/message'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { SupplyManagementService } from '../../services/order-management.service'; +import { OrderManagementGaodeMapComponent } from '../gaode-map/gaode-map.component'; +import * as $ from 'jquery'; +declare var AMapUI: any; +declare var AMap: any; +@Component({ + selector: 'app-supply-management-bulk-detail', + templateUrl: './bulk-detail.component.html', + styleUrls: ['./bulk-detail.component.less'] +}) +export class OrderManagementBulkeDetailComponent implements OnInit { + + id = this.route.snapshot.params.id; + i: any; + logColumns: STColumn[] = [ + { title: '时间', index: 'operationUserPhone' }, + { title: '地点', index: ' createTime' }, + ]; + + constructor( + private route: ActivatedRoute, + private msgSrv: NzMessageService, + private service: SupplyManagementService, + private modalService: NzModalService + ) { + + } + + ngOnInit(): void { + this.service.http.get(`/user/${this.id}?_allow_anonymous=true&_allow_badcode=true`).subscribe(res => { + console.log(res); + this.i = res + }); + } + + + + hand() { + this.modalService.create({ + nzTitle: '', + nzContent: OrderManagementGaodeMapComponent, + nzWidth: 1200 + }); + } + + goBack() { + window.history.go(-1); + } + + // poi选点 + PoiPicker() { + AMapUI.setDomLibrary($); + let map = new AMap.Map('container', { + zoom: 10 + }); + AMapUI.loadUI(['misc/PoiPicker'], function (PoiPicker: any) { + let poiPicker = new PoiPicker({ + // city:'北京', + input: 'pickerInput' + }); + //初始化poiPicker + (window as any).poiPicker = poiPicker; + + var marker = new AMap.Marker(); + + var infoWindow = new AMap.InfoWindow({ + offset: new AMap.Pixel(0, -20) + }); + console.log('0000') + console.log(PoiPicker) + //选取了某个POI + poiPicker.on('poiPicked', function (poiResult: any) { + console.log(1111); + console.log(poiResult) + // console.log(this.addressInput) + // this.addressInput = poiResult.item?.name + var source = poiResult.source, + poi = poiResult.item, + info = { + source: source, + id: poi.id, + name: poi.name, + location: poi.location.toString(), + address: poi.address + }; + marker.setMap(map); + infoWindow.setMap(map); + + marker.setPosition(poi.location); + infoWindow.setPosition(poi.location); + + infoWindow.setContent(`POI信息:
${JSON.stringify(info, null, 2)}
`); + infoWindow.open(map, marker.getPosition()); + + map.setCenter(marker.getPosition()); + }); + poiPicker.onCityReady(() => { + // poiPicker.suggest('美食'); + }); + }); + } +} diff --git a/src/app/routes/order-management/components/bulk/bulk.component.html b/src/app/routes/order-management/components/bulk/bulk.component.html new file mode 100644 index 00000000..5d909589 --- /dev/null +++ b/src/app/routes/order-management/components/bulk/bulk.component.html @@ -0,0 +1,147 @@ + + + +
+ +
+ +
+ + + +
+ +
+
+ + + + +
+
+
+
+ + + + + + +
+ + + + {{item.no}} + + + +
{{item.no}}
+
+ +
+ {{item.no}} +
+
+ +
+

预付:¥200.00

+

到付:¥200.00

+

油卡:¥200.00

+

回单付:¥200.00

+

小计:¥200.00

+

附加费:¥200.00

+
+
+
+
+
+ + + + + + + + + + + + + + + + + + +
变更原因:
+
拒绝原因:
+
注:
+
+ + + + +
+ + + + + +
+ 评分: +
评价内容:
+
+
+ +
+ 暂无评价内容 +
+
+
+
+ + + + +
\ No newline at end of file diff --git a/src/app/routes/order-management/components/bulk/bulk.component.less b/src/app/routes/order-management/components/bulk/bulk.component.less new file mode 100644 index 00000000..29a5e65b --- /dev/null +++ b/src/app/routes/order-management/components/bulk/bulk.component.less @@ -0,0 +1,2 @@ +:host { +} \ No newline at end of file diff --git a/src/app/routes/order-management/components/bulk/bulk.component.spec.ts b/src/app/routes/order-management/components/bulk/bulk.component.spec.ts new file mode 100644 index 00000000..13642576 --- /dev/null +++ b/src/app/routes/order-management/components/bulk/bulk.component.spec.ts @@ -0,0 +1,40 @@ +/* + * @Author: your name + * @Date: 2021-12-06 20:03:28 + * @LastEditTime: 2021-12-06 20:03:29 + * @LastEditors: Please set LastEditors + * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + * @FilePath: \tms-obc-web\src\app\routes\order-management\components\bulk\bulk.component.spec.ts + */ +/* + * @Author: your name + * @Date: 2021-12-06 19:39:49 + * @LastEditTime: 2021-12-06 19:41:08 + * @LastEditors: your name + * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE + * @FilePath: \tms-obc-web\src\app\routes\order-management\components\bulk\bulk.component.spec.ts + */ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { OrderManagementBulkComponent } from './bulk.component'; + +describe('OrderManagementBulkComponent', () => { + let component: OrderManagementBulkComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ OrderManagementBulkComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(OrderManagementBulkComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/order-management/components/bulk/bulk.component.ts b/src/app/routes/order-management/components/bulk/bulk.component.ts new file mode 100644 index 00000000..5e0c0b35 --- /dev/null +++ b/src/app/routes/order-management/components/bulk/bulk.component.ts @@ -0,0 +1,477 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { STColumn, STComponent } from '@delon/abc/st'; +import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; +import { ModalHelper, _HttpClient } from '@delon/theme'; +import { NzModalService } from 'ng-zorro-antd/modal'; +import { map } from 'rxjs/operators'; +import { SupplyManagementService } from '../../services/order-management.service'; + + +@Component({ + selector: 'app-supply-management-bulk', + templateUrl: './bulk.component.html', + styleUrls: ['./bulk.component.less'] +}) +export class OrderManagementBulkComponent implements OnInit { + url = `/user?_allow_anonymous=true`; + ui: SFUISchema = {}; + schema: SFSchema = {}; + auditMany = false; + isVisibleView = false; + isVisibleEvaluate = false; + isVisible = false; + _$expand = false; + @ViewChild('st') private readonly st!: STComponent; + @ViewChild('stFloat') private readonly stFloat!: STComponent; + @ViewChild('stFloatView') private readonly stFloatView!: STComponent; + @ViewChild('sf', { static: false }) sf!: SFComponent; + @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; + columns: STColumn[] = []; + columnsFloat: STColumn[] = []; + columnsFloatView: STColumn[] = []; + datass: any = [ + { + one: '1', + two: '1', + three: '1', + id: 1 + }, + { + one: '2', + two: '2', + three: '2', + id: 2 + }, +]; + tabs = [ { + name: '全部', + type: 5, + count: 0, + }, + { + name: '待发车', + type: 5, + count: 0, + }, + { + name: '运输中', + type: 5, + count: 0, + }, + { + name: '代签收', + type: 5, + count: 0, + }, + { + name: '已完成', + type: 5, + count: 0, + }, + { + name: '已取消', + type: 5, + count: 0, + }, + ]; + constructor(public service: SupplyManagementService, private modal: NzModalService) { } + + /** + * 查询参数 + */ + get reqParams() { + return { + ...this.sf?.value, + }; + } + get selectedRows() { + return this.st?.list.filter((item) => item.checked) || []; + } + ngOnInit(): void { + this.initSF(); + this.initST(); + this.initSTFloat(); + this.initSTFloatView(); + } + + + + /** + * 初始化查询表单 + */ + initSF() { + this.schema = { + properties: { + _$expand: { type: 'boolean', ui: { hidden: true } }, + no: { + type: 'string', + title: '运单号', + }, + no2: { + type: 'string', + title: '货源编号' + }, + no1: { + type: 'string', + title: '托运公司' + }, + no3: { + type: 'string', + title: '装货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no4: { + type: 'string', + title: '卸货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no7: { + type: 'string', + title: '承运司机', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no9: { + type: 'string', + title: '车牌号', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no10: { + type: 'string', + title: '收款人', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + sex: { + title: '支付状态', + type: 'string', + default: 0, + enum: [ + { label: '未知', value: 0 }, + { label: '男', value: 1 }, + { label: '女', value: 2 }, + { label: '保密', value: 3 }, + ], + ui: { + widget: 'select', + visibleIf: { + _$expand: (value: boolean) => value, + }, + } as SFSelectWidgetSchema, + }, + createTime: { + title: '创建时间', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd', + visibleIf: { + _$expand: (value: boolean) => value, + }, + } as SFDateWidgetSchema, + }, + appId: { + type: 'string', + title: '是否风险单', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + _$expand: (value: boolean) => value, + }, + allowClear: true, + asyncData: () => this.getCatalogueMember(), + }, + }, + }, + type: 'object', + }; + this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; + } + + /** + * 初始化数据列表 + */ + initST() { + this.columns = [ + { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, + { + title: '运单号', + width: '100px', + className: 'text-center', + render: 'goodsId' + }, + { + title: '货源编号', + width: '100px', + className: 'text-center', + }, + { title: '托运公司', index: 'externalSn', width: '120px', className: 'text-center' }, + { title: '装货地', index: 'linkUrl', width: '120px', className: 'text-center' }, + { + title: '卸货地', + className: 'text-center', + width: '120px', + }, + { + title: '货物名称', + className: 'text-center', + width: '120px', + }, + { + title: '承运司机', + className: 'text-center', + width: '120px', + }, + { + title: '车牌号', + className: 'text-center', + width: '120px', + }, + { + title: '运费单价', + className: 'text-center', + width: '120px', + }, + { + title: '接单重量', + className: 'text-center', + width: '120px', + }, + { + title: '运费变更记录', + className: 'text-center', + width: '120px', + render: 'feiong' + }, + { + title: '结算重量', + className: 'text-center', + width: '120px', + }, + { + title: '成交金额', + className: 'text-center', + width: '120px', + render: 'enStatusStr27878' + }, + { + title: '收款人', + className: 'text-center', + width: '120px', + + }, + { + title: '支付状态', + className: 'text-center', + width: '120px', + }, + { + title: '创建时间', + className: 'text-center', + index: 'enStatusStr3', + type: 'badge', + width: '100px', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '异常原因', + className: 'text-center', + index: 'enStatusStr3', + width: '100px', + }, + { + title: '运单状态', + className: 'text-center', + index: 'enStatusStr3', + type: 'badge', + width: '100px', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '操作', + fixed: 'right', + width: '200px', + className: 'text-left', + buttons: [ + { + text: '查看评价', + click: (_record) => this.viewEvaluate(_record), + }, + ], + }, + ]; + } + initSTFloat() { + this.columnsFloat = [ + { + title: '序号', + className: 'text-center', + index: 'one', + }, + { + title: '操作时间', + className: 'text-center', + index: 'two', + }, + { + title: '操作人', + className: 'text-center', + index: 'three', + }, + { title: '状态', index: 'externalSn', className: 'text-center' }, + { + title: '操作', + fixed: 'right', + className: 'text-left', + buttons: [ + { + text: '查看', + click: (_record) => this.FloatView(_record), + }, + { + text: '撤销', + click: (_record) => this.audit(_record), + }, + ], + }, + ]; + } + initSTFloatView() { + this.columnsFloatView = [ + { + title: '费用名称', + width: '100px', + className: 'text-center', + render: 'goodsId' + }, + { + title: '变更前', + width: '100px', + className: 'text-center', + }, + { title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, + { title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } + ]; + } + /** + * 查询字段个数 + */ + 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) { + console.log(item) + } + /** + * 重置表单 + */ + resetSF(): void { + this.sf.reset(); + this._$expand = false; + } + + + + // 获取录单员 + getCatalogueMember() { + const params = { + }; + return this.service.request(this.service.$api_get_catalogue_member, params, 'GET').pipe( + map((res) => { + if (res) { + console.log(res) + } + }), + ); + } + + selectChange(e: number) { + console.log(e); + } + /** + * 导入货源 + */ + importGoodsSource() { + + } + audit(item: any) { + console.log(item) + } + + /* + * 审核关闭弹窗 + view: 1 + 浮动费用: 0 + 查看评价: 3 + */ + handleCancel(type: string) { + console.log(type) + if(type === '0') { + this.isVisible = false + } else if(type === '1') { + console.log(type) + this.isVisibleView = false + } else if(type === '2') { + console.log(type) + this.isVisibleEvaluate = false + } + } + /** + * 审核通过按钮 + */ + handleOK() { + + } + OpenPrice() { + this.isVisible = true + } + /** + * 浮动费用查看 + */ + FloatView(item: any) { + console.log(item) + this.isVisibleView = true + } + /** + *查看评价 + */ + viewEvaluate(item: any) { + console.log(item) + this.isVisibleEvaluate = true + } +} diff --git a/src/app/routes/order-management/components/gaode-map/gaode-map.component.html b/src/app/routes/order-management/components/gaode-map/gaode-map.component.html new file mode 100644 index 00000000..47e3da45 --- /dev/null +++ b/src/app/routes/order-management/components/gaode-map/gaode-map.component.html @@ -0,0 +1,6 @@ +
+ +
+
diff --git a/src/app/routes/order-management/components/gaode-map/gaode-map.component.ts b/src/app/routes/order-management/components/gaode-map/gaode-map.component.ts new file mode 100644 index 00000000..81f96c8b --- /dev/null +++ b/src/app/routes/order-management/components/gaode-map/gaode-map.component.ts @@ -0,0 +1,70 @@ +import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'; +import { _HttpClient } from '@delon/theme'; +import * as $ from 'jquery'; +declare var AMapUI: any; +declare var AMap: any; + +@Component({ + selector: 'app-ordermanage-map', + templateUrl: './gaode-map.component.html' +}) +export class OrderManagementGaodeMapComponent implements OnInit { + addressInput: any; + constructor() {} + ngOnInit(): void { + this.PoiPicker(); + } + + // poi选点 + PoiPicker() { + AMapUI.setDomLibrary($); + let map = new AMap.Map('container', { + zoom: 10 + }); + AMapUI.loadUI(['misc/PoiPicker'], function (PoiPicker: any) { + let poiPicker = new PoiPicker({ + // city:'北京', + input: 'pickerInput' + }); + //初始化poiPicker + (window as any).poiPicker = poiPicker; + + var marker = new AMap.Marker(); + + var infoWindow = new AMap.InfoWindow({ + offset: new AMap.Pixel(0, -20) + }); + console.log('0000') + console.log(PoiPicker) + //选取了某个POI + poiPicker.on('poiPicked', function (poiResult: any) { + console.log(1111); + console.log(poiResult) + // console.log(this.addressInput) + // this.addressInput = poiResult.item?.name + var source = poiResult.source, + poi = poiResult.item, + info = { + source: source, + id: poi.id, + name: poi.name, + location: poi.location.toString(), + address: poi.address + }; + marker.setMap(map); + infoWindow.setMap(map); + + marker.setPosition(poi.location); + infoWindow.setPosition(poi.location); + + infoWindow.setContent(`POI信息:
${JSON.stringify(info, null, 2)}
`); + infoWindow.open(map, marker.getPosition()); + + map.setCenter(marker.getPosition()); + }); + poiPicker.onCityReady(() => { + // poiPicker.suggest('美食'); + }); + }); + } +} diff --git a/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.html b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.html index 61cbd133..d226599c 100644 --- a/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.html +++ b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.html @@ -1,3 +1,11 @@ + - - - - - + + -
- - -
- - + +
- - + + + +
+ + + + + + +
变更原因:
+
拒绝原因:
+
注:
+
+ + + + +
+ + + + + +
+ 评分: +
评价内容:
+
+
+ +
+ 暂无评价内容 +
+
+
+
+ + +
\ No newline at end of file diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.ts b/src/app/routes/order-management/components/vehicle/vehicle.component.ts index 0c35e2fb..70cb334a 100644 --- a/src/app/routes/order-management/components/vehicle/vehicle.component.ts +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, ViewChild } from '@angular/core'; import { STColumn, STComponent } from '@delon/abc/st'; -import { SFComponent, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; +import { SFComponent, SFDateWidgetSchema, SFSchema, SFSelectWidgetSchema, SFUISchema } from '@delon/form'; import { ModalHelper, _HttpClient } from '@delon/theme'; import { NzModalService } from 'ng-zorro-antd/modal'; import { map } from 'rxjs/operators'; @@ -15,16 +15,34 @@ import { SupplyManagementService } from '../../services/order-management.service export class OrderManagementVehicleComponent implements OnInit { url = `/user?_allow_anonymous=true`; ui: SFUISchema = {}; - ui2: SFUISchema = {}; schema: SFSchema = {}; - freightSchema: SFSchema = {}; auditMany = false; + isVisibleView = false; + isVisibleEvaluate = false; isVisible = false; _$expand = false; @ViewChild('st') private readonly st!: STComponent; + @ViewChild('stFloat') private readonly stFloat!: STComponent; + @ViewChild('stFloatView') private readonly stFloatView!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; columns: STColumn[] = []; + columnsFloat: STColumn[] = []; + columnsFloatView: STColumn[] = []; + datass: any = [ + { + one: '1', + two: '1', + three: '1', + id: 1 + }, + { + one: '2', + two: '2', + three: '2', + id: 2 + }, +]; tabs = [ { name: '全部', type: 5, @@ -36,7 +54,22 @@ export class OrderManagementVehicleComponent implements OnInit { count: 0, }, { - name: '已接单', + name: '待发车', + type: 5, + count: 0, + }, + { + name: '运输中', + type: 5, + count: 0, + }, + { + name: '代签收', + type: 5, + count: 0, + }, + { + name: '已完成', type: 5, count: 0, }, @@ -62,7 +95,8 @@ export class OrderManagementVehicleComponent implements OnInit { ngOnInit(): void { this.initSF(); this.initST(); - this.initSFFre(); + this.initSTFloat(); + this.initSTFloatView(); } @@ -76,18 +110,63 @@ export class OrderManagementVehicleComponent implements OnInit { _$expand: { type: 'boolean', ui: { hidden: true } }, no: { type: 'string', - title: '货源编号', + title: '订单号', }, no2: { type: 'string', - title: '装货地' + title: '货源编号' }, no1: { type: 'string', - title: '卸货地' + title: '托运人' + }, + no3: { + type: 'string', + title: '装货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no4: { + type: 'string', + title: '卸货地', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no7: { + type: 'string', + title: '承运司机', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no9: { + type: 'string', + title: '车牌号', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } + }, + no10: { + type: 'string', + title: '收款人', + ui: { + visibleIf: { + _$expand: (value: boolean) => value, + }, + } }, sex: { - title: '货物类型', + title: '支付状态', type: 'string', default: 0, enum: [ @@ -103,9 +182,21 @@ export class OrderManagementVehicleComponent implements OnInit { }, } as SFSelectWidgetSchema, }, + createTime: { + title: '创建时间', + type: 'string', + ui: { + widget: 'date', + mode: 'range', + format: 'yyyy-MM-dd', + visibleIf: { + _$expand: (value: boolean) => value, + }, + } as SFDateWidgetSchema, + }, appId: { type: 'string', - title: '录单员', + title: '是否风险单', ui: { widget: 'select', placeholder: '请选择', @@ -119,24 +210,9 @@ export class OrderManagementVehicleComponent implements OnInit { }, type: 'object', }; - this.ui = { '*': { spanLabelFixed: 80, grid: { span: 8, gutter: 4 } } }; - } - initSFFre() { - this.freightSchema = { - properties: { - roleDescription: { - title: '备注', - type: 'string', - maxLength: 50, - ui: { - placeholder: '请输入备注', - widget: 'textarea', - }, - }, - } - }; - this.ui2 = { '*': { spanLabelFixed: 120, grid: { span: 24 } } }; + this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } }; } + /** * 初始化数据列表 */ @@ -144,23 +220,19 @@ export class OrderManagementVehicleComponent implements OnInit { this.columns = [ { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, { - title: '货源编号', + title: '运单号', width: '100px', className: 'text-center', render: 'goodsId' }, - { title: '服务类型', index: 'externalSn', width: '120px', className: 'text-center' }, - { title: '货主', index: 'linkUrl', width: '120px', className: 'text-center' }, { - title: '项目名称', + title: '货源编号', + width: '100px', className: 'text-center', - width: '120px', }, + { title: '托运人', index: 'externalSn', width: '120px', className: 'text-center' }, + { title: '装货地', index: 'linkUrl', width: '120px', className: 'text-center' }, { - title: '装货地', - className: 'text-center', - width: '120px', - }, { title: '卸货地', className: 'text-center', width: '120px', @@ -169,34 +241,44 @@ export class OrderManagementVehicleComponent implements OnInit { title: '货物名称', className: 'text-center', width: '120px', - }, - { - title: '货物数量', + }, { + title: '重量/体积', className: 'text-center', width: '120px', }, { - title: '用车需求', + title: '承运司机', className: 'text-center', width: '120px', }, { - title: '总费用', + title: '车牌号', + className: 'text-center', + width: '120px', + }, + { + title: '出价', className: 'text-center', width: '120px', - index: 'goodsId', render: 'enStatusStr27878' }, { - title: '附加费', + title: '浮动费用', + className: 'text-center', + width: '120px', + render: 'feiong' + }, + { + title: '成交金额', className: 'text-center', width: '120px', }, { - title: '货源状态', + title: '收款人', className: 'text-center', index: 'enStatusStr2', type: 'badge', + width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, @@ -204,15 +286,40 @@ export class OrderManagementVehicleComponent implements OnInit { }, }, { - title: '创建时间', + title: '支付状态', width: '170px', className: 'text-center', }, { - title: '审核状态', + title: '创建时间', className: 'text-center', index: 'enStatusStr3', type: 'badge', + width: '100px', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '异常原因', + className: 'text-center', + index: 'enStatusStr3', + type: 'badge', + width: '100px', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '运单状态', + className: 'text-center', + index: 'enStatusStr3', + type: 'badge', + width: '100px', badge: { 正常: { text: '正常', color: 'success' }, 冻结: { text: '冻结', color: 'warning' }, @@ -223,40 +330,67 @@ export class OrderManagementVehicleComponent implements OnInit { title: '操作', fixed: 'right', width: '200px', - className: 'text-center', + className: 'text-left', buttons: [ { - text: '货源审核', - click: (_record) => this.audit(_record, 1), - }, - { - text: '修改货源', - // click: (_record) => this.editOne(_record), - }, - { - text: '修改运费', - click: (_record) => this.updateFreight(_record), - }, - { - text: '取消货源', - // click: (_record) => this.delOne(_record), - }, - { - text: '再下一单', - // click: (_record) => this.editOne(_record), - }, - { - text: '重新指派', - click: (_record) => this.assignedCar(_record), + text: '查看评价', + click: (_record) => this.viewEvaluate(_record), }, ], }, ]; } - add(): void { - // this.modal - // .createStatic(FormEditComponent, { i: { id: 0 } }) - // .subscribe(() => this.st.reload()); + initSTFloat() { + this.columnsFloat = [ + { + title: '序号', + className: 'text-center', + index: 'one', + }, + { + title: '操作时间', + className: 'text-center', + index: 'two', + }, + { + title: '操作人', + className: 'text-center', + index: 'three', + }, + { title: '状态', index: 'externalSn', className: 'text-center' }, + { + title: '操作', + fixed: 'right', + className: 'text-left', + buttons: [ + { + text: '查看', + click: (_record) => this.FloatView(_record), + }, + { + text: '撤销', + click: (_record) => this.audit(_record), + }, + ], + }, + ]; + } + initSTFloatView() { + this.columnsFloatView = [ + { + title: '费用名称', + width: '100px', + className: 'text-center', + render: 'goodsId' + }, + { + title: '变更前', + width: '100px', + className: 'text-center', + }, + { title: '变更值', index: 'externalSn', width: '120px', className: 'text-center' }, + { title: '变更后', index: 'externalSn', width: '120px', className: 'text-center' } + ]; } /** * 查询字段个数 @@ -300,77 +434,33 @@ export class OrderManagementVehicleComponent implements OnInit { selectChange(e: number) { console.log(e); } - - /** - * 编辑外部货源号 - * @param item st当前行对象 - */ - editEnternalSn(item: any) { - const modalRef = this.modal.create({ - nzWidth: '400px', - // nzContent: SupplyManagementUpdateExternalSnComponent, - nzComponentParams: { - orderObject: item, - }, - nzFooter: null, - nzClosable: false - }); - } - /** * 导入货源 */ importGoodsSource() { } - - /** - * 修改运费 - */ - updateFreight(item: any) { - const modalRef = this.modal.create({ - nzTitle: '修改运费', - nzWidth: '40%', - // nzContent: SupplyManagementUpdateFreightComponent, - nzComponentParams: { - i: item, - }, - nzFooter: null, - }); + audit(item: any) { + console.log(item) } - /** - * 重新指派 - */ - assignedCar(item: any) { - const modalRef = this.modal.create({ - nzTitle: '指派熟车', - nzWidth: '800px', - // nzContent: SupplyManagementAssignedCarComponent, - nzComponentParams: { - i: item, - }, - nzFooter: null, - }); - } - /** - * 审核 - */ - audit(value: any, status?: any) { - console.log(value) - console.log(status) - if(status === 2) { - this.auditMany = true; - } else { - this.auditMany = false; - } - this.isVisible = true; - } - /** + /* * 审核关闭弹窗 + view: 1 + 浮动费用: 0 + 查看评价: 3 */ - handleCancel(type: any) { + handleCancel(type: string) { + console.log(type) + if(type === '0') { this.isVisible = false + } else if(type === '1') { + console.log(type) + this.isVisibleView = false + } else if(type === '2') { + console.log(type) + this.isVisibleEvaluate = false + } } /** * 审核通过按钮 @@ -378,4 +468,21 @@ export class OrderManagementVehicleComponent implements OnInit { handleOK() { } + OpenPrice() { + this.isVisible = true + } + /** + * 浮动费用查看 + */ + FloatView(item: any) { + console.log(item) + this.isVisibleView = true + } + /** + *查看评价 + */ + viewEvaluate(item: any) { + console.log(item) + this.isVisibleEvaluate = true + } } 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 78517b5c..33b595da 100644 --- a/src/app/routes/order-management/order-management-routing.module.ts +++ b/src/app/routes/order-management/order-management-routing.module.ts @@ -1,19 +1,22 @@ /* * @Author: your name * @Date: 2021-12-03 15:31:52 - * @LastEditTime: 2021-12-03 16:02:33 + * @LastEditTime: 2021-12-06 20:21:41 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @FilePath: \tms-obc-web\src\app\routes\order-management\order-management-routing.module.ts */ import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; +import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component'; const routes: Routes = [ { path: 'vehicle', component: OrderManagementVehicleComponent }, { path: 'vehicle-detail/:id', component: OrderManagementVehicleDetailComponent }, + { path: 'bulk', component: OrderManagementBulkComponent }, + { path: 'bulk-detail/:id', component: OrderManagementVehicleDetailComponent }, ] @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 8d477b95..816f6970 100644 --- a/src/app/routes/order-management/order-management.module.ts +++ b/src/app/routes/order-management/order-management.module.ts @@ -1,5 +1,8 @@ import { NgModule, Type } from '@angular/core'; import { SharedModule } from '@shared'; +import { OrderManagementBulkeDetailComponent } from './components/bulk-detail/bulk-detail.component'; +import { OrderManagementBulkComponent } from './components/bulk/bulk.component'; +import { OrderManagementGaodeMapComponent } from './components/gaode-map/gaode-map.component'; import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component'; @@ -7,7 +10,10 @@ import { OrderManagementRoutingModule } from './order-management-routing.module' const COMPONENTS: Type[] = [ OrderManagementVehicleComponent, - OrderManagementVehicleDetailComponent + OrderManagementVehicleDetailComponent, + OrderManagementGaodeMapComponent, + OrderManagementBulkComponent, + OrderManagementBulkeDetailComponent ]; @NgModule({ diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index e6410b6f..7fbdce04 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -171,18 +171,30 @@ "text": "订单管理", "icon": "anticon anticon-dashboard", "group": true, - "children": [{ + "children": [ + { "text": "整车订单", "icon": "anticon anticon-dashboard", "link": "/order-management/vehicle", "reuse": true }, + { + "text": "大宗订单", + "icon": "anticon anticon-dashboard", + "link": "/order-management/bulk" + }, { "text": "整车订单详情", "icon": "anticon anticon-dashboard", "link": "/order-management/vehicle-detail/:id", "hide": true }, + { + "text": "大宗订单详情", + "icon": "anticon anticon-dashboard", + "link": "/order-management/bulk-detail/:id", + "hide": true + }, { "text": "货源详情", "icon": "anticon anticon-dashboard",