Merge branch 'develop' of https://gitlab.eascs.com/tms-ui/tms-obc-web into develop

This commit is contained in:
Taric Xin
2022-03-01 14:31:42 +08:00
26 changed files with 255 additions and 102 deletions

40
package-lock.json generated
View File

@ -5172,6 +5172,14 @@
} }
} }
}, },
"css-line-break": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/css-line-break/-/css-line-break-2.1.0.tgz",
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
"requires": {
"utrie": "^1.0.2"
}
},
"css-loader": { "css-loader": {
"version": "6.2.0", "version": "6.2.0",
"resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-6.2.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-6.2.0.tgz", "resolved": "https://registry.npmmirror.com/css-loader/download/css-loader-6.2.0.tgz?cache=0&sync_timestamp=1635967924209&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fcss-loader%2Fdownload%2Fcss-loader-6.2.0.tgz",
@ -8113,6 +8121,15 @@
"integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=", "integrity": "sha1-e15vfmZen7QfMAB+2eDUHpf7IUA=",
"dev": true "dev": true
}, },
"html2canvas": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/html2canvas/-/html2canvas-1.4.1.tgz",
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
"requires": {
"css-line-break": "^2.1.0",
"text-segmentation": "^1.0.3"
}
},
"htmlparser2": { "htmlparser2": {
"version": "3.10.1", "version": "3.10.1",
"resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1636640940074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz", "resolved": "https://registry.npmmirror.com/htmlparser2/download/htmlparser2-3.10.1.tgz?cache=0&sync_timestamp=1636640940074&other_urls=https%3A%2F%2Fregistry.npmmirror.com%2Fhtmlparser2%2Fdownload%2Fhtmlparser2-3.10.1.tgz",
@ -22662,6 +22679,14 @@
} }
} }
}, },
"text-segmentation": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/text-segmentation/-/text-segmentation-1.0.3.tgz",
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
"requires": {
"utrie": "^1.0.2"
}
},
"text-table": { "text-table": {
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz",
@ -23211,6 +23236,21 @@
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
"dev": true "dev": true
}, },
"utrie": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/utrie/-/utrie-1.0.2.tgz",
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
"requires": {
"base64-arraybuffer": "^1.0.2"
},
"dependencies": {
"base64-arraybuffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
}
}
},
"uuid": { "uuid": {
"version": "3.4.0", "version": "3.4.0",
"resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz", "resolved": "https://registry.npmmirror.com/uuid/download/uuid-3.4.0.tgz",

View File

@ -56,6 +56,7 @@
"@swimlane/ngx-charts": "^18.0.1", "@swimlane/ngx-charts": "^18.0.1",
"ajv": "^8.6.2", "ajv": "^8.6.2",
"file-saver": "^2.0.5", "file-saver": "^2.0.5",
"html2canvas": "^1.4.1",
"js-base64": "^3.6.1", "js-base64": "^3.6.1",
"masonry-layout": "^4.2.2", "masonry-layout": "^4.2.2",
"ng-gallery": "^5.0.0", "ng-gallery": "^5.0.0",

View File

@ -188,9 +188,10 @@ export class CostManagementComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
@ -212,9 +213,10 @@ export class CostManagementComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -213,9 +213,10 @@ export class insuranceManagementListComponent implements OnInit {
_$expand: (value: boolean) => value _$expand: (value: boolean) => value
}, },
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-24 16:58:02 * @Date : 2021-12-24 16:58:02
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-01-20 20:32:44 * @LastEditTime : 2022-03-01 13:42:44
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail-change\\bulk-detail-change.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -89,6 +89,7 @@
(click)="openMap('start', idx)" (click)="openMap('start', idx)"
formControlName="loadAddress{{ idx }}" formControlName="loadAddress{{ idx }}"
placeholder="请输入装货地" placeholder="请输入装货地"
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>
@ -141,6 +142,7 @@
formControlName="unloadAddress{{ idx }}" formControlName="unloadAddress{{ idx }}"
placeholder="请输入卸货地" placeholder="请输入卸货地"
name="unloadAddress{{ idx }}" name="unloadAddress{{ idx }}"
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>

View File

@ -197,9 +197,10 @@ export class OrderManagementBulkComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -156,9 +156,10 @@ export class OrderManagementComplianceAuditComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -131,9 +131,10 @@ export class OrderManagementReceiptsAuditComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -207,9 +207,10 @@ resourceStatus: any;
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -30,6 +30,7 @@
(click)="openMap('start', idx)" (click)="openMap('start', idx)"
formControlName="loadAddress{{ idx }}" formControlName="loadAddress{{ idx }}"
placeholder="请输入装货地" placeholder="请输入装货地"
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>
@ -80,6 +81,7 @@
(click)="openMap('end', idx)" (click)="openMap('end', idx)"
formControlName="unloadAddress{{ idx }}" formControlName="unloadAddress{{ idx }}"
placeholder="请输入卸货地" placeholder="请输入卸货地"
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>

View File

@ -110,9 +110,10 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
@ -120,7 +121,10 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
} }
}, },
change: (q: any) => { change: (q: any) => {
this.getRegionCode(q); let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
this.getRegionCode(str);
}
}, },
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },

