Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop
This commit is contained in:
@ -0,0 +1,236 @@
|
|||||||
|
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">货源单设置</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data">
|
||||||
|
<ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title"
|
||||||
|
>装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km,预计行程耗时:{{ totalTime }}小时</span></div
|
||||||
|
>
|
||||||
|
|
||||||
|
<form nz-form [formGroup]="validateForm1" role="form">
|
||||||
|
<div nz-row [nzGutter]="24">
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<div *ngFor="let data1 of startInfo; let idx = index">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入装货地'">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-input-group [nzSuffix]="endInconTemp1">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data1.detailedAddress"
|
||||||
|
(click)="openMap('start', idx)"
|
||||||
|
formControlName="loadAddress{{ idx }}"
|
||||||
|
placeholder="请输入装货地"
|
||||||
|
/>
|
||||||
|
</nz-input-group>
|
||||||
|
<span style="padding: 0 10px"
|
||||||
|
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="chooseAddress(idx, 'start')"></i
|
||||||
|
></span>
|
||||||
|
</div>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data1.appUserName"
|
||||||
|
formControlName="loadName{{ idx }}"
|
||||||
|
maxlength="30"
|
||||||
|
placeholder="请输入联系人姓名"
|
||||||
|
/>
|
||||||
|
</nz-form-control>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
|
||||||
|
<input
|
||||||
|
style="margin-left: 12px"
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data1.contractTelephone"
|
||||||
|
maxlength="11"
|
||||||
|
formControlName="loadPhone{{ idx }}"
|
||||||
|
placeholder="请输入联系人电话"
|
||||||
|
/>
|
||||||
|
</nz-form-control>
|
||||||
|
</div>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzSpan]="4">
|
||||||
|
<div style="display: flex; justify-content: center">
|
||||||
|
<span style="padding: 24 px; font-size: 30px; color: #7d7d7d"><i nz-icon nzType="swap" nzTheme="outline"></i></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<div *ngFor="let data2 of endInfo; let idx = index">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>卸货地</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入卸货地'">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-input-group [nzSuffix]="endInconTemp1">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data2.detailedAddress"
|
||||||
|
(click)="openMap('end', idx)"
|
||||||
|
formControlName="unloadAddress{{ idx }}"
|
||||||
|
placeholder="请输入卸货地"
|
||||||
|
/>
|
||||||
|
</nz-input-group>
|
||||||
|
<span style="padding: 0 10px"
|
||||||
|
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="chooseAddress(idx, 'end')"></i
|
||||||
|
></span>
|
||||||
|
</div>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data2.appUserName"
|
||||||
|
maxlength="30"
|
||||||
|
formControlName="unloadName{{ idx }}"
|
||||||
|
placeholder="请输入联系人姓名"
|
||||||
|
/>
|
||||||
|
</nz-form-control>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
|
||||||
|
<input
|
||||||
|
style="margin-left: 12px"
|
||||||
|
nz-input
|
||||||
|
[(ngModel)]="data2.contractTelephone"
|
||||||
|
formControlName="unloadPhone{{ idx }}"
|
||||||
|
maxlength="11"
|
||||||
|
placeholder="请输入联系人电话"
|
||||||
|
/>
|
||||||
|
</nz-form-control>
|
||||||
|
</div>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
|
||||||
|
</form>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">货物信息</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf3 [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data"></sf>
|
||||||
|
<sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data">
|
||||||
|
<ng-template sf-template="freightPrice" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate">
|
||||||
|
<input nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" placeholder="请输入" />
|
||||||
|
</nz-input-group>
|
||||||
|
<ng-template #addOnAfterTemplate>
|
||||||
|
<nz-select [ngModel]="sf4.value.freightType" (ngModelChange)="sf4.setValue('/freightType', $event)">
|
||||||
|
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of freightTypeOptions"></nz-option>
|
||||||
|
</nz-select>
|
||||||
|
</ng-template>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="rule" let-i let-ui="ui">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-select [ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="运费取整规则">
|
||||||
|
<nz-option nzLabel="保留小数" nzValue="1"></nz-option>
|
||||||
|
<nz-option nzLabel="抹除小数" nzValue="2"></nz-option>
|
||||||
|
<nz-option nzLabel="抹除个数" nzValue="3"></nz-option>
|
||||||
|
</nz-select>
|
||||||
|
<span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2" nzTooltipPlacement="bottom"
|
||||||
|
><i nz-icon nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i
|
||||||
|
></span>
|
||||||
|
<ng-template #template2>
|
||||||
|
<p>例如 付司机运费 = 重量*单价 = 999.99</p>
|
||||||
|
<p>保留小数,即 999.99</p>
|
||||||
|
<p>抹除小数,即 999.00</p>
|
||||||
|
<p>抹除个位,即 990.00</p>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="weight" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'吨'">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
type="number"
|
||||||
|
[ngModel]="i.value"
|
||||||
|
min="0"
|
||||||
|
step="0.01"
|
||||||
|
(ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总重量,必填"
|
||||||
|
/>
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="volume" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'方'">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
type="number"
|
||||||
|
[ngModel]="i.value"
|
||||||
|
min="0"
|
||||||
|
step="0.01"
|
||||||
|
(ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总体积"
|
||||||
|
/>
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="number" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'车'">
|
||||||
|
<input
|
||||||
|
nz-input
|
||||||
|
type="number"
|
||||||
|
[ngModel]="i.value"
|
||||||
|
min="0"
|
||||||
|
step="0.01"
|
||||||
|
(ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总车次"
|
||||||
|
/>
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">补充信息</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data">
|
||||||
|
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||||
|
<div nz-row>
|
||||||
|
<div class="align-center">
|
||||||
|
<div nz-col nzSpan="16">
|
||||||
|
<nz-input-number
|
||||||
|
[ngModel]="i.value"
|
||||||
|
[nzMin]="1"
|
||||||
|
[nzMax]="30"
|
||||||
|
[nzStep]="1"
|
||||||
|
(ngModelChange)="i.setValue($event)"
|
||||||
|
nzPlaceHolder="请输入1-30"
|
||||||
|
></nz-input-number>
|
||||||
|
</div>
|
||||||
|
<div nz-col nzSpan="8">
|
||||||
|
<span>天内支付运费</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="align-center">
|
||||||
|
<button nz-button nzType="primary" (click)="submit('assign')">指派熟车</button>
|
||||||
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit('publish')">司机抢单</button>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
@ -0,0 +1,22 @@
|
|||||||
|
.tip-font {
|
||||||
|
margin-left: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-title {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-center {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
width: 300px;
|
||||||
|
height: 180px;
|
||||||
|
}
|
||||||
@ -0,0 +1,595 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import {
|
||||||
|
SFArrayWidgetSchema,
|
||||||
|
SFComponent,
|
||||||
|
SFNumberWidgetSchema,
|
||||||
|
SFSchema,
|
||||||
|
SFSchemaEnum,
|
||||||
|
SFSelectWidgetSchema,
|
||||||
|
SFTextareaWidgetSchema,
|
||||||
|
SFUISchema
|
||||||
|
} from '@delon/form';
|
||||||
|
import { SettingsService, _HttpClient } from '@delon/theme';
|
||||||
|
import format from 'date-fns/format';
|
||||||
|
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
|
import { AmapPoiPickerComponent, AmapService } from 'src/app/shared/components/amap';
|
||||||
|
import { SupplyManagementService } from '../../services/supply-management.service';
|
||||||
|
import { PublishGoodsChooseFamifiarComponent } from '../choose-famifiar/choose-famifiar.component';
|
||||||
|
|
||||||
|
// import { PublishGoodsChooseFamifiarComponent } from '../choose-famifiar-bulk/choose-famifiar.component';
|
||||||
|
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
|
||||||
|
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
|
||||||
|
// import { PublishSuccessComponent } from '../publish-success/publish-success.component';
|
||||||
|
@Component({
|
||||||
|
selector: 'app-publish-goods-bulk-publish',
|
||||||
|
templateUrl: './bulk-release-publish.component.html',
|
||||||
|
styleUrls: ['./bulk-release-publish.component.less']
|
||||||
|
})
|
||||||
|
export class SupplyManagementBulkReleasePublishComponent implements OnInit {
|
||||||
|
validateForm1: FormGroup;
|
||||||
|
sf1data: any; // 货源单设置回显
|
||||||
|
sf3data: any; // 货源单设置回显
|
||||||
|
sf4data: any; // 货源单设置回显
|
||||||
|
sf5data: any; // 货源单设置回显
|
||||||
|
sf6data: any; // 货源单设置回显
|
||||||
|
sf7data: any; // 货源单设置回显
|
||||||
|
creatTime: any; // 货源单设置回显
|
||||||
|
modifyTime: any; // 货源单设置回显
|
||||||
|
totalFees: any; // 总数信息
|
||||||
|
id = '';
|
||||||
|
type = 'add';
|
||||||
|
// // 单位
|
||||||
|
unit1 = '吨';
|
||||||
|
unit2 = '方';
|
||||||
|
unit3 = '保价费金额';
|
||||||
|
startInfo: any[] = [];
|
||||||
|
endInfo: any[] = [];
|
||||||
|
|
||||||
|
totalDistance = 0.0; //总里程
|
||||||
|
totalTime = 0.0; //路程总时间
|
||||||
|
|
||||||
|
currentGoodsTypeName: any;
|
||||||
|
|
||||||
|
freightTypeOptions: any;
|
||||||
|
ruleOptions: any;
|
||||||
|
constructor(
|
||||||
|
private http: _HttpClient,
|
||||||
|
fb: FormBuilder,
|
||||||
|
private modalService: NzModalService,
|
||||||
|
private settingSrv: SettingsService,
|
||||||
|
private service: SupplyManagementService,
|
||||||
|
private router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private amapService: AmapService
|
||||||
|
) {
|
||||||
|
this.validateForm1 = fb.group({
|
||||||
|
loadAddress0: [null, [Validators.required]],
|
||||||
|
loadName0: [null, [Validators.required]],
|
||||||
|
loadPhone0: [null, [Validators.required]],
|
||||||
|
unloadAddress0: [null, [Validators.required]],
|
||||||
|
unloadName0: [null, [Validators.required]],
|
||||||
|
unloadPhone0: [null, [Validators.required]]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewChild('sf1', { static: false }) sf1!: SFComponent;
|
||||||
|
schema1: SFSchema = {};
|
||||||
|
ui1!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf3', { static: false }) sf3!: SFComponent;
|
||||||
|
schema3: SFSchema = {};
|
||||||
|
ui3!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf4', { static: false }) sf4!: SFComponent;
|
||||||
|
schema4: SFSchema = {};
|
||||||
|
ui4!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf6', { static: false }) sf6!: SFComponent;
|
||||||
|
schema6: SFSchema = {};
|
||||||
|
ui6!: SFUISchema;
|
||||||
|
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.initSF1();
|
||||||
|
this.initSF3();
|
||||||
|
this.initSF4();
|
||||||
|
this.initSF6();
|
||||||
|
this.startInfo = [
|
||||||
|
{
|
||||||
|
detailedAddress: '',
|
||||||
|
appUserName: '',
|
||||||
|
contractTelephone: '',
|
||||||
|
latitude: '',
|
||||||
|
longitude: '',
|
||||||
|
province: '',
|
||||||
|
city: '',
|
||||||
|
area: '',
|
||||||
|
type: '1'
|
||||||
|
}
|
||||||
|
];
|
||||||
|
this.endInfo = [
|
||||||
|
{
|
||||||
|
detailedAddress: '',
|
||||||
|
appUserName: '',
|
||||||
|
contractTelephone: '',
|
||||||
|
latitude: '',
|
||||||
|
longitude: '',
|
||||||
|
province: '',
|
||||||
|
city: '',
|
||||||
|
area: '',
|
||||||
|
type: '2'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
initSF1() {
|
||||||
|
this.schema1 = {
|
||||||
|
properties: {
|
||||||
|
shipperAppUserId: {
|
||||||
|
title: '货主',
|
||||||
|
type: 'string',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
serverSearch: true,
|
||||||
|
searchDebounceTime: 300,
|
||||||
|
searchLoadingText: '搜索中...',
|
||||||
|
onSearch: (q: any) => {
|
||||||
|
if (!!q) {
|
||||||
|
return this.service
|
||||||
|
.request(this.service.$api_enterpriceList, { enterpriseName: q})
|
||||||
|
.pipe(map((res: any[]) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||||
|
.toPromise();
|
||||||
|
} else {
|
||||||
|
return of([]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
change: (q: any) => {
|
||||||
|
this.getRegionCode(q)
|
||||||
|
},
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value,
|
||||||
|
},
|
||||||
|
} as SFSelectWidgetSchema,
|
||||||
|
},
|
||||||
|
enterpriseProjectId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '项目',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
enterpriseInfoName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '网络货运人',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom'
|
||||||
|
},
|
||||||
|
default: '天津市怡亚通XXXX有限公司'
|
||||||
|
},
|
||||||
|
deadlineTime: {
|
||||||
|
title: '截至日期',
|
||||||
|
type: 'string',
|
||||||
|
format: 'date-time',
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入',
|
||||||
|
format: 'yyyy-MM-dd HH:mm:ss'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dispatchId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '调度员',
|
||||||
|
enum: [
|
||||||
|
{ label: '周涛', value: 1 },
|
||||||
|
{ label: '李诞', value: 2 }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您'
|
||||||
|
// asyncData: () =>
|
||||||
|
// this.service.loadChildData2('0', '2').pipe(
|
||||||
|
// map((data: any) => {
|
||||||
|
// return data.map((m: any) => {
|
||||||
|
// return { label: m.name, value: m.id };
|
||||||
|
// });
|
||||||
|
// }),
|
||||||
|
// ),
|
||||||
|
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['deadlineTime']
|
||||||
|
};
|
||||||
|
this.ui1 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 12 }
|
||||||
|
},
|
||||||
|
$enterpriseInfoName: {
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF3() {
|
||||||
|
this.schema3 = {
|
||||||
|
properties: {
|
||||||
|
goodsTypeId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货物名称',
|
||||||
|
enum: [
|
||||||
|
{ label: '服装', value: '1' },
|
||||||
|
{ label: '电子产品', value: '2' },
|
||||||
|
{ label: '其他', value: '3' }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
errors: { required: '请填写货物名称' },
|
||||||
|
change: (value, data) => {
|
||||||
|
this.currentGoodsTypeName = data;
|
||||||
|
}
|
||||||
|
// asyncData: () =>
|
||||||
|
// this.categoryService.loadChildData2('0', '2').pipe(
|
||||||
|
// map((data: any) => {
|
||||||
|
// return data.map((m: any) => {
|
||||||
|
// return { label: m.name, value: m.id };
|
||||||
|
// });
|
||||||
|
// }),
|
||||||
|
// ),
|
||||||
|
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
goodsName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
maxLength: 20,
|
||||||
|
ui: {
|
||||||
|
errors: { required: '请填写货物名称' },
|
||||||
|
visibleIf: {
|
||||||
|
goodsType: value => value === '其他'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['goodsTypeId', 'goodsName']
|
||||||
|
};
|
||||||
|
this.ui3 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 12 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
initSF4() {
|
||||||
|
this.schema4 = {
|
||||||
|
properties: {
|
||||||
|
freightPrice: {
|
||||||
|
type: 'string',
|
||||||
|
title: '运费单价',
|
||||||
|
ui: {
|
||||||
|
errors: { required: '请选择运费单价' },
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
freightType: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
hidden: true
|
||||||
|
},
|
||||||
|
default: '1'
|
||||||
|
},
|
||||||
|
|
||||||
|
rule: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
errors: { required: '请选择运费取整规则' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
settlementBasis: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'goodresource:settlement:type' },
|
||||||
|
placeholder: '结算依据',
|
||||||
|
errors: { required: '请选择结算依据' }
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
weight: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货物数量',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入',
|
||||||
|
errors: { required: '请填写总重量' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
volume: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
number: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
maxWeight: {
|
||||||
|
type: 'string',
|
||||||
|
title: '车型/车长',
|
||||||
|
default: [],
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'car:model' },
|
||||||
|
mode: 'multiple',
|
||||||
|
placeholder: '请选择车型',
|
||||||
|
errors: { required: '请选择车型' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
maxCube: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
default: [],
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'car:length' },
|
||||||
|
mode: 'multiple',
|
||||||
|
placeholder: '请选择车长',
|
||||||
|
errors: { required: '请选择车长' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['weight', 'maxWeight', 'maxCube', 'freightPrice', 'rule', 'settlementBasis']
|
||||||
|
};
|
||||||
|
this.ui4 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
},
|
||||||
|
$freightPrice: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$rule: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$settlementBasis: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$weight: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$volume: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$number: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$maxWeight: {
|
||||||
|
grid: { span: 12 }
|
||||||
|
},
|
||||||
|
$maxCube: {
|
||||||
|
grid: { span: 12 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF6() {
|
||||||
|
this.schema6 = {
|
||||||
|
properties: {
|
||||||
|
paymentDays: {
|
||||||
|
type: 'string',
|
||||||
|
title: '到货后',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入',
|
||||||
|
errors: { required: '请输入付款承诺天数' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
remarks: {
|
||||||
|
type: 'string',
|
||||||
|
title: '备注',
|
||||||
|
maxLength: 200,
|
||||||
|
ui: {
|
||||||
|
widget: 'textarea',
|
||||||
|
placeholder: '请输入',
|
||||||
|
autosize: { minRows: 3, maxRows: 3 }
|
||||||
|
} as SFTextareaWidgetSchema
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['paymentDays']
|
||||||
|
};
|
||||||
|
this.ui6 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
//指派熟车
|
||||||
|
chooseFamifiar(item: any) {
|
||||||
|
// this.modalService.create({
|
||||||
|
// nzTitle: '指派熟车',
|
||||||
|
// nzContent: PublishGoodsChooseFamifiarComponent,
|
||||||
|
// nzComponentParams: {
|
||||||
|
// submitParams: item,
|
||||||
|
// submitUrl: this.service.$api_save_bulk_assign
|
||||||
|
// },
|
||||||
|
// nzWidth: 1300
|
||||||
|
// });
|
||||||
|
}
|
||||||
|
submit(submitType: string): void {
|
||||||
|
Object.keys(this.validateForm1.controls).forEach(key => {
|
||||||
|
this.validateForm1.controls[key].markAsDirty();
|
||||||
|
this.validateForm1.controls[key].updateValueAndValidity();
|
||||||
|
});
|
||||||
|
this.sf1.validator({ emitError: true });
|
||||||
|
this.sf3.validator({ emitError: true });
|
||||||
|
this.sf4.validator({ emitError: true });
|
||||||
|
this.sf6.validator({ emitError: true });
|
||||||
|
if (this.validateForm1.invalid || !this.sf1.valid || !this.sf3.valid || !this.sf4.valid || !this.sf6.valid) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// //装卸货信息
|
||||||
|
const LoadingList = this.startInfo.concat(this.endInfo);
|
||||||
|
// // 货物信息
|
||||||
|
const goodsInfoList = [
|
||||||
|
{
|
||||||
|
...this.sf3.value,
|
||||||
|
goodsTypeName: this.currentGoodsTypeName.label,
|
||||||
|
goodsName: '电子',
|
||||||
|
goodsNameId: '1',
|
||||||
|
...this.sf4.value,
|
||||||
|
maxWeight: this.sf4.value.maxWeight.join(','),
|
||||||
|
maxCube: this.sf4.value.maxCube.join(',')
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const params = {
|
||||||
|
id: '',
|
||||||
|
...this.sf1.value,
|
||||||
|
unLoadingPlaceDTOList: LoadingList,
|
||||||
|
goodsInfoDTOList: goodsInfoList,
|
||||||
|
...this.sf6.value
|
||||||
|
};
|
||||||
|
|
||||||
|
let reqUrl = this.service.$api_consignBulk;
|
||||||
|
if (submitType === 'assign') {
|
||||||
|
console.log('params', params);
|
||||||
|
this.chooseFamifiar(params);
|
||||||
|
} else {
|
||||||
|
this.service.request(reqUrl, params).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.modalService.create({
|
||||||
|
nzTitle: '',
|
||||||
|
nzContent: PublishSuccessComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzFooter: null,
|
||||||
|
nzComponentParams: { type: 'bulk' }
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取城市列表
|
||||||
|
getRegionCode(regionCode: any) {
|
||||||
|
console.log(regionCode)
|
||||||
|
return this.service
|
||||||
|
.request(this.service.$api_get_enterprise_project, { id: regionCode })
|
||||||
|
.pipe(
|
||||||
|
map((res) =>
|
||||||
|
res.map((item: any) => ({
|
||||||
|
label: item.projectName,
|
||||||
|
value: item.id,
|
||||||
|
})),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.subscribe((res) => {
|
||||||
|
this.sf1.getProperty('/enterpriseProjectId')!.schema.enum = res;
|
||||||
|
this.sf1.getProperty('/enterpriseProjectId')!.widget.reset(res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 打开地图
|
||||||
|
openMap(type: string, index: number) {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '',
|
||||||
|
nzContent: AmapPoiPickerComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzOnOk: item => {
|
||||||
|
const poi = item.poi;
|
||||||
|
const locList = poi.pois;
|
||||||
|
switch (type) {
|
||||||
|
case 'start':
|
||||||
|
this.startInfo[index].detailedAddress = poi.formattedAddress;
|
||||||
|
this.startInfo[index].longitude = locList[0];
|
||||||
|
this.startInfo[index].latitude = locList[1];
|
||||||
|
this.startInfo[index].province = poi.addressComponent.province;
|
||||||
|
this.startInfo[index].city = poi.addressComponent.city;
|
||||||
|
this.startInfo[index].area = poi.addressComponent.district;
|
||||||
|
break;
|
||||||
|
case 'end':
|
||||||
|
this.endInfo[index].detailedAddress = poi.formattedAddress;
|
||||||
|
this.endInfo[index].longitude = locList[0];
|
||||||
|
this.endInfo[index].latitude = locList[1];
|
||||||
|
this.endInfo[index].province = poi.addressComponent.province;
|
||||||
|
this.endInfo[index].city = poi.addressComponent.city;
|
||||||
|
this.endInfo[index].area = poi.addressComponent.district;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (this.startInfo[0]?.area && this.endInfo[0]?.area) {
|
||||||
|
this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => {
|
||||||
|
this.totalDistance = res.distance;
|
||||||
|
this.totalTime = res.time;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
chooseAddress(index: number, type: string) {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '选择地址',
|
||||||
|
nzContent: PublishAddressListComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzComponentParams: { spuStatus: '1' },
|
||||||
|
nzOnOk: item => {
|
||||||
|
const data = item.seleteData;
|
||||||
|
if (JSON.stringify(data) === '{}') return;
|
||||||
|
switch (type) {
|
||||||
|
case 'start':
|
||||||
|
this.startInfo[index] = {
|
||||||
|
detailedAddress: data.detailedAddress,
|
||||||
|
appUserName: data.contactName,
|
||||||
|
contractTelephone: data.contactTelephone,
|
||||||
|
latitude: data.contactTelephone,
|
||||||
|
longitude: data.latitude,
|
||||||
|
province: data.province,
|
||||||
|
city: data.city,
|
||||||
|
area: data.area,
|
||||||
|
type: '1'
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'end':
|
||||||
|
this.endInfo[index] = {
|
||||||
|
detailedAddress: data.detailedAddress,
|
||||||
|
appUserName: data.contactName,
|
||||||
|
contractTelephone: data.contactTelephone,
|
||||||
|
latitude: data.contactTelephone,
|
||||||
|
longitude: data.latitude,
|
||||||
|
province: data.province,
|
||||||
|
city: data.city,
|
||||||
|
area: data.area,
|
||||||
|
type: '2'
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -34,12 +34,18 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
<ng-template #extraTemplate>
|
||||||
|
<div>
|
||||||
|
<button (click)="audit('',2)" nz-button nzType="primary">批量审核</button>
|
||||||
|
<button (click)="releaseGoods()" nz-button nzType="primary">代发货源</button>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
<nz-card>
|
<nz-card>
|
||||||
<!-- <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
|
<!-- <nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
|
||||||
<nz-tab *ngFor="let tab of tabs; let i = index" [nzTitle]="tab.name + ' (' + tab.count + ') '" (nzClick)="tabChange(i)">
|
<nz-tab *ngFor="let tab of tabs; let i = index" [nzTitle]="tab.name + ' (' + tab.count + ') '" (nzClick)="tabChange(i)">
|
||||||
</nz-tab>
|
</nz-tab>
|
||||||
</nz-tabset> -->
|
</nz-tabset> -->
|
||||||
<nz-tabset (nzSelectedIndexChange)="selectChange($event)">
|
<nz-tabset (nzSelectedIndexChange)="selectChange($event)" [nzTabBarExtraContent]="extraTemplate">
|
||||||
<nz-tab [nzTitle]="'全部('+tabs?.totalQuantity+')'"></nz-tab>
|
<nz-tab [nzTitle]="'全部('+tabs?.totalQuantity+')'"></nz-tab>
|
||||||
<nz-tab [nzTitle]="'进行中('+tabs?.stayQuantity+')'"></nz-tab>
|
<nz-tab [nzTitle]="'进行中('+tabs?.stayQuantity+')'"></nz-tab>
|
||||||
<nz-tab [nzTitle]="'已完结('+tabs?.receivedQuantity+')'"></nz-tab>
|
<nz-tab [nzTitle]="'已完结('+tabs?.receivedQuantity+')'"></nz-tab>
|
||||||
|
|||||||
@ -395,13 +395,19 @@ export class SupplyManagementBulkComponent implements OnInit {
|
|||||||
*/
|
*/
|
||||||
handleCancel(type: any) {
|
handleCancel(type: any) {
|
||||||
this.isVisible = false
|
this.isVisible = false
|
||||||
}
|
}
|
||||||
|
/**
|
||||||
|
* 代发货源
|
||||||
|
*/
|
||||||
|
releaseGoods() {
|
||||||
|
this.router.navigate(['/supply-management/bulk-release']);
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* 审核通过按钮
|
* 审核通过按钮
|
||||||
*/
|
*/
|
||||||
handleOK() {
|
handleOK() {
|
||||||
|
|
||||||
}
|
}
|
||||||
// 修改单价
|
// 修改单价
|
||||||
modification(item: any) {
|
modification(item: any) {
|
||||||
const modalRef = this.modal.create({
|
const modalRef = this.modal.create({
|
||||||
|
|||||||
@ -222,21 +222,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|
||||||
<nz-card>
|
<nz-card>
|
||||||
<div class="card-title">运费信息</div>
|
<div class="card-title">运费信息</div>
|
||||||
<div nz-row>
|
<div nz-row>
|
||||||
<div nz-col nzSpan="12">
|
<div nz-col nzSpan="12">
|
||||||
<sf #sf7 [schema]="schema7" [formData]="sf7data" [button]="'none'" [ui]="ui7">
|
<sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data">
|
||||||
<ng-template sf-template="totalFee" let-i let-ui="ui" >
|
<ng-template sf-template="subtotal" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||||
<div>{{totalFees | currency: '¥'}}</div>
|
<ng-template sf-template="appendFee" let-i let-ui="ui">¥{{i.value}}(费率:{{currentRate | number: '0.2-4' }}%)</ng-template>
|
||||||
</ng-template>
|
<ng-template sf-template="total" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||||
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||||
<div nz-row>
|
<div nz-row>
|
||||||
<div class="align-center">
|
<div class="align-center">
|
||||||
<div nz-col nzSpan="16">
|
<div nz-col nzSpan="16">
|
||||||
<!-- <input nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" /> -->
|
<nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
|
||||||
<nz-input-number [(ngModel)]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1" [nzMax]="30" [nzStep]="1"></nz-input-number>
|
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30"></nz-input-number>
|
||||||
</div>
|
</div>
|
||||||
<div nz-col nzSpan="8">
|
<div nz-col nzSpan="8">
|
||||||
<span>天内支付运费</span>
|
<span>天内支付运费</span>
|
||||||
@ -250,7 +249,7 @@
|
|||||||
</nz-card>
|
</nz-card>
|
||||||
<nz-card>
|
<nz-card>
|
||||||
<div class="align-center">
|
<div class="align-center">
|
||||||
<button nz-button nzType="primary" (click)="chooseFamifiar()">指派熟车</button>
|
<button nz-button nzType="primary" (click)="chooseFamifiar()">取消</button>
|
||||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">司机抢单</button>
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">提交修改</button>
|
||||||
</div>
|
</div>
|
||||||
</nz-card>
|
</nz-card>
|
||||||
|
|||||||
@ -40,6 +40,8 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
totalFees: any; // 总数信息
|
totalFees: any; // 总数信息
|
||||||
totalDistance = 0.0; //总里程
|
totalDistance = 0.0; //总里程
|
||||||
totalTime = 0.0; //路程总时间
|
totalTime = 0.0; //路程总时间
|
||||||
|
currentRate = 0 //实时计算的费率
|
||||||
|
|
||||||
npp =false
|
npp =false
|
||||||
id = this.route.snapshot.params.id;
|
id = this.route.snapshot.params.id;
|
||||||
// // 单位
|
// // 单位
|
||||||
@ -369,7 +371,6 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
initSF6() {
|
initSF6() {
|
||||||
this.schema6 = {
|
this.schema6 = {
|
||||||
properties: {
|
properties: {
|
||||||
@ -392,6 +393,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
ui: {
|
ui: {
|
||||||
widget: 'dict-select',
|
widget: 'dict-select',
|
||||||
params: { dictKey: 'receipt:type' },
|
params: { dictKey: 'receipt:type' },
|
||||||
|
containsAllLable:false,
|
||||||
placeholder: '请选择',
|
placeholder: '请选择',
|
||||||
errors: { required: '请选择' },
|
errors: { required: '请选择' },
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
@ -399,56 +401,55 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
receiptUserId: {
|
receiptAddressId: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '选择地址',
|
title: '选择地址',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'custom',
|
widget: 'custom',
|
||||||
placeholder: '请点击选择收回单地址',
|
placeholder: '请点击选择收回单地址',
|
||||||
validator: val => (this.sf6?.value?.receiptType === '2' ? [{ keyword: 'required', message: '请点击选择收回单地址' }] : []),
|
// validator: val => (this.sf6?.value?.receiptType === '2' ? [{ keyword: 'required', message: '请点击选择收回单地址' }] : []),
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
receiptType: value => value === 2
|
receiptType: value => value === '2'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
default: '1212'
|
default: ''
|
||||||
},
|
},
|
||||||
name4: {
|
receiptUserName: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '联系人',
|
title: '联系人',
|
||||||
ui: {
|
ui: {
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
receiptType: value => value === 2
|
receiptType: value => value === '2'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
readOnly: true
|
readOnly: true
|
||||||
},
|
},
|
||||||
name5: {
|
phon: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '联系电话',
|
title: '联系电话',
|
||||||
ui: {
|
ui: {
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
receiptType: value => value === 2
|
receiptType: value => value === '2'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
readOnly: true
|
readOnly: true
|
||||||
},
|
},
|
||||||
name6: {
|
area: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '所在地区',
|
title: '所在地区',
|
||||||
ui: {
|
ui: {
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
receiptType: value => value === 2
|
receiptType: value => value === '2'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
readOnly: true
|
readOnly: true
|
||||||
},
|
},
|
||||||
receiptAddress: {
|
address: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '详细地址',
|
title: '详细地址',
|
||||||
maxLength: 20,
|
|
||||||
ui: {
|
ui: {
|
||||||
visibleIf: {
|
visibleIf: {
|
||||||
receiptType: value => value === 2
|
receiptType: value => value === '2'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
readOnly: true
|
readOnly: true
|
||||||
@ -464,7 +465,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
} as SFTextareaWidgetSchema
|
} as SFTextareaWidgetSchema
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
required: ['stateReceipt', 'receiptType']
|
required: ['stateReceipt', 'receiptType','receiptAddressId']
|
||||||
};
|
};
|
||||||
this.ui6 = {
|
this.ui6 = {
|
||||||
'*': {
|
'*': {
|
||||||
@ -480,50 +481,43 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
initSF7() {
|
initSF7() {
|
||||||
this.schema7 = {
|
this.schema7 = {
|
||||||
properties: {
|
properties: {
|
||||||
prePay: { type: 'number', title: '预付', default: 0, ui: { prefix: '¥', change: ()=> {
|
prePay: {
|
||||||
this.changeValue();
|
type: 'number',
|
||||||
},
|
title: '预付',
|
||||||
} as SFNumberWidgetSchema },
|
default: 0,
|
||||||
toPay: { type: 'number', title: '到付', default: 0, ui: { prefix: '¥',change: ()=> {
|
|
||||||
this.changeValue();
|
|
||||||
},
|
|
||||||
} as SFNumberWidgetSchema },
|
|
||||||
oilCardPay: { type: 'number', title: '油卡', default: 0, ui: { prefix: '¥',change: ()=> {this.changeValue();} ,
|
|
||||||
} as SFNumberWidgetSchema },
|
|
||||||
receiptPay: { type: 'number', title: '回单付', default: 0, ui: { prefix: '¥',change: ()=> {
|
|
||||||
this.changeValue();},
|
|
||||||
} as SFNumberWidgetSchema },
|
|
||||||
subtotal: {
|
|
||||||
type: 'string',
|
|
||||||
title: '小计',
|
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'custom',
|
prefix: '¥',
|
||||||
placeholder: '请输入',
|
change: args => this.payChange()
|
||||||
},
|
} as SFNumberWidgetSchema
|
||||||
},
|
},
|
||||||
appendFee: {
|
toPay: {
|
||||||
type: 'string',
|
type: 'number',
|
||||||
title: '附加费',
|
title: '到付',
|
||||||
ui: {
|
default: 0,
|
||||||
widget: 'custom',
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
placeholder: '请输入',
|
|
||||||
},
|
|
||||||
|
|
||||||
},
|
},
|
||||||
totalFee: {
|
oilCardPay: {
|
||||||
type: 'string',
|
type: 'number',
|
||||||
title: '总费用',
|
title: '油卡',
|
||||||
ui: {
|
default: 0,
|
||||||
widget: 'custom',
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
placeholder: '请输入'
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
|
receiptPay: {
|
||||||
|
type: 'number',
|
||||||
|
title: '回单付',
|
||||||
|
default: 0,
|
||||||
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
|
},
|
||||||
|
subtotal: { type: 'number', title: '小计',default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
|
appendFee: { type: 'number', title: '附加费', default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
|
total: { type: 'number', title: '总费用', default: 0, ui: { widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
paymentDays: {
|
paymentDays: {
|
||||||
type: 'string',
|
type: 'string',
|
||||||
title: '到货后',
|
title: '到货后',
|
||||||
ui: {
|
ui: {
|
||||||
widget: 'custom',
|
widget: 'custom',
|
||||||
placeholder: '请输入',
|
placeholder: '请输入',
|
||||||
|
errors: { required: '请输入付款承诺天数' }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -536,6 +530,28 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
payChange() {
|
||||||
|
const subtotal = (this.sf7.value.prePay + this.sf7.value.toPay + this.sf7.value.oilCardPay + this.sf7.value.receiptPay) || 0;
|
||||||
|
const oilCardPay = this.sf7.value.oilCardPay || 0;
|
||||||
|
this.service.request(this.service.$api_getCalculatedSurcharge+`?totalFreight=${subtotal}&fuelCardAmount=${oilCardPay}`).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.sf7.setValue('/appendFee', res.surcharge);
|
||||||
|
this.sf7.setValue('/subtotal', subtotal);
|
||||||
|
this.sf7.setValue('/total', subtotal+res.surcharge);
|
||||||
|
this.service.request(this.service.$api_getcalculatedServiceRate+`?invoiceAmount=${subtotal+res.surcharge}&totalFreight=${subtotal}`).subscribe(res => {
|
||||||
|
if (res) {
|
||||||
|
this.currentRate = res.rate;
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
addStartInfo(event: any) {
|
addStartInfo(event: any) {
|
||||||
if (this.startInfo.length < 5) {
|
if (this.startInfo.length < 5) {
|
||||||
|
|||||||
@ -1,3 +1,11 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: your name
|
||||||
|
* @Date: 2021-12-14 20:39:34
|
||||||
|
* @LastEditTime: 2021-12-28 20:49:04
|
||||||
|
* @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\supply-management\components\onecar-publish\publish-success\publish-success.component.html
|
||||||
|
-->
|
||||||
<div style="margin-top: 64px">
|
<div style="margin-top: 64px">
|
||||||
<nz-result nzStatus="success" nzTitle="下单成功!">
|
<nz-result nzStatus="success" nzTitle="下单成功!">
|
||||||
<div nz-result-extra>
|
<div nz-result-extra>
|
||||||
|
|||||||
@ -1,11 +1,3 @@
|
|||||||
/*
|
|
||||||
* @Author: your name
|
|
||||||
* @Date: 2021-12-14 20:39:34
|
|
||||||
* @LastEditTime: 2021-12-14 20:43:18
|
|
||||||
* @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\supply-management\components\onecar-publish\publish-success\publish-success.component.ts
|
|
||||||
*/
|
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { NzMessageService } from 'ng-zorro-antd/message';
|
import { NzMessageService } from 'ng-zorro-antd/message';
|
||||||
@ -17,6 +9,7 @@ import { NzMessageService } from 'ng-zorro-antd/message';
|
|||||||
})
|
})
|
||||||
export class PublishSuccessComponent {
|
export class PublishSuccessComponent {
|
||||||
type = 'onecar';
|
type = 'onecar';
|
||||||
|
resourceObj: any = null;
|
||||||
constructor(private route: ActivatedRoute, private router: Router, public msg: NzMessageService) {
|
constructor(private route: ActivatedRoute, private router: Router, public msg: NzMessageService) {
|
||||||
this.type = route.snapshot.queryParams.type || 'onecar';
|
this.type = route.snapshot.queryParams.type || 'onecar';
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,236 @@
|
|||||||
|
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">货源单设置</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data">
|
||||||
|
<ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km,预计行程耗时:{{ totalTime }}小时</span></div>
|
||||||
|
|
||||||
|
<form nz-form [formGroup]="validateForm1" role="form">
|
||||||
|
<div nz-row [nzGutter]="24">
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<div *ngFor="let data1 of startInfo; let idx = index">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入装货地'">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-input-group [nzSuffix]="endInconTemp1">
|
||||||
|
<input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)"
|
||||||
|
formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" />
|
||||||
|
</nz-input-group>
|
||||||
|
<span style="padding: 0 10px"><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff"
|
||||||
|
(click)="chooseAddress(idx, 'start')"></i></span>
|
||||||
|
<span *ngIf="idx !== 0"><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b"
|
||||||
|
(click)="subStartInfo($event, idx)"></i></span>
|
||||||
|
</div>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
|
||||||
|
<input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}" name="loadName{{ idx }}" maxlength="30"
|
||||||
|
placeholder="请输入联系人姓名" />
|
||||||
|
</nz-form-control>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
|
||||||
|
<input style="margin-left: 12px" nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
|
||||||
|
formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
|
||||||
|
</nz-form-control>
|
||||||
|
</div>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col [nzSpan]="4"></div>
|
||||||
|
<button nz-button nzType="primary" (click)="addStartInfo()">
|
||||||
|
<i nz-icon nzType="plus"></i>
|
||||||
|
添加装货地
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzSpan]="4">
|
||||||
|
<div style="display: flex; justify-content: center">
|
||||||
|
<span style="padding: 24 px; font-size: 30px; color: #7d7d7d"><i nz-icon nzType="swap"
|
||||||
|
nzTheme="outline"></i></span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<div *ngFor="let data2 of endInfo; let idx = index">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>卸货地</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入卸货地'">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-input-group [nzSuffix]="endInconTemp1">
|
||||||
|
<input nz-input [(ngModel)]="data2.detailedAddress" (click)="openMap('end', idx)"
|
||||||
|
formControlName="unloadAddress{{ idx }}" placeholder="请输入卸货地" name="unloadAddress{{ idx }}" />
|
||||||
|
</nz-input-group>
|
||||||
|
<span style="padding: 0 10px"><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff"
|
||||||
|
(click)="chooseAddress(idx, 'start')"></i></span>
|
||||||
|
<span *ngIf="idx !== 0"><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b"
|
||||||
|
(click)="subEndInfo($event, idx)"></i></span>
|
||||||
|
</div>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
|
||||||
|
<input nz-input [(ngModel)]="data2.appUserName" maxlength="30" formControlName="unloadName{{ idx }}" name="unloadAddress{{ idx }}"
|
||||||
|
placeholder="请输入联系人姓名" />
|
||||||
|
</nz-form-control>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
|
||||||
|
<input style="margin-left: 12px" nz-input [(ngModel)]="data2.contractTelephone"
|
||||||
|
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11" placeholder="请输入联系人电话" />
|
||||||
|
</nz-form-control>
|
||||||
|
</div>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col [nzSpan]="4"></div>
|
||||||
|
<button nz-button nzType="primary" (click)="addEndInfo()">
|
||||||
|
<i nz-icon nzType="plus"></i>
|
||||||
|
添加卸货地
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div nz-row [nzGutter]="24" style="margin-top: 24px">
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>装货时间</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入装货时间'">
|
||||||
|
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="loadingTime" name="loadingTime"></nz-date-picker>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
<div nz-col [nzSpan]="4"></div>
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<nz-form-item>
|
||||||
|
<nz-form-label [nzSpan]="4" nzRequired>卸货时间</nz-form-label>
|
||||||
|
<nz-form-control [nzErrorTip]="'请输入卸货时间'">
|
||||||
|
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="unloadingTime" name="unloadingTime"></nz-date-picker>
|
||||||
|
</nz-form-control>
|
||||||
|
</nz-form-item>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
|
||||||
|
</form>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">货物信息</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf3 [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data"></sf>
|
||||||
|
<sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data">
|
||||||
|
<ng-template sf-template="weight" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'吨'">
|
||||||
|
<input nz-input type="number" [ngModel]="i.value" min="0" step="0.01" (ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总重量,必填" />
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="volume" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'方'">
|
||||||
|
<input nz-input type="number" [ngModel]="i.value" min="0" step="0.01" (ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总体积" />
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
<ng-template sf-template="number" let-i let-ui="ui">
|
||||||
|
<nz-input-group [nzAddOnAfter]="'车'">
|
||||||
|
<input nz-input type="number" [ngModel]="i.value" min="0" step="0.01" (ngModelChange)="i.setValue($event)"
|
||||||
|
placeholder="总车次" />
|
||||||
|
</nz-input-group>
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">服务信息</div>
|
||||||
|
<div nz-row [nzGutter]="24" style="margin: 24px 0">
|
||||||
|
<div nz-col [nzSpan]="10">
|
||||||
|
<div class="align-center">
|
||||||
|
<span style="font-weight: bolder; margin-right: 24px">购买货运险</span>
|
||||||
|
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<ng-template #template1>推荐投保,填写货值自动估保费,司机接单后不可退保。详见<a>《投保告知》</a></ng-template>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="8">
|
||||||
|
<sf #sf5 [schema]="schema5" [button]="'none'" [ui]="ui5" [formData]="sf5data">
|
||||||
|
<ng-template sf-template="goodsValue" let-i let-ui="ui">
|
||||||
|
<div class="align-center">
|
||||||
|
<nz-input-number [ngModel]="i.value" [nzMin]="50000" [nzMax]="3000000" [nzStep]="0.01"
|
||||||
|
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入50000-3000000之间数值,保留2位小数"></nz-input-number>
|
||||||
|
<span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2" nzTooltipPlacement="bottom"><i nz-icon
|
||||||
|
nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i></span>
|
||||||
|
<ng-template #template2>
|
||||||
|
<p>注意事项:</p>
|
||||||
|
<p>①请仔细阅读《投保告知》</p>
|
||||||
|
<p>②港澳台、西藏不在投保范围内,不予承保</p>
|
||||||
|
<p>③保价费最低收费2元,请按真实货值填写,录入的所有信息必须确保真实,不如实录入的内容,不承担对应赔偿责任。</p>
|
||||||
|
</ng-template>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">补充信息</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data">
|
||||||
|
<ng-template sf-template="receiptAddressId" let-i let-ui="ui">
|
||||||
|
<input nz-input [ngModel]="i.value" (ngModelChange)="i.setValue($event)" placeholder="请点击选择收回单地址"
|
||||||
|
(click)="backBillChange()" />
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
|
||||||
|
<nz-card>
|
||||||
|
<div class="card-title">运费信息</div>
|
||||||
|
<div nz-row>
|
||||||
|
<div nz-col nzSpan="12">
|
||||||
|
<sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data">
|
||||||
|
<ng-template sf-template="subtotal" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||||
|
<ng-template sf-template="appendFee" let-i let-ui="ui">¥{{i.value}}(费率:{{currentRate | number: '0.2-4' }}%)</ng-template>
|
||||||
|
<ng-template sf-template="total" let-i let-ui="ui">¥{{i.value}}</ng-template>
|
||||||
|
<ng-template sf-template="paymentDays" let-i let-ui="ui">
|
||||||
|
<div nz-row>
|
||||||
|
<div class="align-center">
|
||||||
|
<div nz-col nzSpan="16">
|
||||||
|
<nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
|
||||||
|
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30"></nz-input-number>
|
||||||
|
</div>
|
||||||
|
<div nz-col nzSpan="8">
|
||||||
|
<span>天内支付运费</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</ng-template>
|
||||||
|
</sf>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
|
<nz-card>
|
||||||
|
<div class="align-center">
|
||||||
|
<button nz-button nzType="primary" (click)="submit('assign')" *ngIf="type === 'add'">指派熟车</button>
|
||||||
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit('publish')"
|
||||||
|
*ngIf="type === 'add'">司机抢单</button>
|
||||||
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submit('publish')" *ngIf="type === 'edit'"
|
||||||
|
[nzLoading]="service.http.loading">保存</button>
|
||||||
|
<button nz-button nzType="primary" style="margin-left: 48px" (click)="close()" *ngIf="type === 'edit'">取消</button>
|
||||||
|
</div>
|
||||||
|
</nz-card>
|
||||||
@ -0,0 +1,30 @@
|
|||||||
|
:host {
|
||||||
|
::ng-deep {
|
||||||
|
nz-input-number{width: 100%;}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.tip-font {
|
||||||
|
margin-left: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-title {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.align-center {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
width: 300px;
|
||||||
|
height: 180px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,811 @@
|
|||||||
|
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||||
|
import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
|
||||||
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
|
import { cacheConf } from '@conf/cache.conf';
|
||||||
|
import {
|
||||||
|
SFArrayWidgetSchema,
|
||||||
|
SFComponent,
|
||||||
|
SFNumberWidgetSchema,
|
||||||
|
SFSchema,
|
||||||
|
SFSchemaEnum,
|
||||||
|
SFSelectWidgetSchema,
|
||||||
|
SFTextareaWidgetSchema,
|
||||||
|
SFUISchema
|
||||||
|
} from '@delon/form';
|
||||||
|
import { SettingsService, _HttpClient } from '@delon/theme';
|
||||||
|
import { EACacheService } from '@shared';
|
||||||
|
import format from 'date-fns/format';
|
||||||
|
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
|
||||||
|
import { of } from 'rxjs';
|
||||||
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
|
import { AmapPoiPickerComponent, AmapService } from 'src/app/shared/components/amap';
|
||||||
|
import { SupplyManagementService } from '../../services/supply-management.service';
|
||||||
|
import { SupplyManagementVehicleAssignedCarComponent } from '../assigned-car/assigned-car.component';
|
||||||
|
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
|
||||||
|
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'app-publish-goods-onecar-publish',
|
||||||
|
templateUrl: './release-publish.component.html',
|
||||||
|
styleUrls: ['./release-publish.component.less']
|
||||||
|
})
|
||||||
|
export class SupplyManagementReleasePublishComponent implements OnInit {
|
||||||
|
// 环境信息 appId、tenantId
|
||||||
|
envInfo = this.eaCacheSrv.get(cacheConf.env);
|
||||||
|
|
||||||
|
validateForm1: FormGroup;
|
||||||
|
sf1data: any; // 货源单设置回显
|
||||||
|
sf3data: any; // 货源单设置回显
|
||||||
|
sf4data: any; // 货源单设置回显
|
||||||
|
sf5data: any; // 货源单设置回显
|
||||||
|
sf6data: any; // 货源单设置回显
|
||||||
|
sf7data: any; // 货源单设置回显
|
||||||
|
creatTime: any; // 货源单设置回显
|
||||||
|
modifyTime: any; // 货源单设置回显
|
||||||
|
totalFees: any; // 总数信息
|
||||||
|
id = '';
|
||||||
|
type = 'add';
|
||||||
|
|
||||||
|
// // 单位
|
||||||
|
unit1 = '吨';
|
||||||
|
unit2 = '方';
|
||||||
|
unit3 = '保价费金额';
|
||||||
|
startInfo: any[] = [];
|
||||||
|
endInfo: any[] = [];
|
||||||
|
totalDistance = 0.0; //总里程
|
||||||
|
totalTime = 0.0; //路程总时间
|
||||||
|
|
||||||
|
currentGoodsTypeName: any;
|
||||||
|
currentRate = 0 //实时计算的费率
|
||||||
|
|
||||||
|
// formatterRmb = (value: number): string => `¥ ${value}`;
|
||||||
|
// parserRmb = (value: string): string => value.replace('¥ ', '');
|
||||||
|
constructor(
|
||||||
|
private http: _HttpClient,
|
||||||
|
fb: FormBuilder,
|
||||||
|
private modalService: NzModalService,
|
||||||
|
private settingSrv: SettingsService,
|
||||||
|
public service: SupplyManagementService,
|
||||||
|
private router: Router,
|
||||||
|
private route: ActivatedRoute,
|
||||||
|
private eaCacheSrv: EACacheService,
|
||||||
|
private amapService: AmapService
|
||||||
|
) {
|
||||||
|
this.validateForm1 = fb.group({
|
||||||
|
loadingTime: [null, [Validators.required]],
|
||||||
|
unloadingTime: [null, [Validators.required]]
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@ViewChild('sf1', { static: false }) sf1!: SFComponent;
|
||||||
|
schema1: SFSchema = {};
|
||||||
|
ui1!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf3', { static: false }) sf3!: SFComponent;
|
||||||
|
schema3: SFSchema = {};
|
||||||
|
ui3!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf4', { static: false }) sf4!: SFComponent;
|
||||||
|
schema4: SFSchema = {};
|
||||||
|
ui4!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf5', { static: false }) sf5!: SFComponent;
|
||||||
|
schema5: SFSchema = {};
|
||||||
|
ui5!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf6', { static: false }) sf6!: SFComponent;
|
||||||
|
schema6: SFSchema = {};
|
||||||
|
ui6!: SFUISchema;
|
||||||
|
|
||||||
|
@ViewChild('sf7', { static: false }) sf7!: SFComponent;
|
||||||
|
schema7: SFSchema = {};
|
||||||
|
ui7!: SFUISchema;
|
||||||
|
ngOnInit(): void {
|
||||||
|
this.initSF1();
|
||||||
|
this.initSF3();
|
||||||
|
this.initSF4();
|
||||||
|
this.initSF5();
|
||||||
|
this.initSF6();
|
||||||
|
this.initSF7();
|
||||||
|
this.addStartInfo();
|
||||||
|
this.addEndInfo();
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF1() {
|
||||||
|
this.schema1 = {
|
||||||
|
properties: {
|
||||||
|
shipperAppUserId: {
|
||||||
|
title: '货主',
|
||||||
|
type: 'string',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
serverSearch: true,
|
||||||
|
searchDebounceTime: 300,
|
||||||
|
searchLoadingText: '搜索中...',
|
||||||
|
onSearch: (q: any) => {
|
||||||
|
if (!!q) {
|
||||||
|
return this.service
|
||||||
|
.request(this.service.$api_enterpriceList, { enterpriseName: q})
|
||||||
|
.pipe(map((res) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||||
|
.toPromise();
|
||||||
|
} else {
|
||||||
|
return of([]);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
change: (q: any) => {
|
||||||
|
this.getRegionCode(q)
|
||||||
|
},
|
||||||
|
visibleIf: {
|
||||||
|
_$expand: (value: boolean) => value,
|
||||||
|
},
|
||||||
|
} as SFSelectWidgetSchema,
|
||||||
|
},
|
||||||
|
enterpriseProjectId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '项目',
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
enterpriseInfoName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '网络货运人',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom'
|
||||||
|
},
|
||||||
|
default: '天津市怡亚通XXXX有限公司'
|
||||||
|
},
|
||||||
|
externalResourceCode: {
|
||||||
|
type: 'string',
|
||||||
|
title: '外部货源号',
|
||||||
|
maxLength: 30,
|
||||||
|
ui: {
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dispatchId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '调度员',
|
||||||
|
enum: [
|
||||||
|
{ label: '周涛', value: 1 },
|
||||||
|
{ label: '李诞', value: 2 }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
allowClear: true,
|
||||||
|
optionalHelp: '选择调度员,司机直接联系调度员 ; 不选择,司机直接联系您'
|
||||||
|
// asyncData: () =>
|
||||||
|
// this.service.loadChildData2('0', '2').pipe(
|
||||||
|
// map((data: any) => {
|
||||||
|
// return data.map((m: any) => {
|
||||||
|
// return { label: m.name, value: m.id };
|
||||||
|
// });
|
||||||
|
// }),
|
||||||
|
// ),
|
||||||
|
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.ui1 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 12 }
|
||||||
|
},
|
||||||
|
$enterpriseInfoName: {
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
// 获取城市列表
|
||||||
|
getRegionCode(regionCode: any) {
|
||||||
|
console.log(regionCode)
|
||||||
|
return this.service
|
||||||
|
.request(this.service.$api_get_enterprise_project, { id: regionCode })
|
||||||
|
.pipe(
|
||||||
|
map((res) =>
|
||||||
|
res.map((item: any) => ({
|
||||||
|
label: item.projectName,
|
||||||
|
value: item.id,
|
||||||
|
})),
|
||||||
|
),
|
||||||
|
)
|
||||||
|
.subscribe((res) => {
|
||||||
|
this.sf1.getProperty('/enterpriseProjectId')!.schema.enum = res;
|
||||||
|
this.sf1.getProperty('/enterpriseProjectId')!.widget.reset(res);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
initSF3() {
|
||||||
|
this.schema3 = {
|
||||||
|
properties: {
|
||||||
|
goodsTypeId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货物名称',
|
||||||
|
enum: [
|
||||||
|
{ label: '服装', value: '1' },
|
||||||
|
{ label: '电子产品', value: '2' },
|
||||||
|
{ label: '其他', value: '3' }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
placeholder: '请选择',
|
||||||
|
errors: { required: '请选择货物名称' },
|
||||||
|
change: (value, data) => {
|
||||||
|
this.currentGoodsTypeName = data;
|
||||||
|
}
|
||||||
|
// asyncData: () =>
|
||||||
|
// this.categoryService.loadChildData2('0', '2').pipe(
|
||||||
|
// map((data: any) => {
|
||||||
|
// return data.map((m: any) => {
|
||||||
|
// return { label: m.name, value: m.id };
|
||||||
|
// });
|
||||||
|
// }),
|
||||||
|
// ),
|
||||||
|
// change: (i) => this.updateCategory(i, '/categoryId2'),
|
||||||
|
} as SFSelectWidgetSchema
|
||||||
|
},
|
||||||
|
goodsName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
maxLength: 20,
|
||||||
|
ui: {
|
||||||
|
errors: { required: '请填写货物名称' },
|
||||||
|
visibleIf: {
|
||||||
|
goodsTypeId: value => value === '其他'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['goodsTypeId', 'goodsName']
|
||||||
|
};
|
||||||
|
this.ui3 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 12 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
initSF4() {
|
||||||
|
this.schema4 = {
|
||||||
|
properties: {
|
||||||
|
weight: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货物数量',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入',
|
||||||
|
errors: { required: '必填项' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
volume: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
number: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
maxWeight: {
|
||||||
|
type: 'string',
|
||||||
|
title: '车型/车长',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'car:model' },
|
||||||
|
mode: 'multiple',
|
||||||
|
placeholder: '请选择车型',
|
||||||
|
errors: { required: '请选择车型' }
|
||||||
|
}
|
||||||
|
},
|
||||||
|
maxCube: {
|
||||||
|
type: 'string',
|
||||||
|
title: '',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'car:length' },
|
||||||
|
mode: 'multiple',
|
||||||
|
placeholder: '请选择车长',
|
||||||
|
errors: { required: '请选择车长' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['weight', 'maxWeight', 'maxCube']
|
||||||
|
};
|
||||||
|
this.ui4 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
},
|
||||||
|
$weight: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$volume: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$number: {
|
||||||
|
grid: { span: 8 }
|
||||||
|
},
|
||||||
|
$maxWeight: {
|
||||||
|
grid: { span: 12 }
|
||||||
|
},
|
||||||
|
$maxCube: {
|
||||||
|
grid: { span: 12 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF5() {
|
||||||
|
this.schema5 = {
|
||||||
|
properties: {
|
||||||
|
goodsValue: {
|
||||||
|
type: 'string',
|
||||||
|
title: '货物价值',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
this.ui5 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF6() {
|
||||||
|
this.schema6 = {
|
||||||
|
properties: {
|
||||||
|
stateReceipt: {
|
||||||
|
type: 'string',
|
||||||
|
title: '是否回单',
|
||||||
|
enum: [
|
||||||
|
{ label: '需要', value: true },
|
||||||
|
{ label: '不需要', value: false }
|
||||||
|
],
|
||||||
|
ui: {
|
||||||
|
widget: 'select',
|
||||||
|
errors: { required: '请选择' },
|
||||||
|
placeholder: '请选择'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
receiptType: {
|
||||||
|
type: 'string',
|
||||||
|
title: '回单类型',
|
||||||
|
ui: {
|
||||||
|
widget: 'dict-select',
|
||||||
|
params: { dictKey: 'receipt:type' },
|
||||||
|
containsAllLable:false,
|
||||||
|
placeholder: '请选择',
|
||||||
|
errors: { required: '请选择' },
|
||||||
|
visibleIf: {
|
||||||
|
stateReceipt: value => value === true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
receiptAddressId: {
|
||||||
|
type: 'string',
|
||||||
|
title: '选择地址',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请点击选择收回单地址',
|
||||||
|
// validator: val => (this.sf6?.value?.receiptType === '2' ? [{ keyword: 'required', message: '请点击选择收回单地址' }] : []),
|
||||||
|
visibleIf: {
|
||||||
|
receiptType: value => value === '2'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
default: ''
|
||||||
|
},
|
||||||
|
receiptUserName: {
|
||||||
|
type: 'string',
|
||||||
|
title: '联系人',
|
||||||
|
ui: {
|
||||||
|
visibleIf: {
|
||||||
|
receiptType: value => value === '2'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readOnly: true
|
||||||
|
},
|
||||||
|
phon: {
|
||||||
|
type: 'string',
|
||||||
|
title: '联系电话',
|
||||||
|
ui: {
|
||||||
|
visibleIf: {
|
||||||
|
receiptType: value => value === '2'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readOnly: true
|
||||||
|
},
|
||||||
|
area: {
|
||||||
|
type: 'string',
|
||||||
|
title: '所在地区',
|
||||||
|
ui: {
|
||||||
|
visibleIf: {
|
||||||
|
receiptType: value => value === '2'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readOnly: true
|
||||||
|
},
|
||||||
|
address: {
|
||||||
|
type: 'string',
|
||||||
|
title: '详细地址',
|
||||||
|
ui: {
|
||||||
|
visibleIf: {
|
||||||
|
receiptType: value => value === '2'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
readOnly: true
|
||||||
|
},
|
||||||
|
remarks: {
|
||||||
|
type: 'string',
|
||||||
|
title: '备注',
|
||||||
|
maxLength: 200,
|
||||||
|
ui: {
|
||||||
|
widget: 'textarea',
|
||||||
|
placeholder: '请输入',
|
||||||
|
autosize: { minRows: 3, maxRows: 3 }
|
||||||
|
} as SFTextareaWidgetSchema
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['stateReceipt', 'receiptType','receiptAddressId']
|
||||||
|
};
|
||||||
|
this.ui6 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
initSF7() {
|
||||||
|
this.schema7 = {
|
||||||
|
properties: {
|
||||||
|
prePay: {
|
||||||
|
type: 'number',
|
||||||
|
title: '预付',
|
||||||
|
default: 0,
|
||||||
|
ui: {
|
||||||
|
prefix: '¥',
|
||||||
|
change: args => this.payChange()
|
||||||
|
} as SFNumberWidgetSchema
|
||||||
|
},
|
||||||
|
toPay: {
|
||||||
|
type: 'number',
|
||||||
|
title: '到付',
|
||||||
|
default: 0,
|
||||||
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
|
},
|
||||||
|
oilCardPay: {
|
||||||
|
type: 'number',
|
||||||
|
title: '油卡',
|
||||||
|
default: 0,
|
||||||
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
|
},
|
||||||
|
receiptPay: {
|
||||||
|
type: 'number',
|
||||||
|
title: '回单付',
|
||||||
|
default: 0,
|
||||||
|
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
|
||||||
|
},
|
||||||
|
subtotal: { type: 'number', title: '小计',default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
|
appendFee: { type: 'number', title: '附加费', default: 0, ui: {widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
|
total: { type: 'number', title: '总费用', default: 0, ui: { widget: 'custom' } as SFNumberWidgetSchema },
|
||||||
|
paymentDays: {
|
||||||
|
type: 'string',
|
||||||
|
title: '到货后',
|
||||||
|
ui: {
|
||||||
|
widget: 'custom',
|
||||||
|
placeholder: '请输入',
|
||||||
|
errors: { required: '请输入付款承诺天数' }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
required: ['paymentDays']
|
||||||
|
};
|
||||||
|
this.ui7 = {
|
||||||
|
'*': {
|
||||||
|
spanLabelFixed: 90,
|
||||||
|
grid: { span: 24 }
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
payChange() {
|
||||||
|
const subtotal = (this.sf7.value.prePay + this.sf7.value.toPay + this.sf7.value.oilCardPay + this.sf7.value.receiptPay) || 0;
|
||||||
|
const oilCardPay = this.sf7.value.oilCardPay || 0;
|
||||||
|
this.service.request(this.service.$api_getCalculatedSurcharge+`?totalFreight=${subtotal}&fuelCardAmount=${oilCardPay}`).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.sf7.setValue('/appendFee', res.surcharge);
|
||||||
|
this.sf7.setValue('/subtotal', subtotal);
|
||||||
|
this.sf7.setValue('/total', subtotal+res.surcharge);
|
||||||
|
this.service.request(this.service.$api_getcalculatedServiceRate+`?invoiceAmount=${subtotal+res.surcharge}&totalFreight=${subtotal}`).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.currentRate = res.rate;
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
addStartInfo() {
|
||||||
|
if (this.startInfo.length < 5) {
|
||||||
|
const controlId = this.startInfo.length;
|
||||||
|
this.startInfo.push({
|
||||||
|
detailedAddress: '',
|
||||||
|
appUserName: '',
|
||||||
|
contractTelephone: '',
|
||||||
|
latitude: '',
|
||||||
|
longitude: '',
|
||||||
|
province: '',
|
||||||
|
city: '',
|
||||||
|
area: '',
|
||||||
|
type: '1'
|
||||||
|
});
|
||||||
|
this.validateForm1.addControl(`loadAddress${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
this.validateForm1.addControl(`loadName${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
this.validateForm1.addControl(`loadPhone${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subStartInfo(event: any, index: number) {
|
||||||
|
this.startInfo.splice(index, 1);
|
||||||
|
this.validateForm1.removeControl(`loadAddress${index}`);
|
||||||
|
this.validateForm1.removeControl(`loadName${index}`);
|
||||||
|
this.validateForm1.removeControl(`loadPhone${index}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
addEndInfo() {
|
||||||
|
if (this.addEndInfo.length < 5) {
|
||||||
|
const controlId = this.endInfo.length;
|
||||||
|
this.endInfo.push({
|
||||||
|
detailedAddress: '',
|
||||||
|
appUserName: '',
|
||||||
|
contractTelephone: '',
|
||||||
|
latitude: '',
|
||||||
|
longitude: '',
|
||||||
|
province: '',
|
||||||
|
city: '',
|
||||||
|
area: '',
|
||||||
|
type: '2'
|
||||||
|
});
|
||||||
|
this.validateForm1.addControl(`unloadAddress${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
this.validateForm1.addControl(`unloadName${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
this.validateForm1.addControl(`unloadPhone${controlId}`, new FormControl(null, Validators.required));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
subEndInfo(event: any, index: number) {
|
||||||
|
this.endInfo.splice(index, 1);
|
||||||
|
this.validateForm1.removeControl(`unloadAddress${index}`);
|
||||||
|
this.validateForm1.removeControl(`unloadName${index}`);
|
||||||
|
this.validateForm1.removeControl(`unloadPhone${index}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
//指派熟车
|
||||||
|
chooseFamifiar(item: any) {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '指派熟车',
|
||||||
|
nzContent: SupplyManagementVehicleAssignedCarComponent,
|
||||||
|
nzWidth: 1200,
|
||||||
|
nzComponentParams: {
|
||||||
|
status: 'new',
|
||||||
|
url: this.service.$api_save_assign_bulk,
|
||||||
|
params: item
|
||||||
|
},
|
||||||
|
nzFooter: null
|
||||||
|
});
|
||||||
|
modalRef.afterClose.subscribe(result => {
|
||||||
|
if (result) {
|
||||||
|
this.openFinishPage(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
submit(submitType: string): void {
|
||||||
|
Object.keys(this.validateForm1.controls).forEach(key => {
|
||||||
|
this.validateForm1.controls[key].markAsDirty();
|
||||||
|
this.validateForm1.controls[key].updateValueAndValidity();
|
||||||
|
});
|
||||||
|
this.sf3.validator({ emitError: true });
|
||||||
|
this.sf4.validator({ emitError: true });
|
||||||
|
this.sf6.validator({ emitError: true });
|
||||||
|
this.sf7.validator({ emitError: true });
|
||||||
|
if (this.validateForm1.invalid || !this.sf3.valid || !this.sf4.valid || !this.sf6.valid || !this.sf7.valid) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//装卸货信息
|
||||||
|
const LoadingList = this.startInfo.concat(this.endInfo);
|
||||||
|
// 货物信息
|
||||||
|
const goodsInfoList = [
|
||||||
|
{
|
||||||
|
...this.sf3.value,
|
||||||
|
goodsTypeName: this.currentGoodsTypeName.label,
|
||||||
|
goodsName: '电子',
|
||||||
|
goodsNameId: '1',
|
||||||
|
...this.sf4.value,
|
||||||
|
maxWeight: this.sf4.value.maxWeight.join(','),
|
||||||
|
maxCube: this.sf4.value.maxCube.join(',')
|
||||||
|
}
|
||||||
|
];
|
||||||
|
// 运费信息
|
||||||
|
const expenseList = [
|
||||||
|
{ expenseCode: 'PRE', expenseName: '预付', price: this.sf7.value.prePay, id: this.sf7data?.prePayId ? this.sf7data?.prePayId : '' },
|
||||||
|
{ expenseCode: 'RECE', expenseName: '到付', price: this.sf7.value.toPay, id: this.sf7data?.toPayId ? this.sf7data?.toPayId : '' },
|
||||||
|
{
|
||||||
|
expenseCode: 'OIL',
|
||||||
|
expenseName: '油卡',
|
||||||
|
price: this.sf7.value.oilCardPay,
|
||||||
|
id: this.sf7data?.oilCardPayId ? this.sf7data?.oilCardPayId : ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expenseCode: 'BACK',
|
||||||
|
expenseName: '回单付',
|
||||||
|
price: this.sf7.value.receiptPay,
|
||||||
|
id: this.sf7data?.receiptPayId ? this.sf7data?.receiptPayId : ''
|
||||||
|
}
|
||||||
|
];
|
||||||
|
const params = {
|
||||||
|
id: '',
|
||||||
|
...this.sf1.value,
|
||||||
|
unLoadingPlaceDTOList: LoadingList,
|
||||||
|
unloadingTime: format(this.validateForm1.value.unloadingTime, 'yyyy-MM-dd HH:mm:ss'),
|
||||||
|
loadingTime: format(this.validateForm1.value.loadingTime, 'yyyy-MM-dd HH:mm:ss'),
|
||||||
|
goodsInfoDTOList: goodsInfoList,
|
||||||
|
...this.sf5.value,
|
||||||
|
...this.sf6.value,
|
||||||
|
expenseDTOList: expenseList,
|
||||||
|
paymentDays: this.sf7.value.paymentDays
|
||||||
|
};
|
||||||
|
|
||||||
|
let reqUrl = this.service.$api_consignWhole;
|
||||||
|
if (submitType === 'assign') {
|
||||||
|
this.chooseFamifiar(params);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.service.request(reqUrl, params).subscribe((res: any) => {
|
||||||
|
if (res) {
|
||||||
|
this.openFinishPage();
|
||||||
|
} else {
|
||||||
|
this.service.msgSrv.error(res.msg);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 打开地图
|
||||||
|
openMap(type: string, index: number) {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '',
|
||||||
|
nzContent: AmapPoiPickerComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzOnOk: item => {
|
||||||
|
const poi = item.poi;
|
||||||
|
const locList = poi.pois;
|
||||||
|
switch (type) {
|
||||||
|
case 'start':
|
||||||
|
this.startInfo[index].detailedAddress = poi.formattedAddress;
|
||||||
|
this.startInfo[index].longitude = locList[0];
|
||||||
|
this.startInfo[index].latitude = locList[1];
|
||||||
|
this.startInfo[index].province = poi.addressComponent.province;
|
||||||
|
this.startInfo[index].city = poi.addressComponent.city;
|
||||||
|
this.startInfo[index].area = poi.addressComponent.district;
|
||||||
|
break;
|
||||||
|
case 'end':
|
||||||
|
this.endInfo[index].detailedAddress = poi.formattedAddress;
|
||||||
|
this.endInfo[index].longitude = locList[0];
|
||||||
|
this.endInfo[index].latitude = locList[1];
|
||||||
|
this.endInfo[index].province = poi.addressComponent.province;
|
||||||
|
this.endInfo[index].city = poi.addressComponent.city;
|
||||||
|
this.endInfo[index].area = poi.addressComponent.district;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.startInfo[0]?.area && this.endInfo[0]?.area) {
|
||||||
|
this.amapService.drivingCompute([...this.startInfo], [...this.endInfo]).subscribe(res => {
|
||||||
|
this.totalDistance = res.distance;
|
||||||
|
this.totalTime = res.time;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
backBillChange() {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '选择收回单地址',
|
||||||
|
nzContent: PublishAddressListComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzComponentParams: { spuStatus: '2' },
|
||||||
|
nzOnOk: item => {
|
||||||
|
const data = item.seleteData;
|
||||||
|
if (JSON.stringify(data) === '{}') return;
|
||||||
|
this.sf6.setValue('/receiptAddressId', data.id);
|
||||||
|
this.sf6.setValue('/receiptUserName', data.contactName);
|
||||||
|
this.sf6.setValue('/phon', data.contactTelephone);
|
||||||
|
this.sf6.setValue('/area', `${data.province}-${data.city}-${data.area}`);
|
||||||
|
this.sf6.setValue('/address', data.detailedAddress);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
chooseAddress(index: number, type: string) {
|
||||||
|
const modalRef = this.modalService.create({
|
||||||
|
nzTitle: '选择地址',
|
||||||
|
nzContent: PublishAddressListComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzComponentParams: { spuStatus: '1' },
|
||||||
|
nzOnOk: item => {
|
||||||
|
const data = item.seleteData;
|
||||||
|
if (JSON.stringify(data) === '{}') return;
|
||||||
|
switch (type) {
|
||||||
|
case 'start':
|
||||||
|
this.startInfo[index] = {
|
||||||
|
detailedAddress: data.detailedAddress,
|
||||||
|
appUserName: data.contactName,
|
||||||
|
contractTelephone: data.contactTelephone,
|
||||||
|
latitude: data.contactTelephone,
|
||||||
|
longitude: data.latitude,
|
||||||
|
province: data.province,
|
||||||
|
city: data.city,
|
||||||
|
area: data.area,
|
||||||
|
type: '1'
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
case 'end':
|
||||||
|
this.endInfo[index] = {
|
||||||
|
detailedAddress: data.detailedAddress,
|
||||||
|
appUserName: data.contactName,
|
||||||
|
contractTelephone: data.contactTelephone,
|
||||||
|
latitude: data.contactTelephone,
|
||||||
|
longitude: data.latitude,
|
||||||
|
province: data.province,
|
||||||
|
city: data.city,
|
||||||
|
area: data.area,
|
||||||
|
type: '2'
|
||||||
|
};
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// 打开下单完成页面
|
||||||
|
openFinishPage(resourceObj: any = null) {
|
||||||
|
this.modalService.create({
|
||||||
|
nzTitle: '',
|
||||||
|
nzContent: PublishSuccessComponent,
|
||||||
|
nzWidth: 900,
|
||||||
|
nzFooter: null,
|
||||||
|
nzComponentParams: { type: 'onecar', resourceObj }
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 取消
|
||||||
|
*/
|
||||||
|
close() {
|
||||||
|
window.history.go(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,3 +1,11 @@
|
|||||||
|
<!--
|
||||||
|
* @Author: your name
|
||||||
|
* @Date: 2021-12-22 11:28:28
|
||||||
|
* @LastEditTime: 2021-12-28 19:21: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\supply-management\components\vehicle\vehicle.component.html
|
||||||
|
-->
|
||||||
<!-- 搜索表单 -->
|
<!-- 搜索表单 -->
|
||||||
<nz-card>
|
<nz-card>
|
||||||
<div nz-row nzGutter="8">
|
<div nz-row nzGutter="8">
|
||||||
@ -67,7 +75,7 @@
|
|||||||
<ng-template #extraTemplate>
|
<ng-template #extraTemplate>
|
||||||
<div>
|
<div>
|
||||||
<button (click)="audit('',2)" nz-button nzType="primary">批量审核</button>
|
<button (click)="audit('',2)" nz-button nzType="primary">批量审核</button>
|
||||||
<button (click)="importGoodsSource()" nz-button nzType="primary">发布货源</button>
|
<button (click)="releaseGoods()" nz-button nzType="primary">代发货源</button>
|
||||||
<button (click)="importGoodsSource()" nz-button nzType="primary">导入货源</button>
|
<button (click)="importGoodsSource()" nz-button nzType="primary">导入货源</button>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
|
|||||||
@ -207,6 +207,12 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
|||||||
sta: 2
|
sta: 2
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 代发货源
|
||||||
|
*/
|
||||||
|
releaseGoods() {
|
||||||
|
this.router.navigate(['/supply-management/vehicle-release']);
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
* 取消货源
|
* 取消货源
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 11:10:14
|
* @Date: 2021-12-03 11:10:14
|
||||||
* @LastEditTime: 2021-12-28 10:15:55
|
* @LastEditTime: 2021-12-28 19:53:40
|
||||||
* @LastEditors: Please set LastEditors
|
* @LastEditors: Please set LastEditors
|
||||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
* @FilePath: \tms-obc-web\src\app\routes\supply-management\services\supply-management.service.ts
|
* @FilePath: \tms-obc-web\src\app\routes\supply-management\services\supply-management.service.ts
|
||||||
@ -46,7 +46,14 @@ export class SupplyManagementService extends BaseService {
|
|||||||
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
||||||
// 取消货源
|
// 取消货源
|
||||||
public $api_cancelSource = '/api/sdc/goodsResourceOperate/cancelSource';
|
public $api_cancelSource = '/api/sdc/goodsResourceOperate/cancelSource';
|
||||||
|
// 整车计算附加费
|
||||||
|
$api_getCalculatedSurcharge = `/api/sdc/expense/getCalculatedSurcharge`;
|
||||||
|
// 整车计算附加费率
|
||||||
|
$api_getcalculatedServiceRate = `/api/sdc/expense/getcalculatedServiceRate`;
|
||||||
|
// 代发整车货源
|
||||||
|
$api_consignWhole = `/api/sdc/goodsResourceOperate/consignWhole`;
|
||||||
|
// 代发大宗货源
|
||||||
|
$api_consignBulk = `/api/sdc/goodsResourceOperate/consignBulk`;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 11:10:14
|
* @Date: 2021-12-03 11:10:14
|
||||||
* @LastEditTime: 2021-12-27 15:25:01
|
* @LastEditTime: 2021-12-28 20:07:09
|
||||||
* @LastEditors: Please set LastEditors
|
* @LastEditors: Please set LastEditors
|
||||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
* @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management-routing.module.ts
|
* @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management-routing.module.ts
|
||||||
@ -16,13 +16,18 @@ import { SupplyManagementAddDriversComponent } from './components/add-drivers/ad
|
|||||||
import { SupplyManagementOnecarPublishComponent } from './components/onecar-publish/onecar-publish.component';
|
import { SupplyManagementOnecarPublishComponent } from './components/onecar-publish/onecar-publish.component';
|
||||||
import { SupplyManagementBulkPublishComponent } from './components/bulk-publish/bulk-publish.component';
|
import { SupplyManagementBulkPublishComponent } from './components/bulk-publish/bulk-publish.component';
|
||||||
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
||||||
|
import { SupplyManagementReleasePublishComponent } from './components/release-publish/release-publish.component';
|
||||||
|
import { SupplyManagementBulkReleasePublishComponent } from './components/bulk-release-publish/bulk-release-publish.component';
|
||||||
|
|
||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{ path: 'index', component: SupplyManagementIndexComponent },
|
{ path: 'index', component: SupplyManagementIndexComponent },
|
||||||
{ path: 'bulk-detail/:id', component: SupplyManagementBulkDetailComponent },
|
{ path: 'bulk-detail/:id', component: SupplyManagementBulkDetailComponent },
|
||||||
{ path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
|
{ path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
|
||||||
|
{ path: 'vehicle-detail/:id', component: SupplyManagementVehicleDetailComponent },
|
||||||
{ path: 'add-drivers', component: SupplyManagementAddDriversComponent },
|
{ path: 'add-drivers', component: SupplyManagementAddDriversComponent },
|
||||||
{ path: 'vehicle-amend/:id', component: SupplyManagementOnecarPublishComponent },
|
{ path: 'vehicle-amend/:id', component: SupplyManagementOnecarPublishComponent },
|
||||||
|
{ path: 'vehicle-release', component: SupplyManagementReleasePublishComponent },
|
||||||
|
{ path: 'bulk-release', component: SupplyManagementBulkReleasePublishComponent },
|
||||||
{ path: 'bulk-amend/:id', component: SupplyManagementBulkPublishComponent },
|
{ path: 'bulk-amend/:id', component: SupplyManagementBulkPublishComponent },
|
||||||
];
|
];
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-12-03 11:10:14
|
* @Date: 2021-12-03 11:10:14
|
||||||
* @LastEditTime: 2021-12-21 11:04:45
|
* @LastEditTime: 2021-12-28 20:31:23
|
||||||
* @LastEditors: Please set LastEditors
|
* @LastEditors: Please set LastEditors
|
||||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
* @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management.module.ts
|
* @FilePath: \tms-obc-web\src\app\routes\supply-management\supply-management.module.ts
|
||||||
@ -29,6 +29,8 @@ import { PublishSuccessComponent } from './components/onecar-publish/publish-suc
|
|||||||
import { CarAddDriverComponent } from './components/add-driver/add-driver.component';
|
import { CarAddDriverComponent } from './components/add-driver/add-driver.component';
|
||||||
import { CarAddmodalComponent } from './components/addmodal/addmodal.component';
|
import { CarAddmodalComponent } from './components/addmodal/addmodal.component';
|
||||||
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
import { SupplyManagementBulkDetailComponent } from './components/bulk-detail/bulk-detail.component';
|
||||||
|
import { SupplyManagementReleasePublishComponent } from './components/release-publish/release-publish.component';
|
||||||
|
import { SupplyManagementBulkReleasePublishComponent } from './components/bulk-release-publish/bulk-release-publish.component';
|
||||||
|
|
||||||
|
|
||||||
const COMPONENTS: Type<void>[] = [
|
const COMPONENTS: Type<void>[] = [
|
||||||
@ -51,7 +53,9 @@ const COMPONENTS: Type<void>[] = [
|
|||||||
PublishSuccessComponent,
|
PublishSuccessComponent,
|
||||||
CarAddDriverComponent,
|
CarAddDriverComponent,
|
||||||
CarAddmodalComponent,
|
CarAddmodalComponent,
|
||||||
SupplyManagementBulkDetailComponent
|
SupplyManagementBulkDetailComponent,
|
||||||
|
SupplyManagementReleasePublishComponent,
|
||||||
|
SupplyManagementBulkReleasePublishComponent
|
||||||
];
|
];
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* @Author: your name
|
* @Author: your name
|
||||||
* @Date: 2021-11-29 20:03:55
|
* @Date: 2021-11-29 20:03:55
|
||||||
* @LastEditTime: 2021-12-28 09:33:19
|
* @LastEditTime: 2021-12-28 20:35:15
|
||||||
* @LastEditors: Please set LastEditors
|
* @LastEditors: Please set LastEditors
|
||||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
* @FilePath: \tms-obc-web\src\style-icons.ts
|
* @FilePath: \tms-obc-web\src\style-icons.ts
|
||||||
@ -23,7 +23,11 @@ import {
|
|||||||
CheckCircleOutline,
|
CheckCircleOutline,
|
||||||
QuestionCircleFill,
|
QuestionCircleFill,
|
||||||
LeftOutline,
|
LeftOutline,
|
||||||
FileDoneOutline
|
FileDoneOutline,
|
||||||
|
MenuOutline,
|
||||||
|
SwapOutline,
|
||||||
|
EnvironmentOutline,
|
||||||
|
ExclamationCircleOutline
|
||||||
} from '@ant-design/icons-angular/icons';
|
} from '@ant-design/icons-angular/icons';
|
||||||
|
|
||||||
export const ICONS = [
|
export const ICONS = [
|
||||||
@ -41,5 +45,9 @@ export const ICONS = [
|
|||||||
CheckCircleOutline,
|
CheckCircleOutline,
|
||||||
QuestionCircleFill,
|
QuestionCircleFill,
|
||||||
LeftOutline,
|
LeftOutline,
|
||||||
FileDoneOutline
|
FileDoneOutline,
|
||||||
|
MenuOutline,
|
||||||
|
SwapOutline,
|
||||||
|
EnvironmentOutline,
|
||||||
|
ExclamationCircleOutline
|
||||||
];
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user