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

This commit is contained in:
Taric Xin
2022-01-06 13:32:56 +08:00
22 changed files with 359 additions and 138 deletions

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2022-01-05 11:01:55
* @LastEditTime: 2022-01-05 13:47:31
* @LastEditTime: 2022-01-06 10:23:19
* @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\contract-management\components\contract-template-detail\contract-template-detail.component.html
@ -30,14 +30,14 @@
<nz-card>
<div nz-col nzSpan="20" style="overflow: scroll">
<nz-card class="card-height" *ngIf="isUpdate">
<nz-card class="card-height" *ngIf="!isUpdate">
<div class="mb-md">
<div></div>
</div>
<div [innerHTML]="templateHTML | safehtml"></div>
</nz-card>
<nz-card class="card-height" *ngIf="!isUpdate">
<nz-card class="card-height" *ngIf="isUpdate">
<div nz-row nzGutter="8">
<div nz-col nzSpan="24">
<input nz-input placeholder="请输入合同标题" [(ngModel)]="title" />

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2022-01-05 11:01:55
* @LastEditTime: 2022-01-05 13:51:44
* @LastEditTime: 2022-01-06 10:29:11
* @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\contract-management\components\contract-template-detail\contract-template-detail.component.ts
@ -47,14 +47,18 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
ngOnInit() {
this.initSF()
this.initSF2()
if(this.route.snapshot.queryParams.status == 3) {
if(this.route.snapshot.queryParams.status == 1) {
console.log('进来了吗')
// 新建
this.isUpdate = false;
} else {
this.isUpdate = true;
} else if(this.route.snapshot.queryParams.status == 2) {
// 编辑
this.textStatus = '编辑模板';
this.isUpdate =true;
this.isUpdate =false;
}else if(this.route.snapshot.queryParams.status == 3) {
// 编辑
this.textStatus = '查看模板';
this.isUpdate =false;
}
console.log(this.route.snapshot.params.id)
@ -66,13 +70,13 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
initSF() {
this.schema = {
properties: {
phon: {
templateName: {
type: 'string',
title: '模版名称',
},
stateReceipt: {
templateType: {
type: 'string',
title: '是否回单',
title: '模版类型',
enum: [
{ label: '需要', value: true },
{ label: '不需要', value: false }
@ -83,14 +87,14 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
placeholder: '请选择'
}
},
enterpriseProjectId: {
contractType: {
type: 'string',
title: '项目',
title: '单据类型',
ui: {
widget: 'select',
placeholder: '请选择',
visibleIf: {
stateReceipt: value => value === true
templateType: value => value === true
}
} as SFSelectWidgetSchema
},
@ -106,7 +110,7 @@ export class UserCenterComponentsDriverDetailComponent implements OnInit {
initSF2(data?: any) {
this.schema2 = {
properties: {
content: {
templateContent: {
type: 'string',
title: '',
ui: {

View File

@ -1,7 +1,7 @@
<!--
* @Author: your name
* @Date: 2021-12-03 11:10:14
* @LastEditTime: 2022-01-05 13:38:56
* @LastEditTime: 2022-01-06 10:19:10
* @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\vehicle\vehicle.component.html
@ -47,7 +47,7 @@
<st
#st
[bordered]="true"
[data]="service.$api_get_operate_listPage"
[data]="service.$api_get_contractTemplate_page"
[columns]="columns"
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
@ -55,7 +55,7 @@
[loadingDelay]="500"
[loading]="service.http.loading"
>
<ng-template st-row="complaintCode" let-item let-index="index">
<ng-template st-row="templateName" let-item let-index="index">
<a (click)="view(item)">{{item.complaintCode}}</a>
</ng-template>
</st>

View File

@ -69,11 +69,11 @@ export class OrderManagementTemplateComponent implements OnInit {
initSF() {
this.schema = {
properties: {
complaintCode: {
templateName: {
type: 'string',
title: '模板名称',
},
serviceType: {
templateType: {
title: '模板类型',
type: 'string',
default: '',
@ -99,23 +99,23 @@ export class OrderManagementTemplateComponent implements OnInit {
{
title: '合同模板名称',
className: 'text-center',
render: 'complaintCode'
render: 'templateName'
},
{
title: '模板类型',
className: 'text-center',
index: 'wayBillCode'
index: 'templateType'
},
{
title: '单据类型',
index: 'complainantTime',
index: 'contractType',
className: 'text-center',
},
{ title: '创建人', index: 'driverId', width: '120px', className: 'text-center' },
{ title: '创建人', index: 'createUserId', width: '120px', className: 'text-center' },
{
title: '创建时间',
className: 'text-center',
render: 'complainant'
index: 'createTime'
},
{
title: '操作',

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2022-01-04 21:05:49
* @LastEditTime: 2022-01-05 09:51:54
* @LastEditTime: 2022-01-06 10:15:44
* @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\contract-management\services\contract-management.service.ts
@ -17,6 +17,14 @@ export class ContractManagementService extends BaseService {
$api_get_getPremiumInformationPage = `/api/sdc/billOperate/listPremiumInformationPage`;
// 查询投诉列表
$api_get_operate_listPage = `/api/sdc/complaint/operate/listPage`;
// 新增/更新信息
$api_save_contractTemplate = `/api/sdc/contractTemplate/save`;
// 查询合同模板表
$api_get_contractTemplate_page = `/api/sdc/contractTemplate/list/page`;
// 查询合同模板表详情
$api_get_contractTemplate = `/api/sdc/contractTemplate/get`;
// 删除合同模板
$api_deletebatch_contractTemplate = `/api/sdc/contractTemplate/deletebatch`;
constructor(public injector: Injector) {
super(injector);
}

View File

@ -138,7 +138,24 @@ resourceStatus: any;
},
shipperAppUserId: {
type: 'string',
title: '货主'
title: '货主',
ui: {
widget: 'select',
serverSearch: true,
searchDebounceTime: 300,
searchLoadingText: '搜索中...',
onSearch: (q: any) => {
console.log(q)
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([]);
}
},
} as SFSelectWidgetSchema,
},
loadingPlace: {
type: 'string',
@ -272,7 +289,7 @@ resourceStatus: any;
},
},
},
enterpriseInfoName: {
enterpriseInfoId: {
type: 'string',
title: '网络货运人',
ui: {

View File

@ -1,7 +1,7 @@
/*
* @Author: your name
* @Date: 2021-12-03 15:31:52
* @LastEditTime: 2022-01-05 15:46:04
* @LastEditTime: 2022-01-06 09:27:56
* @LastEditors: Please set LastEditors
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
* @FilePath: \tms-obc-web\src\app\routes\order-management\services\order-management.service.ts
@ -125,7 +125,8 @@ export class OrderManagementService extends ShipperBaseService {
// 获取货主企业列表
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
/**
* 根据企业ID获取企业历史网络货运人
* @returns

View File

@ -145,7 +145,7 @@
<div>
<a nz-button nzType="link" (click)="showApply()">货源审核</a>
<a nz-button nzType="link" (click)="showApply()">修改运费</a>
<a nz-button nzType="link" nzDanger (click)="showAssign()">指派熟车</a>
<!-- <a nz-button nzType="link" nzDanger (click)="showAssign()">指派熟车</a> -->
<a nz-button nzType="link" nzDanger (click)="showApply()">修改单价</a>
</div>
</td>

View File

@ -154,7 +154,7 @@
<div>
<a nz-button nzType="link" (click)="showApply()">货源审核</a>
<a nz-button nzType="link" (click)="showApply()">修改运费</a>
<a nz-button nzType="link" nzDanger (click)="showApply()">指派熟车</a>
<!-- <a nz-button nzType="link" nzDanger (click)="showApply()">指派熟车</a> -->
<a nz-button nzType="link" nzDanger (click)="showApply()">修改单价</a>
</div>
</td>

View File

@ -1,5 +1,5 @@
<div class="modal-header">
<div class="modal-title">新增</div>
<div class="modal-title">添加熟车</div>
</div>
<!-- <nz-spin *ngIf="!i" class="modal-spin"></nz-spin> -->
<div>
@ -30,9 +30,22 @@
<div *ngIf="sf?.value?.mobile && tableData?.length > 0">
<st #st multiSort bordered [columns]="columns" [ps]="20" [req]="{ method: 'POST', allInBody: true, reName: { pi: '', ps: '' }, params: reqParams }" [res]="{ reName: { list: 'data', total: 'data.total' } }" [page]="{ show: true, showSize: true, pageSizes: [20, 50, 100] }"
[loading]="service.http.loading" [data]="tableData">
<ng-template st-row="certificationStatus" let-item let-index="index">
<div *ngIf="item.certificationStatus === -1">
<span class="ng-tns-c230-1239 ant-badge-status-dot ant-badge-status-processing ng-star-inserted"></span> 未认证
</div>
<div *ngIf="item.certificationStatus === 0">
<span class="ng-tns-c230-1239 ant-badge-status-dot ant-badge-status-processing ng-star-inserted"></span> 待审核
</div>
<div *ngIf="item.certificationStatus === 1">
<span class="ng-tns-c230-1239 ant-badge-status-dot ant-badge-status-success ng-star-inserted"></span> 已成功
</div>
<div *ngIf="item.certificationStatus === 2">
<span class="ng-tns-c230-1240 ant-badge-status-dot ant-badge-status-warning ng-star-inserted"></span> 已驳回
</div>
</ng-template>
<ng-template st-row="carModel" let-item let-index="index">
<span>{{item.carModel}};{{item.carLength}};{{item.carLoad}};</span>
<span>{{item.carModelLabel}}-{{item.carLengthLabel}}米-{{item.carLoad}}</span>
</ng-template>
</st>
</div>

View File

@ -106,17 +106,10 @@ export class CarAddmodalComponent implements OnInit {
{ title: '车辆信息', render: 'carModel', className: 'text-center' },
{
title: '个人认证状态',
index: 'identityStatus',
render: 'certificationStatus',
className: 'text-center',
type: 'enum',
enum: {
10: '待审核',
20: '已成功',
30: '已驳回',
40: '证件过期',
}
},
{ title: '驾驶证类型', index: 'createTime', className: 'text-center' },
{ title: '驾驶证类型', index: 'driverType', className: 'text-center' },
{
title: '操作',
width: '180px',
@ -129,14 +122,16 @@ export class CarAddmodalComponent implements OnInit {
}
initData(flag?: any) {
if (this.sf?.value.mobile) {
this.flag = flag
this.service.request(this.service.$api_getCarCaptainByMobile, { mobile: this.sf?.value.mobile }).subscribe(res => {
this.flag = flag
if (res.userId) {
this.tableData = [res];
setTimeout(() => {
this.st.reload()
})
} else {
this.tableData = []
}
this.st.reload()
})
}
}
@ -152,15 +147,14 @@ export class CarAddmodalComponent implements OnInit {
*/
add(item: any) {
const params: any = {
enterpriseId: this.companyData.enterpriseId,
enterpriseProjectId: this.companyData.projectId,
source: 1,
appUserId: item.appUserId ? item.appUserId : '',
mobile: item.mobile
}
this.service.request(this.service.$api_enterpriseVehicleSave, params).subscribe(res => {
if (res.data) {
if (res) {
this.service.msgSrv.success('添加成功')
this.modal.close(true)
}
})
}
@ -174,6 +168,6 @@ export class CarAddmodalComponent implements OnInit {
window.history.go(-1);
}
close(): void {
this.modal.destroy();
this.modal.close(true);
}
}

View File

@ -23,9 +23,9 @@
*ngFor="let car of item.userCarLicenseDesensitizationVOList" [nzCustomContent]="true">
<span>{{car.carNo}} -</span>
<span>{{car.carLength}}米,{{car.carLoad}}顿 -</span>
<span *ngIf="car?.approvalStatus === '20' && car.carStatus === '0'" class="text-success-dark">空闲</span>
<span *ngIf="car?.approvalStatus === '20' && car.carStatus === '1'" class="text-warning-dark">已被指派</span>
<span *ngIf="car?.approvalStatus !== '20'" class="text-red-dark">未认证</span>
<span *ngIf="car?.approvalStatus === 20 && !car.carStatus " class="text-success-dark">空闲</span>
<span *ngIf="car?.approvalStatus === 20 && car.carStatus " class="text-warning-dark">已被指派</span>
<span *ngIf="car?.approvalStatus !== 20" class="text-red-dark">未认证</span>
<!-- <span [ngClass]="cardBADGE[car.carStatus]?.color">{{cardBADGE[car.carStatus]?.text}}</span> -->
</nz-option>
</nz-select>
@ -35,11 +35,9 @@
<a (click)="setCarCaptain(item)">设置</a>
</ng-template>
<ng-template st-row="driverStatus" let-item let-index>
<span *ngIf="item?.certificationStatus === '20' && item.driverStatus === '0'"
class="text-success-dark">空闲</span>
<span *ngIf="item?.certificationStatus === '20' && item.driverStatus === '1'"
class="text-warning-dark">已被指派</span>
<span *ngIf="item?.certificationStatus !== '20'" class="text-red-dark">未认证</span>
<span *ngIf="item?.certificationStatus === 1 && item.driverStatus === 0" class="text-success-dark">空闲</span>
<span *ngIf="item?.certificationStatus === 1 && item.driverStatus === 1" class="text-warning-dark">已被指派</span>
<span *ngIf="item?.certificationStatus !== 1" class="text-red-dark">未认证</span>
</ng-template>
</st>
</div>

View File

@ -117,7 +117,7 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
if (this.selectedRows) {
const { carId, appUserId: driverId, captainAppUserId: carCaptainId } = this.selectedRows;
const params: any = { carId, driverId, carCaptainId };
this.service.request(this.url, { ...params, ...this.params }).subscribe((res: any) => {
this.service.request(this.service.$api_save_assign_bulk, { ...params, ...this.params }).subscribe((res: any) => {
if (res) {
this.modal.close(res);
}
@ -150,7 +150,11 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
modalOptions: { nzMaskClosable: false, nzTitle: '设置' }
}
).subscribe((res) => {
if (res) this.st.reload();
if (res) {
item.captainName = res?.name;
item.captainPhone = res?.mobile;
item.captainAppUserId = res?.appUserId;
}
});
}

View File

@ -31,6 +31,9 @@
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>
@ -71,6 +74,9 @@
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>

View File

@ -18,6 +18,7 @@ import { SupplyManagementService} from '../../services/supply-management.service
import { map } from 'rxjs/operators';
import { of } from 'rxjs';
import { PublishSuccessComponent } from '../onecar-publish/publish-success/publish-success.component';
import { PublishAddressListComponent } from '../onecar-publish/address-list/address-list.component';
@Component({
selector: 'app-publish-goods-bulk-publish',
templateUrl: './bulk-publish.component.html',
@ -804,4 +805,48 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
choose(){
window.history.go(-1);
}
chooseAddress(index: number, type: string) {
const modalRef = this.modalService.create({
nzTitle: '选择地址',
nzContent: PublishAddressListComponent,
nzWidth: 900,
nzComponentParams: { spuStatus: '1' },
nzOnOk: item => {
console.log(item)
console.log(type)
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;
}
}
});
}
}

View File

@ -32,8 +32,8 @@
/>
</nz-input-group>
<span style="padding: 0 10px"
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="openMap('start', idx)"></i
></span>
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="chooseAddress(idx, 'start')"></i
></span>
<span
><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b" (click)="subStartInfo($event, idx, data.id)"></i
></span>
@ -81,7 +81,9 @@
placeholder="请输入卸货地"
/>
</nz-input-group>
<span style="padding: 0 10px"><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff"></i></span>
<span style="padding: 0 10px"
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="chooseAddress(idx, 'end')"></i
></span>
<span><i nz-icon nzType="minus-circle-o" nzTheme="fill" style="color: #d9001b" (click)="subEndInfo($event, idx)"></i></span>
</div>
</nz-form-control>
@ -254,14 +256,14 @@
<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" style="width: 300px;">
<div class="align-center" style="width: 300px">
<div nz-col nzSpan="16">
<nz-input-number
[ngModel]="i.value"
[nzMin]="1"
[nzMax]="30"
[nzStep]="1"
style="width: 150px;"
style="width: 150px"
(ngModelChange)="i.setValue($event)"
nzPlaceHolder="请输入1-30"
></nz-input-number>
@ -280,7 +282,7 @@
<div class="align-center">
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车修改'" (click)="choose()">取消</button>
<button *ngIf="this.PageStatus == '整车修改'" nz-button nzType="primary" style="margin-left: 48px" (click)="submit()">提交修改</button>
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="chooseFamifiar()">指派熟车</button>
<!-- <button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="chooseFamifiar()">指派熟车</button> -->
<button *ngIf="this.PageStatus == '整车下一单'" nz-button nzType="primary" style="margin-left: 48px" (click)="submit()"
>司机抢单</button
>

View File

@ -521,6 +521,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
prePay: {
type: 'number',
title: '预付',
minimum: 0,
default: 0,
ui: {
prefix: '¥',
@ -530,18 +531,21 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
toPay: {
type: 'number',
title: '到付',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
oilCardPay: {
type: 'number',
title: '油卡',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
receiptPay: {
type: 'number',
title: '回单付',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
@ -1030,4 +1034,49 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
choose(){
window.history.go(-1);
}
chooseAddress(index: number, type: string) {
const modalRef = this.modalService.create({
nzTitle: '选择地址',
nzContent: PublishAddressListComponent,
nzWidth: 900,
nzComponentParams: { spuStatus: '1' },
nzOnOk: item => {
console.log(item)
console.log(type)
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;
}
}
});
}
}

View File

@ -17,7 +17,9 @@
</nz-card>
<nz-card>
<div class="card-title">装卸货信息<span class="tip-font">预计公里数:{{ totalDistance }}km预计行程耗时{{ totalTime }}小时</span></div>
<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">
@ -28,13 +30,20 @@
<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="请输入装货地" />
<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>
<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>
@ -42,12 +51,25 @@
<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="请输入联系人姓名" />
<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="请输入联系人电话" />
<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>
@ -62,8 +84,7 @@
</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>
<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">
@ -73,13 +94,21 @@
<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 }}" />
<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>
<span style="padding: 0 10px"
><i nz-icon nzType="menu" nzTheme="outline" style="color: #1890ff" (click)="chooseAddress(idx, 'end')"></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>
@ -87,12 +116,25 @@
<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="请输入联系人姓名" />
<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="请输入联系人电话" />
<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>
@ -137,20 +179,41 @@
<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="总重量,必填" />
<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="总体积" />
<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="总车次" />
<input
nz-input
type="number"
[ngModel]="i.value"
min="0"
step="0.01"
(ngModelChange)="i.setValue($event)"
placeholder="总车次"
/>
</nz-input-group>
</ng-template>
</sf>
@ -174,10 +237,17 @@
<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>
<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>
@ -197,8 +267,13 @@
<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()" />
<input
nz-input
[ngModel]="i.value"
(ngModelChange)="i.setValue($event)"
placeholder="请点击选择收回单地址"
(click)="backBillChange()"
/>
</ng-template>
</sf>
</div>
@ -210,15 +285,21 @@
<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="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>
<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>
@ -232,11 +313,17 @@
</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" (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>

View File

@ -491,6 +491,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
type: 'number',
title: '预付',
default: 0,
minimum: 0,
ui: {
prefix: '¥',
change: args => this.payChange()
@ -499,18 +500,21 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
toPay: {
type: 'number',
title: '到付',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
oilCardPay: {
type: 'number',
title: '油卡',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
receiptPay: {
type: 'number',
title: '回单付',
minimum: 0,
default: 0,
ui: { prefix: '¥', change: args => this.payChange() } as SFNumberWidgetSchema
},
@ -767,6 +771,8 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
nzWidth: 900,
nzComponentParams: { spuStatus: '1' },
nzOnOk: item => {
console.log(item)
console.log(type)
const data = item.seleteData;
if (JSON.stringify(data) === '{}') return;
switch (type) {

View File

@ -43,6 +43,7 @@ export class SupplyManagementUpdateFreightComponent implements OnInit {
owner1: {
type: 'number',
title: '预付',
minimum: 0,
max: 99999999,
ui: {
prefix: '¥',
@ -54,6 +55,7 @@ export class SupplyManagementUpdateFreightComponent implements OnInit {
callNo1: {
type: 'number',
title: '到付',
minimum: 0,
ui: {
prefix: '¥',
widgetWidth: 200,
@ -64,6 +66,7 @@ export class SupplyManagementUpdateFreightComponent implements OnInit {
href1: {
type: 'number',
title: '油卡',
minimum: 0,
ui: {
prefix: '¥',
widgetWidth: 200,
@ -72,7 +75,7 @@ export class SupplyManagementUpdateFreightComponent implements OnInit {
} as SFNumberWidgetSchema
},
description5: {
type: 'number', title: '回单付', maxLength: 140, ui: {
type: 'number', title: '回单付', minimum: 0, maxLength: 140, ui: {
prefix: '¥',
widgetWidth: 200,
precision: 2,

View File

@ -124,36 +124,15 @@
{{i?.goodsValue}}
</sv>
<sv label="保价费金额">
{{i?.insuranceAmount |currency}} 元
{{i?.insuranceAmount |currency: '¥'}} 元
</sv>
</sv-container>
</nz-card>
<!-- <nz-card nzTitle="运费信息到货后15天内支付运费">
<st [data]="i?.expenseList" [columns]="expenseColumns" [page]="{show:false}">
<ng-template st-row="total" let-item>
<div>
{{(item.price * item.rate) | currency}}
<span>(含附加费)</span>
</div>
</ng-template>
</st>
<div class="freight-info-box mt-md" nz-row>
<div nz-col nzSpan="24">
<h3>
<label>总计 :</label>
<span class="text-error-dark text-xl">
{{totalExpensePrice | currency}}
</span>
<span>运费¥3500.00含附加运费¥191.98</span>
</h3>
</div>
</div>
</nz-card> -->
<nz-card [nzTitle]="'运费信息到货后'+i?.paymentDays+'天内支付运费'">
<st [data]="i?.expenseVOList" [columns]="expenseColumns" [page]="{show:false}">
<ng-template st-row="total" let-item>
<div>
{{(item.price * item.rate) | currency}}
{{(item.price * item.rate) | currency: '¥'}}
<span>(含附加费)</span>
</div>
</ng-template>

View File

@ -63,14 +63,19 @@ export class SupplyManagementVehicleDetailComponent implements OnInit {
ngOnInit(): void {
this.getGoodsSourceDetail()
console.log('4444')
}
getGoodsSourceDetail() {
this.service.request(this.service.$api_get_getCompleteVehicleDetail, { id: this.id }).subscribe(res => {
const expenseList = res?.expenseList || [];
console.log('888')
console.log(this.i)
const expenseList = res?.expenseVOList || [];
this.totalExpensePrice = 0;
this.attObj = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'ATT')[0];
this.totalObj = this.i?.billExpenseDetails?.filter((data: any) => data.expenseCode === 'TOTAL')[0];
this.attObj = res?.expenseVOList?.filter((data: any) => data.expenseCode === 'ATT')[0];
this.totalObj = res?.expenseVOList?.filter((data: any) => data.expenseCode === 'TOTAL')[0];
console.log(this.attObj)
console.log(this.totalObj)
expenseList.forEach((e: any) => {
this.totalExpensePrice += e?.price * e?.rate;
});