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 new file mode 100644 index 00000000..61cbd133 --- /dev/null +++ b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.html @@ -0,0 +1,102 @@ + + + + + + + +
+
+ + {{ i?.no }} + 待接单 + + + + +
+
+ + + + +
+
+ +
+ {{ i?.owner }} + 32943898021309809423 + 3321944288191034921 + 18112345678 + 曲丽丽 18100000000 + 曲丽丽 18100000000 +
+ +
+
+
+

装卸货信息

+

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

+

联系人:奥利给/13680058545

+

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

+

联系人:花花世界/13680058545

+

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

+

卸货日期:花花世界/13680058545

+
+
+
+
+

货物信息

+

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

+

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

+

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

+
+
+
+
+

承运信息

+

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

+

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

+

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

+
+
+
+

补充信息

+

需要回单

+

备注:奥利给/13680058545

+
+
+ +
+
+

运费信息

+
+

{{400 | currency }}

+

{{400 | currency }}

+

{{400 | currency }}

+

{{400 | currency}}

+

{{400 | currency }}

+
+
+ +
+
+

{{400 | currency }}

+
+ +
+
+ +
+ + + + +
+
\ No newline at end of file diff --git a/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.less b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.less new file mode 100644 index 00000000..a1566606 --- /dev/null +++ b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.less @@ -0,0 +1,37 @@ +:host{ + .btn-size{ + font-size: 14px; + } + .bdr{ + border-right: 1px solid #ccc; + } + .bdl{ + border-left: 1px solid #ccc; + } + .title{ + font-size: 26; + font-weight: bold; + } + .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; + } + } + } +} \ No newline at end of file diff --git a/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.spec.ts b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.spec.ts new file mode 100644 index 00000000..eae95066 --- /dev/null +++ b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.spec.ts @@ -0,0 +1,24 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { SupplyManagementVehicleDetailComponent } from './vehicle-detail.component'; + +describe('SupplyManagementVehicleDetailComponent', () => { + let component: SupplyManagementVehicleDetailComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ SupplyManagementVehicleDetailComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SupplyManagementVehicleDetailComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.ts b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.ts new file mode 100644 index 00000000..1157cbb7 --- /dev/null +++ b/src/app/routes/order-management/components/vehicle-detail/vehicle-detail.component.ts @@ -0,0 +1,53 @@ +/* + * @Author: your name + * @Date: 2021-12-03 15:31:52 + * @LastEditTime: 2021-12-03 15:59:54 + * @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\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 { SupplyManagementService } from '../../services/order-management.service'; + +@Component({ + selector: 'app-supply-management-vehicle-detail', + templateUrl: './vehicle-detail.component.html', + styleUrls: ['./vehicle-detail.component.less'] +}) +export class OrderManagementVehicleDetailComponent implements OnInit { + + id = this.route.snapshot.params.id; + i: any; + logColumns: STColumn[] = [ + { title: '内容', index: 'theme' }, + { title: '操作人', index: 'operationUserPhone' }, + { title: '操作时间', index: ' createTime' }, + ]; + + constructor( + private route: ActivatedRoute, + private msgSrv: NzMessageService, + private service: SupplyManagementService, + ) { + + } + + ngOnInit(): void { + this.service.http.get(`/user/${this.id}?_allow_anonymous=true&_allow_badcode=true`).subscribe(res => { + console.log(res); + this.i = res + }); + } + + + + + + goBack() { + window.history.go(-1); + } +} diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.html b/src/app/routes/order-management/components/vehicle/vehicle.component.html new file mode 100644 index 00000000..9666e6ae --- /dev/null +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.html @@ -0,0 +1,108 @@ + + + +
+ +
+ +
+ + + +
+ +
+
+ + + + +
+
+
+
+ + + + + + +
+ + +
+ + +
+ + + {{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/vehicle/vehicle.component.less b/src/app/routes/order-management/components/vehicle/vehicle.component.less new file mode 100644 index 00000000..29a5e65b --- /dev/null +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.less @@ -0,0 +1,2 @@ +:host { +} \ No newline at end of file diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.spec.ts b/src/app/routes/order-management/components/vehicle/vehicle.component.spec.ts new file mode 100644 index 00000000..e231763d --- /dev/null +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.spec.ts @@ -0,0 +1,24 @@ +import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; +import { SupplyManagementVehicleComponent } from './vehicle.component'; + +describe('SupplyManagementVehicleComponent', () => { + let component: SupplyManagementVehicleComponent; + let fixture: ComponentFixture; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [ SupplyManagementVehicleComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(SupplyManagementVehicleComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/routes/order-management/components/vehicle/vehicle.component.ts b/src/app/routes/order-management/components/vehicle/vehicle.component.ts new file mode 100644 index 00000000..0c35e2fb --- /dev/null +++ b/src/app/routes/order-management/components/vehicle/vehicle.component.ts @@ -0,0 +1,381 @@ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { STColumn, STComponent } from '@delon/abc/st'; +import { SFComponent, 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-vehicle', + templateUrl: './vehicle.component.html', + styleUrls: ['./vehicle.component.less'] +}) +export class OrderManagementVehicleComponent implements OnInit { + url = `/user?_allow_anonymous=true`; + ui: SFUISchema = {}; + ui2: SFUISchema = {}; + schema: SFSchema = {}; + freightSchema: SFSchema = {}; + auditMany = false; + isVisible = false; + _$expand = false; + @ViewChild('st') private readonly st!: STComponent; + @ViewChild('sf', { static: false }) sf!: SFComponent; + @ViewChild('sfFre', { static: false }) sfFre!: SFComponent; + columns: STColumn[] = []; + tabs = [ { + 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.initSFFre(); + } + + + + /** + * 初始化查询表单 + */ + initSF() { + this.schema = { + properties: { + _$expand: { type: 'boolean', ui: { hidden: true } }, + no: { + type: 'string', + title: '货源编号', + }, + no2: { + type: 'string', + title: '装货地' + }, + no1: { + type: 'string', + title: '卸货地' + }, + 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, + }, + appId: { + type: 'string', + title: '录单员', + ui: { + widget: 'select', + placeholder: '请选择', + visibleIf: { + _$expand: (value: boolean) => value, + }, + allowClear: true, + asyncData: () => this.getCatalogueMember(), + }, + }, + }, + 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 } } }; + } + /** + * 初始化数据列表 + */ + initST() { + this.columns = [ + { title: '', type: 'checkbox', width: '50px', className: 'text-center' }, + { + 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: '项目名称', + 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', + index: 'goodsId', + render: 'enStatusStr27878' + }, + { + title: '附加费', + className: 'text-center', + width: '120px', + }, + { + title: '货源状态', + className: 'text-center', + index: 'enStatusStr2', + type: 'badge', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '创建时间', + width: '170px', + className: 'text-center', + }, + { + title: '审核状态', + className: 'text-center', + index: 'enStatusStr3', + type: 'badge', + badge: { + 正常: { text: '正常', color: 'success' }, + 冻结: { text: '冻结', color: 'warning' }, + 废弃: { text: '废弃', color: 'default' }, + }, + }, + { + title: '操作', + fixed: 'right', + width: '200px', + className: 'text-center', + 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), + }, + ], + }, + ]; + } + add(): void { + // this.modal + // .createStatic(FormEditComponent, { i: { id: 0 } }) + // .subscribe(() => this.st.reload()); + } + /** + * 查询字段个数 + */ + 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); + } + + /** + * 编辑外部货源号 + * @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, + }); + } + + /** + * 重新指派 + */ + 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; + } + /** + * 审核关闭弹窗 + */ + handleCancel(type: any) { + this.isVisible = false + } + /** + * 审核通过按钮 + */ + handleOK() { + + } +} diff --git a/src/app/routes/order-management/order-management-routing.module.ts b/src/app/routes/order-management/order-management-routing.module.ts new file mode 100644 index 00000000..307407cb --- /dev/null +++ b/src/app/routes/order-management/order-management-routing.module.ts @@ -0,0 +1,23 @@ +/* + * @Author: your name + * @Date: 2021-12-03 15:31:52 + * @LastEditTime: 2021-12-03 16:00:08 + * @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 { 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 }, + + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class OrderManagementRoutingModule { } diff --git a/src/app/routes/order-management/order-management.module.ts b/src/app/routes/order-management/order-management.module.ts new file mode 100644 index 00000000..8d477b95 --- /dev/null +++ b/src/app/routes/order-management/order-management.module.ts @@ -0,0 +1,20 @@ +import { NgModule, Type } from '@angular/core'; +import { SharedModule } from '@shared'; +import { OrderManagementVehicleDetailComponent } from './components/vehicle-detail/vehicle-detail.component'; + +import { OrderManagementVehicleComponent } from './components/vehicle/vehicle.component'; +import { OrderManagementRoutingModule } from './order-management-routing.module'; + +const COMPONENTS: Type[] = [ + OrderManagementVehicleComponent, + OrderManagementVehicleDetailComponent +]; + +@NgModule({ + imports: [ + SharedModule, + OrderManagementRoutingModule + ], + declarations: COMPONENTS, +}) +export class OrderManagementModule { } diff --git a/src/app/routes/order-management/services/order-management.service.ts b/src/app/routes/order-management/services/order-management.service.ts new file mode 100644 index 00000000..80882fb7 --- /dev/null +++ b/src/app/routes/order-management/services/order-management.service.ts @@ -0,0 +1,14 @@ +import { Injectable, Injector } from '@angular/core'; +import { BaseService } from 'src/app/shared/services'; + +@Injectable({ + providedIn: 'root' +}) +export class SupplyManagementService extends BaseService { + + $api_get_catalogue_member = `/user?_allow_anonymous=true`; + $api_del_driver = ``; + 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 cc750e5c..aa1d1fa9 100644 --- a/src/app/routes/routes-routing.module.ts +++ b/src/app/routes/routes-routing.module.ts @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-11-29 10:20:33 - * @LastEditTime: 2021-12-03 11:10:47 + * @LastEditTime: 2021-12-03 15:58:57 * @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\routes-routing.module.ts @@ -35,6 +35,7 @@ const routes: Routes = [ { path: 'supplygoods', loadChildren: () => import('./supply-goods/supply-goods.module').then(m => m.SupplyGoodsModule) }, { path: 'vehicle', loadChildren: () => import('./vehicle/vehicle.module').then(m => m.VehicleModule) }, { path: 'supply-management', loadChildren: () => import('./supply-management/supply-management.module').then((m) => m.SupplyManagementModule) }, + { path: 'order-management', loadChildren: () => import('./order-management/order-management.module').then((m) => m.OrderManagementModule) }, ] }, // passport diff --git a/src/assets/mocks/menu-data.json b/src/assets/mocks/menu-data.json index 17db0d9f..85865fd1 100644 --- a/src/assets/mocks/menu-data.json +++ b/src/assets/mocks/menu-data.json @@ -125,6 +125,30 @@ } ] }, + { + "text": "订单管理", + "icon": "anticon anticon-dashboard", + "group": true, + "children": [{ + "text": "整车订单", + "icon": "anticon anticon-dashboard", + "link": "/order-management/vehicle", + "reuse": true + }, + { + "text": "整车订单详情", + "icon": "anticon anticon-dashboard", + "link": "/order-management/vehicle-detail/:id", + "hide": true + }, + { + "text": "货源详情", + "icon": "anticon anticon-dashboard", + "link": "/order-management/vehicle-detail", + "hide": true + } + ] + }, { "text": "车辆管理", "icon": "anticon anticon-dashboard",