View File

@ -37,6 +37,7 @@
name="startDetailedAddress{{ idx }}" name="startDetailedAddress{{ idx }}"
placeholder="请输入装货地" placeholder="请输入装货地"
required required
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>
@ -90,6 +91,7 @@
name="endDetailedAddress{{ idx }}" name="endDetailedAddress{{ idx }}"
placeholder="请输入卸货地" placeholder="请输入卸货地"
required required
readonly="true"
/> />
</nz-input-group> </nz-input-group>
</div> </div>

View File

@ -121,9 +121,10 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any[]) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any[]) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
@ -131,7 +132,10 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
} }
}, },
change: (q: any) => { change: (q: any) => {
this.getRegionCode(q); let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
this.getRegionCode(str);
}
} }
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
}, },

View File

@ -209,10 +209,10 @@ export class SupplyManagementBulkComponent implements OnInit {
}, },
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) let str =q.replace(/^\s+|\s+$/g,"");
if (!!q) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -155,8 +155,8 @@
<nz-form-label [nzSpan]="3" nzRequired>装货时间</nz-form-label> <nz-form-label [nzSpan]="3" nzRequired>装货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入装货时间'"> <nz-form-control [nzErrorTip]="'请输入装货时间'">
<nz-date-picker <nz-date-picker
nzShowTime [nzShowTime]="{ nzFormat: 'HH' }"
nzFormat="yyyy-MM-dd HH:mm:ss" nzFormat="yyyy-MM-dd HH:00前"
formControlName="loadingTime" formControlName="loadingTime"
[nzDisabledDate]="disabledDateStart" [nzDisabledDate]="disabledDateStart"
></nz-date-picker> ></nz-date-picker>
@ -168,7 +168,8 @@
<nz-form-item> <nz-form-item>
<nz-form-label [nzSpan]="3" nzRequired>卸货时间</nz-form-label> <nz-form-label [nzSpan]="3" nzRequired>卸货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入卸货时间'"> <nz-form-control [nzErrorTip]="'请输入卸货时间'">
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="unloadingTime"></nz-date-picker> <nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }"
nzFormat="yyyy-MM-dd HH:00前" formControlName="unloadingTime"></nz-date-picker>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>

View File

@ -38,8 +38,11 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
limitValues = { limitValues = {
maxWeight: 99999, maxWeight: 99999,
maxVolume: 99999, maxVolume: 99999,
maxPiece: 99999 maxPiece: 99999,
}; maxDays: 999,
intervalDays: 999,
maxTimes: 999,
}
sf1data: any; // 货源单设置回显 sf1data: any; // 货源单设置回显
sf3data: any; // 货源单设置回显 sf3data: any; // 货源单设置回显
sf4data: any; // 货源单设置回显 sf4data: any; // 货源单设置回显
@ -110,14 +113,18 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
@ViewChild('sf7', { static: false }) sf7!: SFComponent; @ViewChild('sf7', { static: false }) sf7!: SFComponent;
schema7: SFSchema = {}; schema7: SFSchema = {};
ui7!: SFUISchema; ui7!: SFUISchema;
formatterRmb = (value: number): string => { formatterRmb = (value: number): string => {
if (value) { if (value === null || value === undefined) {
return '';
}else{
let value2 = Number(value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }); let value2 = Number(value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return ` ${value2}`; return `${value2}`;
} }
return `¥ 0.00`;
}; };
parserRmb = (value: string): string => value.replace('¥ ', '').replace(',', ''); parserRmb = (value: string): string => value.replace('¥', '').replace(',', '');
// 页面初始化 // 页面初始化
ngOnInit(): void { ngOnInit(): void {
if (this.route.snapshot?.queryParams?.sta === '1') { if (this.route.snapshot?.queryParams?.sta === '1') {
@ -147,10 +154,11 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) console.log(q === ' ')
if (q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
@ -158,8 +166,9 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
}, },
change: (q: any) => { change: (q: any) => {
if (q) { let str =q.replace(/^\s+|\s+$/g,"");
this.getRegionCode(q); if (str) {
this.getRegionCode(str);
} }
} }
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
@ -759,17 +768,30 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
getLimitvalue() { getLimitvalue() {
// 货物核载信息最大值 // 货物核载信息最大值
// 货物运输费(小计)最大值 // 货物运输费(小计)最大值
const getlimitvaluesParms = [this.service.limitKeys.weight, this.service.limitKeys.volume, this.service.limitKeys.piece]; const getlimitvaluesParms = [
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe(res => { this.service.limitKeys.weight,
this.service.limitKeys.volume,
this.service.limitKeys.piece,
this.service.limitKeys.maxDays,
this.service.limitKeys.intervalDays,
this.service.limitKeys.maxTimes,
];
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe((res) => {
const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys.weight)[0].itemValue; const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys.weight)[0].itemValue;
const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys.volume)[0].itemValue; const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys.volume)[0].itemValue;
const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys.piece)[0].itemValue; const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys.piece)[0].itemValue;
const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxDays)[0].itemValue;
const intervalDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.intervalDays)[0].itemValue;
const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxTimes)[0].itemValue;
this.limitValues = { this.limitValues = {
maxWeight: Number(maxWeight), maxWeight: Number(maxWeight),
maxVolume: Number(maxVolume), maxVolume: Number(maxVolume),
maxPiece: Number(maxPiece) maxPiece: Number(maxPiece),
}; maxDays: Number(maxDays),
}); intervalDays: Number(intervalDays),
maxTimes: Number(maxTimes),
}
})
} }
subStartInfo(event: any, index: number) { subStartInfo(event: any, index: number) {
this.startInfo.splice(index, 1); this.startInfo.splice(index, 1);
@ -896,7 +918,11 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.service.msgSrv.warning('总费用不能为0'); this.service.msgSrv.warning('总费用不能为0');
return; return;
} }
const num = (Number(this.validateForm1.value.unloadingTime) - Number(this.validateForm1.value.loadingTime))/(24*60*60*1000);
if (num > this.limitValues.maxDays) {
this.service.msgSrv.error(`当前计划装卸货时间间隔已超出限定值【${this.limitValues.maxDays}天】`);
return;
}
if ( if (
this.sf4.value.weight > this.limitValues.maxWeight || this.sf4.value.weight > this.limitValues.maxWeight ||
this.sf4.value.volume > this.limitValues.maxVolume || this.sf4.value.volume > this.limitValues.maxVolume ||
@ -1326,10 +1352,16 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
}); });
} }
// 不可选择的时间 // 不可选择的时间
disabledDateStart = (current: Date): boolean => { disabledDateStart = (current: Date): boolean => {
return differenceInCalendarDays(new Date(), current) > 0; let d = new Date();
}; let year = d.getFullYear();
let month = d.getMonth();
let date = d.getDate();
let hours = d.getHours();
let mydate = new Date(year, month, date + this.limitValues.maxDays,hours+1);
return differenceInCalendarDays(new Date(), current) > 0 || new Date(current) > mydate;
};
// 装卸货地址互换 // 装卸货地址互换
swapAddress() { swapAddress() {
this.startInfo.forEach((element: any, index: any) => { this.startInfo.forEach((element: any, index: any) => {

View File

@ -1,18 +1,8 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2021-12-03 11:10:14
* @LastEditors : Shiming
* @LastEditTime : 2022-02-28 20:00:13
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\qrcode-page\\qrcode-page.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<nz-spin *ngIf="!i" class="modal-spin"></nz-spin> <nz-spin *ngIf="!i" class="modal-spin"></nz-spin>
<div> <div>
<nz-alert nzType="warning" nzMessage="二维码用于司机扫码抢单" nzShowIcon></nz-alert> <nz-alert nzType="warning" nzMessage="二维码用于司机扫码抢单" nzShowIcon></nz-alert>
<div style="width: 50%;margin: 0 auto;"> <div style="width: 80%;margin: 0 auto;" id="qr_page">
<div class=""> <div style="text-align: center;">
<h2> {{i?.enterpriseInfoName}}</h2> <h2> {{i?.enterpriseInfoName}}</h2>
<qr [value]="qrCodeValue" #qr></qr> <qr [value]="qrCodeValue" #qr></qr>
@ -23,6 +13,6 @@
</div> </div>
<div class="modal-footer text-center"> <div class="modal-footer text-center">
<button nz-button type="submit" nzType="primary" (click)="downLoadQrcode('二维码')">下载二维码</button> <button nz-button type="submit" nzType="primary" (click)="toCanvasPhoto()">下载二维码</button>
</div> </div>
</div> </div>

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 11:10:14 * @Date : 2021-12-03 11:10:14
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-28 20:00:06 * @LastEditTime : 2022-03-01 14:19:47
* @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\qrcode-page\\qrcode-page.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\supply-management\\components\\qrcode-page\\qrcode-page.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -13,6 +13,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { QRComponent } from '@delon/abc/qr'; import { QRComponent } from '@delon/abc/qr';
import { SFSchema, SFUISchema } from '@delon/form'; import { SFSchema, SFUISchema } from '@delon/form';
import { NzModalRef } from 'ng-zorro-antd/modal'; import { NzModalRef } from 'ng-zorro-antd/modal';
import html2canvas from 'html2canvas';
@Component({ @Component({
selector: 'app-supply-management-qrcode-page', selector: 'app-supply-management-qrcode-page',
@ -50,16 +51,22 @@ export class SupplyManagementQrcodePageComponent implements OnInit {
} }
downLoadQrcode(downloadName: any): void { /**
* 下载二维码
* @param downloadName 文件名
* @param contents 内容
*/
downLoadQrcode(downloadName: any, contents: any): void {
let aLink = document.createElement('a'); let aLink = document.createElement('a');
const content = this.qr.dataURL; const content = contents;
let blob = this.base64ToBlob(content); //new Blob([content]); let blob = this.base64ToBlob(content); //new Blob([content]);
let evt = document.createEvent("HTMLEvents"); let evt = document.createEvent("HTMLEvents");
evt.initEvent("click", true, true);//initEvent 不加后两个参数在IE下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为 evt.initEvent("click", true, true);//initEvent 不加后两个参数在IE下会报错 事件类型,是否冒泡,是否阻止浏览器的默认行为
aLink.download = downloadName; aLink.download = downloadName;
aLink.href = URL.createObjectURL(blob); aLink.href = URL.createObjectURL(blob);
// aLink.dispatchEvent(evt); // aLink.dispatchEvent(evt);
aLink.click() aLink.click();
} }
@ -80,4 +87,17 @@ export class SupplyManagementQrcodePageComponent implements OnInit {
this.modal.destroy(); this.modal.destroy();
} }
/**
* 把页面装成canvas
*/
toCanvasPhoto() {
let aLink = document.createElement('a');
html2canvas(document.getElementById('qr_page')!, { height: 340 }).then((canvas:any) => {
let url = canvas.toDataURL("image/jpeg");
this.downLoadQrcode('二维码', url);
})
}
} }

View File

@ -161,11 +161,11 @@
<nz-form-label [nzSpan]="3" nzRequired>装货时间</nz-form-label> <nz-form-label [nzSpan]="3" nzRequired>装货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入装货时间'"> <nz-form-control [nzErrorTip]="'请输入装货时间'">
<nz-date-picker <nz-date-picker
nzShowTime [nzShowTime]="{ nzFormat: 'HH' }"
nzFormat="yyyy-MM-dd HH:mm:ss" nzFormat="yyyy-MM-dd HH:00前"
formControlName="loadingTime" formControlName="loadingTime"
[nzDisabledDate]="disabledDateStart" [nzDisabledDate]="disabledDateStart"
></nz-date-picker> ></nz-date-picker>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
@ -174,7 +174,8 @@
<nz-form-item> <nz-form-item>
<nz-form-label [nzSpan]="3" nzRequired>卸货时间</nz-form-label> <nz-form-label [nzSpan]="3" nzRequired>卸货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入卸货时间'"> <nz-form-control [nzErrorTip]="'请输入卸货时间'">
<nz-date-picker nzShowTime nzFormat="yyyy-MM-dd HH:mm:ss" formControlName="unloadingTime"></nz-date-picker> <nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }"
nzFormat="yyyy-MM-dd HH:00前" formControlName="unloadingTime"></nz-date-picker>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>

View File

@ -102,15 +102,25 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
@ViewChild('sf7', { static: false }) sf7!: SFComponent; @ViewChild('sf7', { static: false }) sf7!: SFComponent;
schema7: SFSchema = {}; schema7: SFSchema = {};
ui7!: SFUISchema; ui7!: SFUISchema;
formatterRmb = (value: number): string =>{ limitValues = {
if(value){ maxWeight: 99999,
let value2 = Number(value).toLocaleString(undefined,{'minimumFractionDigits':2,'maximumFractionDigits':2}); maxVolume: 99999,
return `${value2}`; maxPiece: 99999,
maxDays: 999,
intervalDays: 999,
maxTimes: 999,
}
formatterRmb = (value: number): string => {
if (value === null || value === undefined) {
return '';
}else{
let value2 = Number(value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 });
return `${value2}`;
} }
return `¥ 0.00`
};
} ; parserRmb = (value: string): string => value.replace('¥', '').replace(',', '');
parserRmb = (value: string): string => value.replace('¥ ', '').replace(',','');
// 页面初始化 // 页面初始化
ngOnInit(): void { ngOnInit(): void {
this.initSF1(); this.initSF1();
@ -121,6 +131,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.initSF7(); this.initSF7();
this.addStartInfo(); this.addStartInfo();
this.addEndInfo(); this.addEndInfo();
this.getLimitvalue();
} }
initSF1() { initSF1() {
this.schema1 = { this.schema1 = {
@ -135,9 +146,11 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
if (q) { console.log(q === ' ')
let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map(res => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {
@ -145,8 +158,9 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
} }
}, },
change: (q: any) => { change: (q: any) => {
if (q) { let str =q.replace(/^\s+|\s+$/g,"");
this.getRegionCode(q); if (str) {
this.getRegionCode(str);
} }
}, },
} as SFSelectWidgetSchema } as SFSelectWidgetSchema
@ -655,6 +669,34 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
grid: { span: 24 } grid: { span: 24 }
} }
}; };
}
getLimitvalue() {
// 货物核载信息最大值
// 货物运输费(小计)最大值
const getlimitvaluesParms = [
this.service.limitKeys.weight,
this.service.limitKeys.volume,
this.service.limitKeys.piece,
this.service.limitKeys.maxDays,
this.service.limitKeys.intervalDays,
this.service.limitKeys.maxTimes,
];
this.service.request(this.service.$api_findItemValueByItemKeys, getlimitvaluesParms).subscribe((res) => {
const maxWeight = res.filter((item: any) => item.itemKey === this.service.limitKeys.weight)[0].itemValue;
const maxVolume = res.filter((item: any) => item.itemKey === this.service.limitKeys.volume)[0].itemValue;
const maxPiece = res.filter((item: any) => item.itemKey === this.service.limitKeys.piece)[0].itemValue;
const maxDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxDays)[0].itemValue;
const intervalDays = res.filter((item: any) => item.itemKey === this.service.limitKeys.intervalDays)[0].itemValue;
const maxTimes = res.filter((item: any) => item.itemKey === this.service.limitKeys.maxTimes)[0].itemValue;
this.limitValues = {
maxWeight: Number(maxWeight),
maxVolume: Number(maxVolume),
maxPiece: Number(maxPiece),
maxDays: Number(maxDays),
intervalDays: Number(intervalDays),
maxTimes: Number(maxTimes),
}
})
} }
// 不可选择的时间 // 不可选择的时间
disabledDateStart = (current: Date): boolean => { disabledDateStart = (current: Date): boolean => {

View File

@ -388,10 +388,10 @@ export class SupplyManagementVehicleComponent implements OnInit {
}, },
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q); let str =q.replace(/^\s+|\s+$/g,"");
if (!!q) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q }) .request(this.service.$api_enterpriceList, { enterpriseName: str })
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2021-12-03 11:10:14 * @Date : 2021-12-03 11:10:14
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-02-28 19:34:22 * @LastEditTime : 2022-03-01 14:08:30
* @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
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -139,10 +139,14 @@ export class SupplyManagementService extends BaseService {
super(injector); super(injector);
} }
public limitKeys = { public limitKeys = {
weight: 'sys.config.goods.approvalCarMaxWeight', //整车-核载重量上限 weight:'sys.config.goods.approvalCarMaxWeight', //整车-核载重量上限
volume: 'sys.config.goods.approvalCarMaxVolume', //整车-核载体积上限 volume:'sys.config.goods.approvalCarMaxVolume', //整车-核载体积上限
piece: 'sys.config.goods.approvalCarMaxPiece' //整车-核载件数上限 piece:'sys.config.goods.approvalCarMaxPiece', //整车-核载件数上限
}; maxDays:'sys.config.goods.wholeLoadingMaxDays', //整车-计划装货时间上限
intervalDays:'sys.config.goods.wholeUnloadingIntervalDays', //计划装、卸货时间间隔
maxTimes:'sys.config.goods.wholeLoadingMaxTimes', //整车-多装多卸地点上限
}
// 根据ItemKey获取项值 // 根据ItemKey获取项值
public $api_findItemValueByItemKeys = '/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys'; public $api_findItemValueByItemKeys = '/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys';
// 获取保价费信息 // 获取保价费信息

View File

@ -159,10 +159,10 @@ export class CloseAccountComponent implements OnInit {
searchDebounceTime: 300, searchDebounceTime: 300,
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) let str =q.replace(/^\s+|\s+$/g,"");
if (!!q) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -124,10 +124,10 @@ export class WaybillManagementAbnormalAppearComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) let str =q.replace(/^\s+|\s+$/g,"");
if (!!q) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -96,9 +96,10 @@ tabs = {
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) console.log(q)
if (!!q) { let str =q.replace(/^\s+|\s+$/g,"");
if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {

View File

@ -93,10 +93,10 @@ export class WaybillManagementVehicleComponent implements OnInit {
searchLoadingText: '搜索中...', searchLoadingText: '搜索中...',
allowClear: true, allowClear: true,
onSearch: (q: any) => { onSearch: (q: any) => {
console.log(q) let str =q.replace(/^\s+|\s+$/g,"");
if (!!q) { if (str) {
return this.service return this.service
.request(this.service.$api_enterpriceList, { enterpriseName: q}) .request(this.service.$api_enterpriceList, { enterpriseName: str})
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum)))) .pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
.toPromise(); .toPromise();
} else { } else {