This commit is contained in:
Taric Xin
2022-05-07 13:38:45 +08:00
34 changed files with 1529 additions and 1011 deletions

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-01-18 09:51:21 * @Date : 2022-01-18 09:51:21
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-05-06 16:05:45 * @LastEditTime : 2022-05-07 10:35:23
* @FilePath : \\tms-obc-web\\proxy.conf.js * @FilePath : \\tms-obc-web\\proxy.conf.js
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */

View File

@ -116,6 +116,10 @@
// .text-truncate { // .text-truncate {
// white-space: normal; // white-space: normal;
// } // }
// 强制头部居中
.ant-table-container table>thead>tr>.options {
text-align: center !important;
}
} }
} }

View File

@ -1,3 +1,13 @@
/*
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-28 20:27:07
* @LastEditors : Shiming
* @LastEditTime : 2022-05-07 10:16:08
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\compliance\\index\\curve\\curve.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved.
*/
import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core'; import { Component, ElementRef, Input, NgZone, OnChanges, OnInit, SimpleChanges, ViewChild } from '@angular/core';
import { G2MiniAreaClickItem } from '@delon/chart/mini-area'; import { G2MiniAreaClickItem } from '@delon/chart/mini-area';
@ -69,7 +79,7 @@ export class ComplianceCurveComponent implements OnInit,OnChanges {
this.chart.axis('proportion', { this.chart.axis('proportion', {
label: { label: {
formatter: (val: any) => { formatter: (val: any) => {
return val*100+ ' %'; return (val*100).toFixed(0)+ ' %';
}, },
}, },
}); });

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-07 17:57:23 * @Date : 2022-04-07 17:57:23
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-13 10:22:35 * @LastEditTime : 2022-05-07 09:46:55
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\curve\\curve.component.ts * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\curve\\curve.component.ts
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
*/ */
@ -108,7 +108,7 @@ export class DatatableCustomindexCurveMinComponent implements OnInit,OnChanges {
this.chart.axis('temperature', { this.chart.axis('temperature', {
label: { label: {
formatter: (val: any) => { formatter: (val: any) => {
return val + '万'; return val;
}, },
}, },
}); });

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-04-06 10:57:56 * @Date : 2022-04-06 10:57:56
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-04-19 14:01:38 * @LastEditTime : 2022-05-07 09:43:16
* @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\datatable\\components\\datascreen\\datascreen.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -30,7 +30,7 @@
<nz-card nzTitle="2022全年交易情况"> <nz-card nzTitle="2022全年交易情况">
<nz-row [nzGutter]="16"> <nz-row [nzGutter]="16">
<nz-col [nzSpan]="12"> <nz-col [nzSpan]="12">
<nz-statistic [nzValue]="(allDeal?.dealAmount | currency)!" [nzTitle]="'成交额'"></nz-statistic> <nz-statistic [nzValue]="(allDeal?.dealAmount | currency)! || 0" [nzTitle]="'成交额'"></nz-statistic>
</nz-col> </nz-col>
<nz-col [nzSpan]="12"> <nz-col [nzSpan]="12">
<nz-statistic [nzValue]="(allDeal?.settlementAmount | currency)!" [nzTitle]="'结算额'"></nz-statistic> <nz-statistic [nzValue]="(allDeal?.settlementAmount | currency)!" [nzTitle]="'结算额'"></nz-statistic>
@ -45,7 +45,7 @@
</nz-col> </nz-col>
</nz-row> </nz-row>
</nz-card> </nz-card>
<nz-card nzTitle="本交易趋势"> <nz-card nzTitle="本交易趋势">
<app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min> <app-financetable-curve-min #curve [chartData]="chartData2"></app-financetable-curve-min>
</nz-card> </nz-card>
<nz-card nzTitle="实时货源" style="height: 400px"> <nz-card nzTitle="实时货源" style="height: 400px">

View File

@ -83,6 +83,12 @@ export class WithdrawalsRecordComponent extends BasicTableComponent {
if (item) { if (item) {
params = [item.id]; params = [item.id];
} else { } else {
console.log(this.selectedRows);
if (this.selectedRows.length <= 0) {
this.service.msgSrv.error('请选择提现单!');
return;
}
params = this.selectedRows.map(node => node.id); params = this.selectedRows.map(node => node.id);
} }
const modal = this.nzModalService.create({ const modal = this.nzModalService.create({

View File

@ -297,7 +297,7 @@ export class OrderManagementBulkComponent extends BasicTableComponent implements
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.shipperservice.getNetworkEnterpriseName() asyncData: () => this.shipperservice.getNetworkFreightForwarder()
} }
}, },
serviceType: { serviceType: {

View File

@ -304,7 +304,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.shipperservice.getNetworkEnterpriseName() asyncData: () => this.shipperservice.getNetworkFreightForwarder()
} }
}, },
// goodsNameId: { // goodsNameId: {

View File

@ -1,3 +1,13 @@
<!--
* @Description :
* @Version : 1.0
* @Author : Shiming
* @Date : 2022-04-29 17:28:23
* @LastEditors : Shiming
* @LastEditTime : 2022-05-06 17:38:09
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\account-management\\components\\withdrawals-record\\withdrawals-record.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved.
-->
<page-header-wrapper [title]="''"></page-header-wrapper> <page-header-wrapper [title]="''"></page-header-wrapper>
<nz-card class="search-box" nzBordered> <nz-card class="search-box" nzBordered>
<div nz-row nzGutter="8"> <div nz-row nzGutter="8">
@ -34,7 +44,7 @@
<div class="mr-md"> <div class="mr-md">
已选择 已选择
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据&nbsp;&nbsp; 累计提现 <strong class="text-red">{{ <strong class="text-red">{{ selectedRows.length }}</strong> 条数据&nbsp;&nbsp; 累计提现 <strong class="text-red">{{
totalCallNo }}</strong> totalCallNo | currency }}</strong>
<!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> --> <!-- <a *ngIf="totalCallNo > 0" (click)="st.clearCheck()" class="ml-lg">清空</a> -->
</div> </div>
<button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['AM-WITHDRAW-RECORD-audit']">审核</button> <button nz-button (click)="this.auditAction(null)" acl [acl-ability]="['AM-WITHDRAW-RECORD-audit']">审核</button>

View File

@ -107,6 +107,11 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
if (item) { if (item) {
params = [item.id]; params = [item.id];
} else { } else {
if (this.selectedRows.length <= 0) {
this.service.msgSrv.error('请选择提现单!');
return;
}
params = this.selectedRows.map(node => node.id); params = this.selectedRows.map(node => node.id);
} }
const modal = this.nzModalService.create({ const modal = this.nzModalService.create({
@ -117,6 +122,10 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
label: '拒绝', label: '拒绝',
type: 'default', type: 'default',
onClick: () => { onClick: () => {
if (!this.msg || this.msg.trim().length === 0) {
this.service.msgSrv.warning('请填写拒绝原因 ');
return false;
}
this.service this.service
.request(this.service.$api_disagree_refund, { .request(this.service.$api_disagree_refund, {
refundApplicationId: params, refundApplicationId: params,
@ -129,6 +138,8 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
this.st.load(1); this.st.load(1);
} }
}); });
return false;
} }
}, },
{ {
@ -236,18 +247,14 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
accountType: { accountType: {
type: 'string', type: 'string',
title: '账户类型', title: '账户类型',
enum: [ ui: {
{label: '全部', value: ''}, widget: 'dict-select',
{label: '个人合伙人', value: '4'}, params: { dictKey: 'bank:type' },
{label: '企业合伙人', value: '5'} placeholder: '请选择',
], visibleIf: {
ui: { expand: (value: boolean) => value
widget: 'select', }
placeholder: '请选择',
visibleIf: {
expand: (value: boolean) => value
} }
}
}, },
ltdId: { ltdId: {
type: 'string', type: 'string',

View File

@ -55,7 +55,7 @@ export class PartnerListComponent {
}; };
loadSelectOptions() { loadSelectOptions() {
this.service.getRebateConfig().subscribe(res => { this.service.getRebateConfig({stateLocked: 1}).subscribe(res => {
if (res) { if (res) {
console.log(res); console.log(res);
@ -468,7 +468,7 @@ export class PartnerListComponent {
width: 140, width: 140,
type: 'badge', type: 'badge',
badge: { badge: {
0: { text: '启用', color: 'success' }, 0: { text: '正常', color: 'success' },
1: { text: '冻结', color: 'error' } 1: { text: '冻结', color: 'error' }
} }
}, },

View File

@ -2,6 +2,7 @@ import { Component, Input, OnInit, ViewChild } from '@angular/core';
import { SFComponent, SFSchema, SFValue } from '@delon/form'; import { SFComponent, SFSchema, SFValue } from '@delon/form';
import { ModalHelper } from '@delon/theme'; import { ModalHelper } from '@delon/theme';
import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal'; import { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';
import { map } from 'rxjs/operators';
import { PartnerListService } from '../../services/partner-list.service'; import { PartnerListService } from '../../services/partner-list.service';
@Component({ @Component({
@ -22,6 +23,7 @@ export class PartnerAuditModalComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
console.log(this.info); console.log(this.info);
this.initSF(this.info); this.initSF(this.info);
// asyncData: () => this.service.getChannel(),
if(this.info.channelId) { if(this.info.channelId) {
const value = [{ const value = [{
@ -30,14 +32,30 @@ export class PartnerAuditModalComponent implements OnInit {
}] }]
setTimeout(() => { setTimeout(() => {
if(this.sf) { if(this.sf) {
console.log('888'); this.sf.getProperty('/channelId')!.schema.enum = value;
this.sf.getProperty('/channelId')!.widget.reset(value);
// this.sf.getProperty('/channelId')!.schema.enum = value;
// this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', this.info.channelId); this.sf.setValue('/channelId', this.info.channelId);
} }
}) })
} else {
console.log()
this.service.getChannel().pipe(map(data => {
console.log(data);
}))
this.service.getChannel().subscribe((res) => {
console.log(res);
const value :any= res;
setTimeout(() => {
if(this.sf) {
this.sf.getProperty('/channelId')!.schema.enum = value;
this.sf.getProperty('/channelId')!.widget.reset(value);
this.sf.setValue('/channelId', value);
}
})
})
} }
} }
@ -49,13 +67,13 @@ export class PartnerAuditModalComponent implements OnInit {
ui: { ui: {
hidden: true hidden: true
}, },
// default: this.info.isPass default: this.info.isPass
}, },
staffName: { staffName: {
title: '合伙人名称', title: '合伙人名称',
type: 'string', type: 'string',
ui: { widget: 'text' }, ui: { widget: 'text' },
// default: user.enterpriseName default: user.enterpriseName
}, },
status: { status: {
title: '审核结果', title: '审核结果',
@ -78,7 +96,6 @@ export class PartnerAuditModalComponent implements OnInit {
widget: 'select', widget: 'select',
placeholder: '请选择', placeholder: '请选择',
allowClear: true, allowClear: true,
asyncData: () => this.service.getChannel(),
hidden: this.info.isPass === false, hidden: this.info.isPass === false,
visibleIf: { visibleIf: {
status: value => value status: value => value

View File

@ -4,7 +4,7 @@
* @Author : Shiming * @Author : Shiming
* @Date : 2022-02-24 20:09:49 * @Date : 2022-02-24 20:09:49
* @LastEditors : Shiming * @LastEditors : Shiming
* @LastEditTime : 2022-03-29 11:14:08 * @LastEditTime : 2022-05-06 16:37:06
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html * @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
* Copyright (C) 2022 huzhenhong. All rights reserved. * Copyright (C) 2022 huzhenhong. All rights reserved.
--> -->
@ -23,7 +23,7 @@
></sf> ></sf>
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right"> <div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
<button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button> <button nz-button nzType="primary" [nzLoading]="service.http.loading" (click)="st?.load(1);">查询</button>
<button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-SETTING-export']">导出</button> <!-- <button nz-button nzType="primary" [disabled]="service.http.loading" acl [acl-ability]="['REBATE-SETTING-export']">导出</button> -->
<button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button> <button nz-button [disabled]="service.http.loading" (click)="resetSF()">重置</button>
</div> </div>
</div> </div>

View File

@ -5,179 +5,187 @@
</button> </button>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card> <div class="custom-style">
<div class="card-title">货源单设置</div> <nz-card>
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf> <div class="card-title">货源单设置</div>
</nz-card> <sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
</nz-card>
<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">预计公里数:<em>{{ totalDistance }}km</em>,预计行程耗时:<em>{{ totalTime }}小时</em></span>
<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 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="请输入装货地" readonly="true" />
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label nzRequired>联系人</nz-form-label>
<div style="display: flex ;width: 86%">
<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 class="swap-icon" (click)="swapAddress()"><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 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="请输入卸货地" readonly="true" />
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label nzRequired>联系人</nz-form-label>
<div style="display: flex;width: 86%">
<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> </div>
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
</form>
</nz-card>
<nz-card> <form nz-form [formGroup]="validateForm1" role="form">
<div class="card-title">货物信息</div> <div nz-row [nzGutter]="24">
<div nz-row> <div nz-col [nzSpan]="10">
<div nz-col nzSpan="24"> <div *ngFor="let data1 of startInfo; let idx = index">
<sf #sf3 [schema]="schema3" class="sf3" [formData]="sf3data" [button]="'none'" [ui]="ui3"> <nz-form-item>
<ng-template class="1" sf-template="goodsTips" let-i let-ui="ui"> <nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
<nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert> <nz-form-control [nzErrorTip]="'请输入装货地'">
</ng-template> <div class="align-center">
<ng-template #tpl> <nz-input-group [nzSuffix]="endInconTemp1">
<span style="font-size: 12px;"> 国家法规及行政命令禁限运货物不能托运 <input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)"
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a> formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" readonly="true" />
</span> </nz-input-group>
</ng-template> </div>
</sf> </nz-form-control>
<sf #sf4 [schema]="schema4" [formData]="sf4data" [button]="'none'" [ui]="ui4"> </nz-form-item>
<ng-template sf-template="freightPrice" let-i let-ui="ui"> <nz-form-item>
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate"> <nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="请输入" type="number" [ngModel]="i.value" <div nz-col [nzSpan]="20">
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number> <div nz-row [nzGutter]="12">
</nz-input-group> <nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<ng-template #addOnAfterTemplate> <input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}"
<nz-select [ngModel]="sf4.value.freightType" (ngModelChange)="sf4.setValue('/freightType', $event)"> name="loadName{{ idx }}" maxlength="30" placeholder="请输入联系人姓名" />
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of freightTypeOptions"> </nz-form-control>
</nz-option> <nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
</nz-select> <input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</div>
</nz-form-item>
</div>
</div>
<div nz-col [nzSpan]="4">
<div class="icon-wrap">
<span class="swap-icon" (click)="swapAddress()"></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="请输入卸货地" readonly="true" />
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
<div nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data2.appUserName" maxlength="30" formControlName="unloadName{{ idx }}"
name="unloadAddress{{ idx }}" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data2.contractTelephone"
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11"
placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</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="24">
<sf #sf3 [schema]="schema3" class="sf3" [formData]="sf3data" [button]="'none'" [ui]="ui3">
<ng-template class="1" sf-template="goodsTips" let-i let-ui="ui">
<nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert>
</ng-template> </ng-template>
</ng-template> <ng-template #tpl>
<ng-template sf-template="rule" let-i let-ui="ui"> <span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
<div class="align-center"> <a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
<nz-select [ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="运费取整规则"> </span>
<nz-option nzLabel="保留小数" nzValue="1"></nz-option> </ng-template>
<nz-option nzLabel="抹除小数" nzValue="2"></nz-option> </sf>
<nz-option nzLabel="抹除个数" nzValue="3"></nz-option> <sf #sf4 [schema]="schema4" [formData]="sf4data" [button]="'none'" [ui]="ui4">
</nz-select> <ng-template sf-template="freightPrice" let-i let-ui="ui">
<span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2" nzTooltipPlacement="bottom"><i nz-icon <nz-input-group [nzAddOnAfter]="addOnAfterTemplate">
nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i></span> <nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="请输入" type="number" [ngModel]="i.value"
<ng-template #template2> (ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
<p>例如 付司机运费 = 重量*单价 = 999.99</p> </nz-input-group>
<p>保留小数,即 999.99</p> <ng-template #addOnAfterTemplate>
<p>抹除小数,即 999.00</p> <nz-select [ngModel]="sf4.value.freightType" (ngModelChange)="sf4.setValue('/freightType', $event)">
<p>抹除个位,即 990.00</p> <nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of freightTypeOptions">
</nz-option>
</nz-select>
</ng-template> </ng-template>
</div> </ng-template>
</ng-template> <ng-template sf-template="rule" let-i let-ui="ui">
<ng-template sf-template="weight" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number placeholder="总重量,必填" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number placeholder="总体积" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number placeholder="总车次" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%"></nz-input-number>
</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 #sf7 [schema]="schema7" [formData]="sf7data" [button]="'none'" [ui]="ui7">
<ng-template sf-template="paymentDays" let-i let-ui="ui">
<div nz-row>
<div class="align-center"> <div class="align-center">
<div nz-col nzSpan="12"> <nz-select [ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="运费取整规则">
<nz-input-number [(ngModel)]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1" [nzMax]="30" <nz-option nzLabel="保留小数" nzValue="1"></nz-option>
[nzStep]="1"></nz-input-number> <nz-option nzLabel="抹除小数" nzValue="2"></nz-option>
</div> <nz-option nzLabel="抹除个数" nzValue="3"></nz-option>
<div nz-col nzSpan="12"> </nz-select>
<span>&nbsp;天内支付运费</span> <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]="''">
<nz-input-number placeholder="总重量,必填" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number placeholder="总体积" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number placeholder="总车次" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
</sf>
</div>
</div>
</nz-card>
<nz-card>
<div class="card-title">补充信息</div>
<div nz-row>
<div nz-col nzSpan="24">
<sf #sf7 [schema]="schema7" [formData]="sf7data" [button]="'none'" [ui]="ui7">
<ng-template sf-template="paymentDays" let-i let-ui="ui">
<div nz-row>
<div class="align-center">
<div nz-col nzSpan="14">
<nz-input-number [(ngModel)]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1" [nzMax]="30"
[nzStep]="1"></nz-input-number>
</div>
<div nz-col nzSpan="10">
<span>&nbsp;天内支付运费</span>
</div>
</div> </div>
</div> </div>
</div> </ng-template>
</ng-template> </sf>
</sf> </div>
</div> </div>
</div> </nz-card>
</nz-card> <nz-card class="btn-wrap">
<nz-card> <div class="align-center">
<div class="align-center"> <button nz-button nzType="primary" (click)="submitConfirm('qrcode')" acl
<button nz-button nzType="primary" (click)="submitConfirm('qrcode')" acl [acl-ability]="['SUPPLY-VEHICLE-PLACEORDER- QRCode']">生成二维码</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER- QRCode']">生成二维码</button> <button nz-button nzType="primary" style="margin-left: 24px" (click)="submitConfirm('assign')" acl
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('assign')" acl [acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-bulkDesignate']">指派熟车</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-bulkDesignate']">指派熟车</button> <!-- <button nz-button nzType="primary" (click)="choose()">取消</button> -->
<!-- <button nz-button nzType="primary" (click)="choose()">取消</button> --> <button nz-button nzType="primary" style="margin-left: 24px" (click)="submitConfirm('publish')" acl
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('publish')" acl [acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-bulkAnotherOrder']">司机抢单</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-bulkAnotherOrder']">司机抢单</button> </div>
</div> </nz-card>
</nz-card> </div>

View File

@ -11,10 +11,10 @@
.sf3 { .sf3 {
.goods_Tips_item { .goods_Tips_item {
.goods_tips { .goods_tips {
width: calc(50% - 45px); width: calc(50% - 57px);
.ant-alert { .ant-alert {
padding: 0 0 0 2px; margin-bottom: 5px;
} }
} }
@ -79,3 +79,100 @@ input[type='number']::-webkit-outer-spin-button {
margin: 0; margin: 0;
-webkit-appearance: none; -webkit-appearance: none;
} }
.custom-style {
::ng-deep {
.ant-card {
margin-bottom: 0;
}
.ant-card-body {
padding-bottom: 0;
}
.ant-card-bordered {
border: 0 none;
}
.card-title {
display: flex;
align-items: center;
>span {
margin-left: 8px;
font-size: 14px;
em {
font-style: normal;
color: #E60012;
}
}
&::before {
content: '';
display: inline-block;
width: 2px;
height: 16px;
margin-right: 10px;
background: #E60012;
}
}
.ant-btn-dangerous {
border-radius: 4px;
color: #CF3834;
border-color: rgba(207, 56, 52, 0.5);
}
.icon-wrap {
display: flex;
justify-content: center;
height: 100%;
}
.swap-icon {
background: url('/assets/images/frame.png') no-repeat 50% 50%;
cursor: pointer;
}
.ant-input-affix-wrapper,
.ant-input,
.ant-picker,
.ant-select-selector,
.ant-input-number-input,
.ant-input-number {
border-radius: 4px ;
}
.ant-input-group-addon {
border-radius: 0 4px 4px 0;
}
.align-center {
.ant-btn {
height: 40px;
padding: 0 23px;
font-size: 16px;
border-radius: 3px;
}
}
.ant-select-arrow {
transform: scaleX(1.5) translateY(2px);
color: rgb(153,153,153);
font-size: 8px;
}
.ant-picker-suffix {
color: #333;
}
.btn-wrap {
margin-top: 20px;
padding-bottom: 20px;
}
.ant-alert {
padding: 6px 16px;
border-radius: 2px;
font-size: 14px;
}
.fc {
color: #f5222d;
}
}
}

View File

@ -203,7 +203,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
this.ui1 = { this.ui1 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
} }
}; };
} }
@ -293,9 +293,12 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 12 }
}, },
$goodsNameId: {
spanLabelFixed: 10
},
$goodsTips: { $goodsTips: {
grid: { span: 24 } grid: { span: 24 }
} }
@ -406,33 +409,37 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
}; };
this.ui4 = { this.ui4 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 24 } grid: { span: 12 }
}, },
$freightPrice: { $freightPrice: {
grid: { span: 8 } grid: { span: 8 }
}, },
$rule: { $rule: {
spanLabelFixed: 10,
grid: { span: 8 } grid: { span: 8 }
}, },
$settlementBasis: { $settlementBasis: {
spanLabelFixed: 10,
grid: { span: 8 } grid: { span: 8 }
}, },
$weight: { $weight: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } grid: { span: 4 }
}, },
$volume: { $volume: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } spanLabelFixed: 10,
grid: { span: 4 }
}, },
$number: { $number: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } spanLabelFixed: 10,
grid: { span: 4 }
}, },
$carModel: { $carModel: {
spanLabelFixed: 120, grid: { span: 6 }
grid: { span: 8 }
}, },
$carLength: { $carLength: {
grid: { span: 8 } spanLabelFixed: 10,
grid: { span: 6 }
} }
}; };
} }
@ -522,7 +529,7 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
ui: { ui: {
widget: 'textarea', widget: 'textarea',
placeholder: '请输入', placeholder: '请输入',
autosize: { minRows: 3, maxRows: 3 } autosize: { minRows: 1, maxRows: 1 }
} as SFTextareaWidgetSchema } as SFTextareaWidgetSchema
} }
}, },
@ -538,7 +545,10 @@ export class SupplyManagementBulkPublishComponent implements OnInit {
}; };
this.ui7 = { this.ui7 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 8 }
},
$remarks: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };

View File

@ -5,233 +5,182 @@
</button> </button>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card> <div class="custom-style">
<div class="card-title">货源单设置</div> <nz-card>
<sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data"> <div class="card-title">货源单设置</div>
<ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template> <sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data">
</sf> <ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template>
</nz-card> </sf>
</nz-card>
<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">预计公里数:<em>{{ totalDistance }}km</em>,预计行程耗时:<em>{{ totalTime }}小时</em></span>
>
<form #ngForm="ngForm" nz-form 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 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)"
name="startDetailedAddress{{ idx }}"
placeholder="请输入装货地"
required
readonly="true"
/>
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item >
<nz-form-label nzRequired>联系人</nz-form-label>
<div style="display: flex;width: 86%">
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
<input
nz-input
[(ngModel)]="data1.appUserName"
name="startAppUserName{{ idx }}"
maxlength="30"
placeholder="请输入联系人姓名"
required
/>
</nz-form-control>
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
<input
style="margin-left: 12px"
nz-input
[(ngModel)]="data1.contractTelephone"
maxlength="11"
name="startContractTelephone{{ idx }}"
placeholder="请输入联系人电话"
required
/>
</nz-form-control>
</div>
</nz-form-item>
</div>
</div>
<div nz-col [nzSpan]="4">
<div style="display: flex; justify-content: center">
<span class="swap-icon" (click)="swapAddress()"><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 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)"
name="endDetailedAddress{{ idx }}"
placeholder="请输入卸货地"
required
readonly="true"
/>
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label nzRequired>联系人</nz-form-label>
<div style="display: flex;width: 86%">
<nz-form-control [nzErrorTip]="'请输入联系人姓名'">
<input
nz-input
[(ngModel)]="data2.appUserName"
maxlength="30"
name="endAppUserName{{ idx }}"
placeholder="请输入联系人姓名"
required
/>
</nz-form-control>
<nz-form-control [nzErrorTip]="'请输入联系人电话'">
<input
style="margin-left: 12px"
nz-input
[(ngModel)]="data2.contractTelephone"
name="endUnloadPhone{{ idx }}"
maxlength="11"
placeholder="请输入联系人电话"
required
/>
</nz-form-control>
</div>
</nz-form-item>
</div>
</div>
</div> </div>
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
</form>
</nz-card>
<nz-card> <form #ngForm="ngForm" nz-form role="form">
<div class="card-title">货物信息</div> <div nz-row [nzGutter]="24">
<div nz-row> <div nz-col [nzSpan]="10">
<div nz-col nzSpan="24"> <div *ngFor="let data1 of startInfo; let idx = index">
<sf #sf3 [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data"></sf> <nz-form-item>
<sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data"> <nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
<ng-template sf-template="freightPrice" let-i let-ui="ui"> <nz-form-control [nzErrorTip]="'请输入装货地'">
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate"> <div class="align-center">
<nz-input-number [nzMax]="99999" [nzMin] ="0" nzPlaceHolder="请输入" type="number" [ngModel]="i.value" <nz-input-group [nzSuffix]="endInconTemp1">
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number> <input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)"
</nz-input-group> name="startDetailedAddress{{ idx }}" placeholder="请输入装货地" required readonly="true" />
<ng-template #addOnAfterTemplate> </nz-input-group>
<nz-select [ngModel]="sf4.value.freightType" (ngModelChange)="sf4.setValue('/freightType', $event)"> </div>
<nz-option [nzValue]="item.value" [nzLabel]="item.label" *ngFor="let item of freightTypeOptions"> </nz-option> </nz-form-control>
</nz-select> </nz-form-item>
</ng-template> <nz-form-item>
</ng-template> <nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
<ng-template sf-template="rule" let-i let-ui="ui"> <div nz-col [nzSpan]="20">
<div class="align-center"> <div nz-row [nzGutter]="12">
<nz-select [ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="运费取整规则"> <nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<nz-option nzLabel="保留小数" nzValue="1"></nz-option> <input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}"
<nz-option nzLabel="抹除小数" nzValue="2"></nz-option> name="loadName{{ idx }}" maxlength="30" placeholder="请输入联系人姓名" />
<nz-option nzLabel="抹除个数" nzValue="3"></nz-option> </nz-form-control>
</nz-select> <nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2" nzTooltipPlacement="bottom" <input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
><i nz-icon nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
></span> </nz-form-control>
<ng-template #template2> </div>
<p>例如 付司机运费 = 重量*单价 = 999.99</p> </div>
<p>保留小数,即 999.99</p> </nz-form-item>
<p>抹除小数,即 999.00</p>
<p>抹除个位,即 990.00</p> </div>
</div>
<div nz-col [nzSpan]="4">
<div class="icon-wrap">
<span class="swap-icon" (click)="swapAddress()"></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)"
name="endDetailedAddress{{ idx }}" placeholder="请输入卸货地" required readonly="true" />
</nz-input-group>
</div>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label [nzSpan]="4" nzRequired>联系人</nz-form-label>
<div nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data2.appUserName" maxlength="30" formControlName="unloadName{{ idx }}"
name="unloadAddress{{ idx }}" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data2.contractTelephone"
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11"
placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</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="24">
<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">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="请输入" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</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>
</div> </ng-template>
</ng-template> <ng-template sf-template="rule" let-i let-ui="ui">
<ng-template sf-template="weight" let-i let-ui="ui"> <div class="align-center">
<nz-input-group [nzAddOnAfter]="''"> <nz-select [ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="运费取整规则">
<nz-input-number <nz-option nzLabel="保留小数" nzValue="1"></nz-option>
placeholder="总重量,必填" <nz-option nzLabel="抹除小数" nzValue="2"></nz-option>
[ngModel]="i.value" <nz-option nzLabel="抹除个数" nzValue="3"></nz-option>
(ngModelChange)="i.setValue($event)" </nz-select>
[nzMin]="1" <span style="padding: 0 12px" nz-tooltip [nzTooltipTitle]="template2" nzTooltipPlacement="bottom"><i
style="width: 100%" nz-icon nzType="exclamation-circle" nzTheme="outline" style="color: #1890ff"></i></span>
></nz-input-number> <ng-template #template2>
</nz-input-group> <p>例如 付司机运费 = 重量*单价 = 999.99</p>
</ng-template> <p>保留小数,即 999.99</p>
<ng-template sf-template="volume" let-i let-ui="ui"> <p>抹除小数,即 999.00</p>
<nz-input-group [nzAddOnAfter]="''"> <p>抹除个位,即 990.00</p>
<nz-input-number </ng-template>
placeholder="总体积" </div>
[ngModel]="i.value" </ng-template>
(ngModelChange)="i.setValue($event)" <ng-template sf-template="weight" let-i let-ui="ui">
[nzMin]="1" <nz-input-group [nzAddOnAfter]="''">
style="width: 100%" <nz-input-number placeholder="总重量,必填" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
></nz-input-number> style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group> </nz-input-group>
</ng-template> </ng-template>
<ng-template sf-template="number" let-i let-ui="ui"> <ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''"> <nz-input-group [nzAddOnAfter]="''">
<nz-input-number <nz-input-number placeholder="总体积" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
placeholder="总车次" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
[ngModel]="i.value" </nz-input-group>
(ngModelChange)="i.setValue($event)" </ng-template>
[nzMin]="1" <ng-template sf-template="number" let-i let-ui="ui">
style="width: 100%" <nz-input-group [nzAddOnAfter]="''">
></nz-input-number> <nz-input-number placeholder="总车次" [ngModel]="i.value" (ngModelChange)="i.setValue($event)" [nzMin]="1"
</nz-input-group> style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</ng-template> </nz-input-group>
</sf> </ng-template>
</sf>
</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="24">
<sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data"> <sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data">
<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="12"> <div nz-col nzSpan="14">
<nz-input-number <nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
[ngModel]="i.value" (ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30"></nz-input-number>
[nzMin]="1" </div>
[nzMax]="30" <div nz-col nzSpan="10">
[nzStep]="1" <span>&nbsp;天内支付运费</span>
(ngModelChange)="i.setValue($event)" </div>
nzPlaceHolder="请输入1-30"
></nz-input-number>
</div>
<div nz-col nzSpan="12">
<span>&nbsp;天内支付运费</span>
</div> </div>
</div> </div>
</div> </ng-template>
</ng-template> </sf>
</sf> </div>
</div> </div>
</div> </nz-card>
</nz-card>
<nz-card> <nz-card class="btn-wrap">
<div class="align-center"> <div class="align-center">
<!-- <button nz-button nzType="primary" (click)="choose()">取消</button> --> <!-- <button nz-button nzType="primary" (click)="choose()">取消</button> -->
<button nz-button nzType="primary" (click)="submitConfirm('qrcode')" acl [acl-ability]="['SUPPLY-BULK-RELEASE-QRCode ']">生成二维码</button> <button nz-button nzType="primary" (click)="submitConfirm('qrcode')" acl
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('assign')" acl [acl-ability]="['SUPPLY-BULK-RELEASE-consignBulkAssign']">指派熟车</button> [acl-ability]="['SUPPLY-BULK-RELEASE-QRCode ']">生成二维码</button>
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('publish')" acl [acl-ability]="['SUPPLY-BULK-RELEASE-consignBulk']">司机抢单</button> <button nz-button nzType="primary" style="margin-left: 24px" (click)="submitConfirm('assign')" acl
</div> [acl-ability]="['SUPPLY-BULK-RELEASE-consignBulkAssign']">指派熟车</button>
</nz-card> <button nz-button nzType="primary" style="margin-left: 24px" (click)="submitConfirm('publish')" acl
[acl-ability]="['SUPPLY-BULK-RELEASE-consignBulk']">司机抢单</button>
</div>
</nz-card>
</div>

View File

@ -46,3 +46,100 @@ input[type='number']::-webkit-outer-spin-button {
margin: 0; margin: 0;
-webkit-appearance: none; -webkit-appearance: none;
} }
.custom-style {
::ng-deep {
.ant-card {
margin-bottom: 0;
}
.ant-card-body {
padding-bottom: 0;
}
.ant-card-bordered {
border: 0 none;
}
.card-title {
display: flex;
align-items: center;
>span {
margin-left: 8px;
font-size: 14px;
em {
font-style: normal;
color: #E60012;
}
}
&::before {
content: '';
display: inline-block;
width: 2px;
height: 16px;
margin-right: 10px;
background: #E60012;
}
}
.ant-btn-dangerous {
border-radius: 4px;
color: #CF3834;
border-color: rgba(207, 56, 52, 0.5);
}
.icon-wrap {
display: flex;
justify-content: center;
height: 100%;
}
.swap-icon {
background: url('/assets/images/frame.png') no-repeat 50% 50%;
cursor: pointer;
}
.ant-input-affix-wrapper,
.ant-input,
.ant-picker,
.ant-select-selector,
.ant-input-number-input,
.ant-input-number {
border-radius: 4px ;
}
.ant-input-group-addon {
border-radius: 0 4px 4px 0;
}
.align-center {
.ant-btn {
height: 40px;
padding: 0 23px;
font-size: 16px;
border-radius: 3px;
}
}
.ant-select-arrow {
transform: scaleX(1.5) translateY(2px);
color: rgb(153,153,153);
font-size: 8px;
}
.ant-picker-suffix {
color: #333;
}
.btn-wrap {
margin-top: 20px;
padding-bottom: 20px;
}
.ant-alert {
padding: 6px 16px;
border-radius: 2px;
font-size: 14px;
}
.fc {
color: #f5222d;
}
}
}

View File

@ -223,11 +223,8 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
}; };
this.ui1 = { this.ui1 = {
'*': { '*': {
spanLabelFixed: 110, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
},
$enterpriseInfoName: {
grid: { span: 24 }
} }
}; };
} }
@ -303,8 +300,14 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 12 }
},
$goodsNameId: {
spanLabelFixed: 10
},
$goodsTips: {
grid: { span: 24 }
} }
}; };
} }
@ -411,33 +414,37 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
}; };
this.ui4 = { this.ui4 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 24 } grid: { span: 12 }
}, },
$freightPrice: { $freightPrice: {
grid: { span: 8 } grid: { span: 8 }
}, },
$rule: { $rule: {
spanLabelFixed: 10,
grid: { span: 8 } grid: { span: 8 }
}, },
$settlementBasis: { $settlementBasis: {
spanLabelFixed: 10,
grid: { span: 8 } grid: { span: 8 }
}, },
$weight: { $weight: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } grid: { span: 4 }
}, },
$volume: { $volume: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } spanLabelFixed: 10,
grid: { span: 4 }
}, },
$number: { $number: {
grid: { lg: 8, md: 12, sm: 12, xs: 24 } spanLabelFixed: 10,
grid: { span: 4 }
}, },
$carModel: { $carModel: {
spanLabelFixed: 120, grid: { span: 6 }
grid: { span: 8 }
}, },
$carLength: { $carLength: {
grid: { span: 8 } spanLabelFixed: 10,
grid: { span: 6 }
} }
}; };
} }
@ -527,7 +534,7 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
ui: { ui: {
widget: 'textarea', widget: 'textarea',
placeholder: '请输入', placeholder: '请输入',
autosize: { minRows: 3, maxRows: 3 } autosize: { minRows: 1, maxRows: 1 }
} as SFTextareaWidgetSchema } as SFTextareaWidgetSchema
} }
}, },
@ -535,7 +542,10 @@ export class SupplyManagementBulkReleasePublishComponent implements OnInit {
}; };
this.ui6 = { this.ui6 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 8 }
},
$remarks: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };

View File

@ -5,264 +5,271 @@
</button> </button>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card> <div class="custom-style">
<div class="card-title">货源单设置</div> <nz-card>
<sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf> <div class="card-title">货源单设置</div>
</nz-card> <sf #sf1 [schema]="schema1" [formData]="sf1data" [button]="'none'" [ui]="ui1"></sf>
</nz-card>
<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">预计公里数:<em>{{ totalDistance }}km</em>,预计行程耗时:<em>{{ totalTime }}小时</em></span>
</div>
<form nz-form [formGroup]="validateForm1" role="form"> <form nz-form [formGroup]="validateForm1" role="form">
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="10"> <div nz-col [nzSpan]="10">
<div *ngFor="let data1 of startInfo; let idx = index"> <div *ngFor="let data1 of startInfo; let idx = index">
<nz-form-item> <nz-form-item>
<nz-form-label nzRequired>装货地</nz-form-label> <nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入装货地'"> <nz-form-control [nzErrorTip]="'请输入装货地'">
<div class="align-center"> <div class="align-center">
<nz-input-group [nzSuffix]="endInconTemp1"> <nz-input-group [nzSuffix]="endInconTemp1">
<input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)" <input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)"
formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" readonly="true" /> formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" readonly="true" />
</nz-input-group> </nz-input-group>
<span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline" <span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle-o" nzTheme="outline"
style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span> style="color: #1890ff" (click)="subStartInfo($event, idx)"></i></span>
<span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle" <!-- <span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle"
nzTheme="outline" style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span> nzTheme="outline" 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 nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}"
name="loadName{{ idx }}" maxlength="30" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</div> </div>
</nz-form-item>
</div>
<div nz-row>
<div nz-col [nzSpan]="4"></div>
<div style="display: flex; justify-content: center">
<button nz-button (click)="addStartInfo()" nzDanger>
<i nz-icon nzType="plus"></i>
添加装货地
</button>
</div>
</div>
</div>
<div nz-col [nzSpan]="4">
<div class="icon-wrap">
<span class="swap-icon" (click)="swapAddress()"></span>
</div>
</div>
<div nz-col [nzSpan]="10">
<div *ngFor="let data2 of endInfo; let idx = index">
<nz-form-item>
<nz-form-label nzRequired [nzSpan]="4">卸货地</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 }}"
readonly="true" />
</nz-input-group>
<span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle-o" nzTheme="outline"
style="color: #1890ff" (click)="subEndInfo($event, idx)"></i></span>
<!-- <span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle"
nzTheme="outline" 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 nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data2.appUserName" maxlength="30" formControlName="unloadName{{ idx }}"
name="unloadAddress{{ idx }}" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data2.contractTelephone"
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11"
placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</div>
</nz-form-item>
</div>
<div nz-row>
<div nz-col [nzSpan]="4"></div>
<div style="display: flex; justify-content: center">
<button nz-button (click)="addEndInfo()" nzDanger>
<i nz-icon nzType="plus"></i>
添加卸货地
</button>
</div>
</div>
</div>
</div>
<div nz-row [nzGutter]="24" style="margin-top: 24px">
<div nz-col nzXs="2" nzSm="4" nzMd="8" nzLg="8" nzXl="10">
<nz-form-item>
<nz-form-label nzRequired [nzSpan]="4">装货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入装货时间'">
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前"
formControlName="loadingTime" [nzDisabledDate]="disabledDateStart"></nz-date-picker>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div>
<div nz-col nzXs="20" nzSm="16" nzMd="12" nzLg="8" nzXl="4"></div>
<div nz-col nzXs="2" nzSm="4" nzMd="8" nzLg="8" nzXl="10">
<nz-form-item> <nz-form-item>
<nz-form-label nzRequired>联系人</nz-form-label> <nz-form-label [nzSpan]="4" nzRequired>卸货时间</nz-form-label>
<div style="display: flex; width: 80.7%"> <nz-form-control [nzErrorTip]="'请输入卸货时间'">
<nz-form-control [nzErrorTip]="'请输入联系人姓名'"> <nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前"
<input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}" formControlName="unloadingTime"></nz-date-picker>
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>
<div style="display: flex; justify-content: center">
<button nz-button nzType="primary" (click)="addStartInfo()">
<i nz-icon nzType="plus"></i>
添加装货地
</button>
</div>
</div>
</div>
<div nz-col [nzSpan]="4">
<div style="display: flex; justify-content: center">
<span class="swap-icon" (click)="swapAddress()"><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 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 }}"
readonly="true" />
</nz-input-group>
<span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline"
style="color: #d9001b" (click)="subEndInfo($event, idx)"></i></span>
<span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle"
nzTheme="outline" style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span>
</div>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
<nz-form-item>
<nz-form-label nzRequired>联系人</nz-form-label>
<div style="display: flex; width: 80.7%">
<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>
<div style="display: flex; justify-content: center">
<button nz-button nzType="primary" (click)="addEndInfo()">
<i nz-icon nzType="plus"></i>
添加卸货地
</button>
</div>
</div> </div>
</div> </div>
</div> <ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
<div nz-row [nzGutter]="24" style="margin-top: 24px"> </form>
<div nz-col nzXs="2" nzSm="4" nzMd="8" nzLg="8" nzXl="10"> </nz-card>
<nz-form-item>
<nz-form-label nzRequired>装货时间</nz-form-label> <nz-card>
<nz-form-control [nzErrorTip]="'请输入装货时间'"> <div class="card-title">货物信息</div>
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前" formControlName="loadingTime" <div nz-row>
[nzDisabledDate]="disabledDateStart"></nz-date-picker> <div nz-col nzSpan="24">
</nz-form-control> <sf #sf3 class="sf3" [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data">
</nz-form-item> <ng-template sf-template="goodsTips" let-i let-ui="ui">
</div> <nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert>
<div nz-col nzXs="20" nzSm="16" nzMd="12" nzLg="8" nzXl="4"></div> </ng-template>
<div nz-col nzXs="2" nzSm="4" nzMd="8" nzLg="8" nzXl="10"> <ng-template #tpl>
<nz-form-item> <span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
<nz-form-label nzRequired>卸货时间</nz-form-label> <a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
<nz-form-control [nzErrorTip]="'请输入卸货时间'"> </span>
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前" </ng-template>
formControlName="unloadingTime"></nz-date-picker> </sf>
</nz-form-control>
</nz-form-item>
</div> </div>
</div> </div>
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template> <sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data">
</form> <ng-template sf-template="weight" let-i let-ui="ui">
</nz-card> <nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="总重量,必填" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%; border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="体积" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="件数" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="goodsValue" let-i let-ui="ui">
<div class="align-center">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="2000000" [nzStep]="0.01"
(ngModelChange)="i.setValue($event);getInsurersPrice()" nzPlaceHolder="请输入0-2000000之间数值">
</nz-input-number>
</div>
</ng-template>
</sf>
</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="16"> <div nz-col nzSpan="24">
<sf #sf3 [schema]="schema3" class="sf3" [button]="'none'" [ui]="ui3" [formData]="sf3data"> <sf #sf5 [schema]="schema5" [button]="'none'" [ui]="ui5" [formData]="sf5data">
<ng-template class="1" sf-template="goodsTips" let-i let-ui="ui"> <ng-template sf-template="type1" let-i let-ui="ui">
<nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert> <label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+10</span>&nbsp;&nbsp;
</ng-template> <label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+10</span>
<ng-template #tpl> </ng-template>
<span style="font-size: 12px;"> 国家法规及行政命令禁限运货物不能托运 <ng-template sf-template="type2" let-i let-ui="ui">
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a> <label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+20</span>&nbsp;&nbsp;
</span> <label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+20</span>
</ng-template> </ng-template>
</sf> <ng-template sf-template="freeInsurance1" let-i let-ui="ui">
</div> <nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</div> </ng-template>
<sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data"> <ng-template sf-template="freeInsurance2" let-i let-ui="ui">
<ng-template sf-template="weight" let-i let-ui="ui"> <nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
<nz-input-group [nzAddOnAfter]="''"> </ng-template>
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="总重量,必填" type="number" [ngModel]="i.value" <ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保②单次运输保额仅限200万元以内③保险详细内容及注意事项请见<a target="_blank"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number> [queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
</nz-input-group> </sf>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="体积" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="件数" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="goodsValue" let-i let-ui="ui">
<div class="align-center">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="2000000" [nzStep]="0.01"
(ngModelChange)="i.setValue($event);getInsurersPrice()" nzPlaceHolder="请输入0-2000000之间数值">
</nz-input-number>
</div> </div>
</ng-template>
</sf>
</nz-card>
<nz-card>
<div class="card-title">服务信息</div>
<div nz-row>
<div nz-col nzSpan="16">
<sf #sf5 [schema]="schema5" [button]="'none'" [ui]="ui5" [formData]="sf5data">
<ng-template sf-template="type1" let-i let-ui="ui">
<label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+10</span>&nbsp;&nbsp;
<label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+10</span>
</ng-template>
<ng-template sf-template="type2" let-i let-ui="ui">
<label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+20</span>&nbsp;&nbsp;
<label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+20</span>
</ng-template>
<ng-template sf-template="freeInsurance1" let-i let-ui="ui">
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</ng-template>
<ng-template sf-template="freeInsurance2" let-i let-ui="ui">
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</ng-template>
<ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保②单次运输保额仅限200万元以内③保险详细内容及注意事项请见<a target="_blank"
[queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
</sf>
</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="9"> <div nz-col nzSpan="24">
<sf #sf6 [schema]="schema6" [formData]="sf6data" [button]="'none'" [ui]="ui6"> </sf> <sf #sf6 [schema]="schema6" [formData]="sf6data" [button]="'none'" [ui]="ui6"> </sf>
</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="8"> <div nz-col nzSpan="24">
<sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data"> <sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data">
<ng-template sf-template="prePay" let-i let-ui="ui"> <ng-template sf-template="prePay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="toPay" let-i let-ui="ui"> <ng-template sf-template="toPay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="receiptPay" let-i let-ui="ui"> <ng-template sf-template="receiptPay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="subtotal" let-i let-ui="ui">{{ i.value | currency }}</ng-template> <ng-template sf-template="subtotal" let-i let-ui="ui">{{ i.value | currency }}</ng-template>
<ng-template sf-template="appendFee" let-i let-ui="ui">{{ i.value | currency }}(费率:{{ currentRate | number: <ng-template sf-template="appendFee" let-i let-ui="ui">{{ i.value | currency }}(费率:{{ currentRate | number:
'0.2-4' }}%</ng-template> '0.2-4' }}%</ng-template>
<ng-template sf-template="total" let-i let-ui="ui">{{ i.value | currency }}</ng-template> <ng-template sf-template="total" let-i let-ui="ui">{{ i.value | currency }}</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 class="align-center"> <div nz-row class="align-center">
<div nz-col nzSpan="16"> <div nz-col nzSpan="6">
<nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1" <nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30" [nzPrecision]="0" (ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30" [nzPrecision]="0"
[nzPrecisionMode]="'cut'"></nz-input-number> [nzPrecisionMode]="'cut'"></nz-input-number>
</div>
<div nz-col nzSpan="18">
<span>&nbsp;天内支付运费</span>
</div>
</div> </div>
<div nz-col nzSpan="8"> </ng-template>
<span>&nbsp;天内支付运费</span> </sf>
</div> </div>
</div>
</ng-template>
</sf>
</div> </div>
</div> </nz-card>
</nz-card> <nz-card class="btn-wrap">
<nz-card> <div class="align-center">
<div class="align-center"> <button nz-button nzType="primary" *ngIf="this.PageStatus == '整车修改'" (click)="goBack()">取消</button>
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车修改'" (click)="goBack()">取消</button> <button *ngIf="this.PageStatus == '整车修改'" nz-button nzType="primary" style="margin-left: 24px"
<button *ngIf="this.PageStatus == '整车修改'" nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm()" acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交修改</button>
(click)="submitConfirm()" acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交修改</button> <button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="submitConfirm('assign')" acl
<button nz-button nzType="primary" *ngIf="this.PageStatus == '整车下一单'" (click)="submitConfirm('assign')" acl [acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleDesignate']">指派熟车</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleDesignate']">指派熟车</button> <button *ngIf="this.PageStatus == '整车下一单'" nz-button nzType="primary" style="margin-left: 24px"
<button *ngIf="this.PageStatus == '整车下一单'" nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('publish')" acl
(click)="submitConfirm('publish')" acl [acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleAnotherOrder']">司机抢单</button>
[acl-ability]="['SUPPLY-VEHICLE-PLACEORDER-vehicleAnotherOrder']">司机抢单</button> </div>
</div> </nz-card>
</nz-card> </div>

View File

@ -5,16 +5,16 @@
} }
nz-date-picker { nz-date-picker {
width: 94.3%; width: 100%;
} }
.sf3 { .sf3 {
.goods_Tips_item { .goods_Tips_item {
.goods_tips { .goods_tips {
width: calc(50% - 45px); width: calc(50% - 57px);
.ant-alert { .ant-alert {
padding: 0 0 0 2px; margin-bottom: 5px;
} }
} }
@ -84,3 +84,99 @@ input[type='number']::-webkit-outer-spin-button {
margin-left: 10px; margin-left: 10px;
color: aqua; color: aqua;
} }
.custom-style {
::ng-deep {
.ant-card {
margin-bottom: 0;
}
.ant-card-body {
padding-bottom: 0;
}
.ant-card-bordered {
border: 0 none;
}
.card-title {
display: flex;
align-items: center;
>span {
margin-left: 8px;
font-size: 14px;
em {
font-style: normal;
color: #E60012;
}
}
&::before {
content: '';
display: inline-block;
width: 2px;
height: 16px;
margin-right: 10px;
background: #E60012;
}
}
.ant-btn-dangerous {
border-radius: 4px;
color: #CF3834;
border-color: rgba(207, 56, 52, 0.5);
}
.icon-wrap {
display: flex;
justify-content: center;
height: 100%;
}
.swap-icon {
background: url('/assets/images/frame.png') no-repeat 50% 50%;
cursor: pointer;
}
.ant-input-affix-wrapper,
.ant-input,
.ant-picker,
.ant-select-selector,
.ant-input-number-input,
.ant-input-number {
border-radius: 4px ;
}
.ant-input-group-addon {
border-radius: 0 4px 4px 0;
}
.align-center {
.ant-btn {
height: 40px;
padding: 0 23px;
font-size: 16px;
border-radius: 3px;
}
}
.ant-select-arrow {
transform: scaleX(1.5) translateY(2px);
color: rgb(153,153,153);
font-size: 8px;
}
.ant-picker-suffix {
color: #333;
}
.btn-wrap {
margin-top: 20px;
padding-bottom: 20px;
}
.ant-alert {
padding: 6px 16px;
border-radius: 2px;
font-size: 14px;
}
.fc {
color: #f5222d;
}
}
}

View File

@ -246,16 +246,10 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.ui1 = { this.ui1 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
}, },
$enterpriseInfoName: { $enterpriseInfoName: {
grid: { span: 12 } grid: { span: 8 }
},
$shipperAppUserId: {
grid: { span: 12 }
},
$enterpriseProjectId: {
grid: { span: 12 }
} }
}; };
} }
@ -345,9 +339,12 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
}; };
this.ui3 = { this.ui3 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 12 }
}, },
$goodsNameId: {
spanLabelFixed: 10
},
$goodsTips: { $goodsTips: {
grid: { span: 24 } grid: { span: 24 }
} }
@ -416,14 +413,14 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
} }
} }
}, },
hidenField: { // hidenField: {
type: 'string', // type: 'string',
title: '', // title: '',
default: ' ', // default: ' ',
ui: { // ui: {
widget: 'text' // widget: 'text'
} // }
}, // },
insurancePackagedGoods: { insurancePackagedGoods: {
type: 'string', type: 'string',
title: '货物包装', title: '货物包装',
@ -460,7 +457,25 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.ui4 = { this.ui4 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 8 } grid: { span: 12 }
},
$weight: {
grid: { span: 4 }
},
$volume: {
spanLabelFixed: 10,
grid: { span: 4 }
},
$number: {
spanLabelFixed: 10,
grid: { span: 4 }
},
$carModel: {
grid: { span: 6 }
},
$carLength: {
spanLabelFixed: 10,
grid: { span: 6 }
} }
}; };
} }
@ -545,16 +560,16 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.ui5 = { this.ui5 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
}, },
$type1: { $type1: {
grid: { span: 24 } grid: { span: 8 }
}, },
$type2: { $type2: {
grid: { span: 24 } grid: { span: 8 }
}, },
$freeInsurance1: { $freeInsurance1: {
grid: { span: 24 } grid: { span: 24}
}, },
$freeInsurance2: { $freeInsurance2: {
grid: { span: 24 } grid: { span: 24 }
@ -656,7 +671,7 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
ui: { ui: {
widget: 'textarea', widget: 'textarea',
placeholder: '请输入', placeholder: '请输入',
autosize: { minRows: 3, maxRows: 3 } autosize: { minRows: 1, maxRows: 1 }
} as SFTextareaWidgetSchema } as SFTextareaWidgetSchema
} }
}, },
@ -664,7 +679,10 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
}; };
this.ui6 = { this.ui6 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 125,
grid: { span: 8 }
},
$remarks: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };
@ -705,6 +723,9 @@ export class SupplyManagementOnecarPublishComponent implements OnInit {
this.ui7 = { this.ui7 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 8 }
},
$paymentDays: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };

View File

@ -5,261 +5,265 @@
</button> </button>
</ng-template> </ng-template>
</page-header-wrapper> </page-header-wrapper>
<nz-card> <div class="custom-style">
<div class="card-title">货源单设置</div> <nz-card>
<sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data"> <div class="card-title">货源单设置</div>
<ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template> <sf #sf1 [schema]="schema1" [button]="'none'" [ui]="ui1" [formData]="sf1data">
</sf> <ng-template sf-template="enterpriseInfoName" let-i let-ui="ui"> {{ i.value }} </ng-template>
</nz-card> </sf>
</nz-card>
<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">预计公里数:<em>{{ totalDistance }}km</em>,预计行程耗时:<em>{{ totalTime
}}小时</em></span>
</div>
<form nz-form [formGroup]="validateForm1" role="form"> <form nz-form [formGroup]="validateForm1" role="form">
<div nz-row [nzGutter]="24"> <div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="10"> <div nz-col [nzSpan]="10">
<div *ngFor="let data1 of startInfo; let idx = index"> <div *ngFor="let data1 of startInfo; let idx = index">
<nz-form-item> <nz-form-item>
<nz-form-label nzRequired>装货地</nz-form-label> <nz-form-label [nzSpan]="4" nzRequired>装货地</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入装货地'"> <nz-form-control [nzErrorTip]="'请输入装货地'">
<div class="align-center"> <div class="align-center">
<nz-input-group [nzSuffix]="endInconTemp1"> <nz-input-group [nzSuffix]="endInconTemp1">
<input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)" <input nz-input [(ngModel)]="data1.detailedAddress" (click)="openMap('start', idx)"
formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" readonly="true" /> formControlName="loadAddress{{ idx }}" placeholder="请输入装货地" readonly="true" />
</nz-input-group> </nz-input-group>
<span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline" <span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle-o" nzTheme="outline"
style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span> style="color: #1890ff" (click)="subStartInfo($event, idx)"></i></span>
<span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle" <!-- <span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle"
nzTheme="outline" style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span> nzTheme="outline" 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 nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data1.appUserName" formControlName="loadName{{ idx }}"
name="loadName{{ idx }}" maxlength="30" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data1.contractTelephone" maxlength="11"
formControlName="loadPhone{{ idx }}" name="loadPhone{{ idx }}" placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</div> </div>
</nz-form-control> </nz-form-item>
</nz-form-item> </div>
<nz-form-item> <div nz-row>
<nz-form-label nzRequired>联系人</nz-form-label> <div nz-col [nzSpan]="4"></div>
<div style="display: flex; width: 80.7%"> <button nz-button (click)="addStartInfo()" nzDanger>
<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>
<div style="display: flex; justify-content: center">
<button nz-button nzType="primary" (click)="addStartInfo()">
<i nz-icon nzType="plus"></i> <i nz-icon nzType="plus"></i>
添加装货地 添加装货地
</button> </button>
</div> </div>
</div> </div>
</div> <div nz-col [nzSpan]="4">
<div nz-col [nzSpan]="4"> <div class="icon-wrap">
<div style="display: flex; justify-content: center"> <span class="swap-icon" (click)="swapAddress()"></span>
<span class="swap-icon" (click)="swapAddress()"><i nz-icon nzType="swap" nzTheme="outline"></i></span> </div>
</div> </div>
</div> <div nz-col [nzSpan]="10">
<div nz-col [nzSpan]="10"> <div *ngFor="let data2 of endInfo; let idx = index">
<div *ngFor="let data2 of endInfo; let idx = index"> <nz-form-item>
<nz-form-item> <nz-form-label [nzSpan]="4" nzRequired>卸货地</nz-form-label>
<nz-form-label nzRequired>卸货地</nz-form-label> <nz-form-control [nzErrorTip]="'请输入卸货地'">
<nz-form-control [nzErrorTip]="'请输入卸货地'"> <div class="align-center">
<div class="align-center"> <nz-input-group [nzSuffix]="endInconTemp1">
<nz-input-group [nzSuffix]="endInconTemp1"> <input nz-input [(ngModel)]="data2.detailedAddress" (click)="openMap('end', idx)"
<input nz-input [(ngModel)]="data2.detailedAddress" (click)="openMap('end', idx)" formControlName="unloadAddress{{ idx }}" placeholder="请输入卸货地" name="unloadAddress{{ idx }}"
formControlName="unloadAddress{{ idx }}" placeholder="请输入卸货地" name="unloadAddress{{ idx }}" readonly="true" />
readonly="true" /> </nz-input-group>
</nz-input-group> <span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline"
<span *ngIf="idx !== 0" style="padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline" style="color: #1890ff" (click)="subEndInfo($event, idx)"></i></span>
style="color: #d9001b" (click)="subEndInfo($event, idx)"></i></span> <!-- <span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle"
<span *ngIf="idx == 0" style="visibility:hidden;padding: 0 10px"><i nz-icon nzType="minus-circle" nzTheme="outline" style="color: #d9001b" (click)="subStartInfo($event, idx)"></i></span> -->
nzTheme="outline" 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 nz-col [nzSpan]="20">
<div nz-row [nzGutter]="12">
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人姓名'">
<input nz-input [(ngModel)]="data2.appUserName" maxlength="30" formControlName="unloadName{{ idx }}"
name="unloadAddress{{ idx }}" placeholder="请输入联系人姓名" />
</nz-form-control>
<nz-form-control [nzSpan]="12" [nzErrorTip]="'请输入联系人电话'">
<input nz-input [(ngModel)]="data2.contractTelephone"
formControlName="unloadPhone{{ idx }}" name="unloadAddress{{ idx }}" maxlength="11"
placeholder="请输入联系人电话" />
</nz-form-control>
</div>
</div> </div>
</nz-form-control> </nz-form-item>
</nz-form-item> </div>
<nz-form-item> <div nz-row>
<nz-form-label nzRequired>联系人</nz-form-label> <div nz-col [nzSpan]="4"></div>
<div style="display: flex; width: 80.7%"> <button nz-button (click)="addEndInfo()" nzDanger>
<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>
<div style="display: flex; justify-content: center">
<button nz-button nzType="primary" (click)="addEndInfo()">
<i nz-icon nzType="plus"></i> <i nz-icon nzType="plus"></i>
添加卸货地 添加卸货地
</button> </button>
</div> </div>
</div> </div>
</div> </div>
</div> <div nz-row [nzGutter]="24" style="margin-top: 24px">
<div nz-row [nzGutter]="24" style="margin-top: 24px"> <div nz-col [nzSpan]="10">
<div nz-col [nzSpan]="10"> <nz-form-item>
<nz-form-item> <nz-form-label nzRequired [nzSpan]="4">装货时间</nz-form-label>
<nz-form-label nzRequired>装货时间</nz-form-label> <nz-form-control [nzErrorTip]="'请输入装货时间'">
<nz-form-control [nzErrorTip]="'请输入装货时间'"> <nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前"
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前" formControlName="loadingTime" formControlName="loadingTime" [nzDisabledDate]="disabledDateStart"></nz-date-picker>
[nzDisabledDate]="disabledDateStart"></nz-date-picker> </nz-form-control>
</nz-form-control> </nz-form-item>
</nz-form-item> </div>
<div nz-col [nzSpan]="4"></div>
<div nz-col [nzSpan]="10">
<nz-form-item>
<nz-form-label nzRequired [nzSpan]="4">卸货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入卸货时间'">
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前"
formControlName="unloadingTime"></nz-date-picker>
</nz-form-control>
</nz-form-item>
</div>
</div> </div>
<div nz-col [nzSpan]="4"></div> <ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template>
<div nz-col [nzSpan]="10"> </form>
<nz-form-item> </nz-card>
<nz-form-label nzRequired>卸货时间</nz-form-label>
<nz-form-control [nzErrorTip]="'请输入卸货时间'"> <nz-card>
<nz-date-picker [nzShowTime]="{ nzFormat: 'HH' }" nzFormat="yyyy-MM-dd HH:00前" <div class="card-title">货物信息</div>
formControlName="unloadingTime"></nz-date-picker> <div nz-row>
</nz-form-control> <div nz-col nzSpan="24">
</nz-form-item> <sf #sf3 class="sf3" [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data">
<ng-template sf-template="goodsTips" let-i let-ui="ui">
<nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert>
</ng-template>
<ng-template #tpl>
<span style="font-size: 14px;"> 国家法规及行政命令禁限运货物不能托运
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a>
</span>
</ng-template>
</sf>
</div> </div>
</div> </div>
<ng-template #endInconTemp1><i nz-icon nzType="environment" nzTheme="outline"></i></ng-template> <sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data">
</form> <ng-template sf-template="weight" let-i let-ui="ui">
</nz-card> <nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="总重量,必填" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="体积" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="件数" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;border-radius: 4px 0 0 4px;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="goodsValue" let-i let-ui="ui">
<div class="align-center">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="2000000" [nzStep]="0.01"
(ngModelChange)="i.setValue($event);getInsurersPrice()" nzPlaceHolder="请输入0-2000000之间数值">
</nz-input-number>
</div>
</ng-template>
</sf>
</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="16"> <div nz-col nzSpan="24">
<sf #sf3 class="sf3" [schema]="schema3" [button]="'none'" [ui]="ui3" [formData]="sf3data"> <sf #sf5 [schema]="schema5" [button]="'none'" [ui]="ui5" [formData]="sf5data">
<ng-template class="1" sf-template="goodsTips" let-i let-ui="ui"> <ng-template sf-template="type1" let-i let-ui="ui">
<nz-alert class="goods_tips" nzType="warning" [nzMessage]="tpl" nzShowIcon></nz-alert> <label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+10</span>&nbsp;&nbsp;
</ng-template> <label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+10</span>
<ng-template #tpl> </ng-template>
<span style="font-size: 12px;"> 国家法规及行政命令禁限运货物不能托运 <ng-template sf-template="type2" let-i let-ui="ui">
<a target="_blank" [queryParams]="{ type: 15 }" [routerLink]="['/agreement']">《禁运物品说明》</a> <label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+20</span>&nbsp;&nbsp;
</span> <label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+20</span>
</ng-template> </ng-template>
</sf> <ng-template sf-template="freeInsurance1" let-i let-ui="ui">
</div> <nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</div> </ng-template>
<sf #sf4 [schema]="schema4" [button]="'none'" [ui]="ui4" [formData]="sf4data"> <ng-template sf-template="freeInsurance2" let-i let-ui="ui">
<ng-template sf-template="weight" let-i let-ui="ui"> <nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
<nz-input-group [nzAddOnAfter]="''"> </ng-template>
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="总重量,必填" type="number" [ngModel]="i.value" <ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保②单次运输保额仅限200万元以内③保险详细内容及注意事项请见<a target="_blank"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number> [queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
</nz-input-group> </sf>
</ng-template>
<ng-template sf-template="volume" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="体积" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="number" let-i let-ui="ui">
<nz-input-group [nzAddOnAfter]="''">
<nz-input-number [nzMax]="99999" [nzMin]="0" nzPlaceHolder="件数" type="number" [ngModel]="i.value"
(ngModelChange)="i.setValue($event)" [nzPrecision]="2" style="width: 100%;"></nz-input-number>
</nz-input-group>
</ng-template>
<ng-template sf-template="goodsValue" let-i let-ui="ui">
<div class="align-center">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="2000000" [nzStep]="0.01"
(ngModelChange)="i.setValue($event);getInsurersPrice()" nzPlaceHolder="请输入0-2000000之间数值">
</nz-input-number>
</div> </div>
</ng-template>
</sf>
</nz-card>
<nz-card>
<div class="card-title">服务信息</div>
<div nz-row>
<div nz-col nzSpan="16">
<sf #sf5 [schema]="schema5" [button]="'none'" [ui]="ui5" [formData]="sf5data">
<ng-template sf-template="type1" let-i let-ui="ui">
<label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+10</span>&nbsp;&nbsp;
<label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+10</span>
</ng-template>
<ng-template sf-template="type2" let-i let-ui="ui">
<label nz-checkbox [ngModel]="true" nzDisabled></label> &nbsp;货源曝光率 <span class="fc">+20</span>&nbsp;&nbsp;
<label nz-checkbox [ngModel]="true" nzDisabled></label>&nbsp;车源匹配率 <span class="fc">+20</span>
</ng-template>
<ng-template sf-template="freeInsurance1" let-i let-ui="ui">
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</ng-template>
<ng-template sf-template="freeInsurance2" let-i let-ui="ui">
<nz-alert nzType="warning" [nzMessage]="template1" nzShowIcon></nz-alert>
</ng-template>
<ng-template #template1>①香港、澳门、台湾、西藏、新疆不予承保②单次运输保额仅限200万元以内③保险详细内容及注意事项请见<a target="_blank"
[queryParams]="{ type: 10 }" [routerLink]="['/agreement']">《保险告知函》</a></ng-template>
</sf>
</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="24">
<div nz-col nzSpan="12"> <sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data">
<sf #sf6 [schema]="schema6" [button]="'none'" [ui]="ui6" [formData]="sf6data"> </sf>
</sf> </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="8"> <div nz-col nzSpan="24">
<sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data"> <sf #sf7 [schema]="schema7" [button]="'none'" [ui]="ui7" [formData]="sf7data">
<ng-template sf-template="prePay" let-i let-ui="ui"> <ng-template sf-template="prePay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="toPay" let-i let-ui="ui"> <ng-template sf-template="toPay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="receiptPay" let-i let-ui="ui"> <ng-template sf-template="receiptPay" let-i let-ui="ui">
<nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2" <nz-input-number [ngModel]="i.value" [nzMin]="0" [nzMax]="99999" [nzStep]="0.01" [nzPrecision]="2"
nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb" nzPlaceHolder="请输入0-99999" (ngModelChange)="priceChange($event,i)" [nzFormatter]="formatterRmb"
[nzParser]="parserRmb"> [nzParser]="parserRmb">
</nz-input-number> </nz-input-number>
</ng-template> </ng-template>
<ng-template sf-template="subtotal" let-i let-ui="ui">{{ i.value | currency }}</ng-template> <ng-template sf-template="subtotal" let-i let-ui="ui">{{ i.value | currency }}</ng-template>
<ng-template sf-template="appendFee" let-i let-ui="ui">{{ i.value | currency }}(费率:{{ currentRate | number: <ng-template sf-template="appendFee" let-i let-ui="ui">{{ i.value | currency }}(费率:{{ currentRate | number:
'0.2-4' }}%</ng-template> '0.2-4' }}%</ng-template>
<ng-template sf-template="total" let-i let-ui="ui">{{ i.value | currency }}</ng-template> <ng-template sf-template="total" let-i let-ui="ui">{{ i.value | currency }}</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 class="align-center"> <div nz-row class="align-center">
<div nz-col nzSpan="16"> <div nz-col nzSpan="6">
<nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1" <nz-input-number [ngModel]="i.value" [nzMin]="1" [nzMax]="30" [nzStep]="1"
(ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30" [nzPrecision]="0" (ngModelChange)="i.setValue($event)" nzPlaceHolder="请输入1-30" [nzPrecision]="0"
[nzPrecisionMode]="'cut'"></nz-input-number> [nzPrecisionMode]="'cut'"></nz-input-number>
</div>
<div nz-col nzSpan="18">
<span>&nbsp;天内支付运费</span>
</div>
</div> </div>
<div nz-col nzSpan="8"> </ng-template>
<span>&nbsp;天内支付运费</span> </sf>
</div> </div>
</div>
</ng-template>
</sf>
</div> </div>
</div> </nz-card>
</nz-card> <nz-card class="btn-wrap">
<nz-card> <div class="align-center">
<div class="align-center"> <button nz-button nzType="primary" (click)="submitConfirm('assign')" acl
<button nz-button nzType="primary" (click)="submitConfirm('assign')" acl [acl-ability]="['SUPPLY-VEHICLE-RELEASE-bulkDesignate']">指派熟车</button>
[acl-ability]="['SUPPLY-VEHICLE-RELEASE-bulkDesignate']">指派熟车</button> <button nz-button nzType="primary" style="margin-left: 24px" (click)="submitConfirm('publish')"
<button nz-button nzType="primary" style="margin-left: 48px" (click)="submitConfirm('publish')" *ngIf="type === 'add'" acl [acl-ability]="['SUPPLY-VEHICLE-RELEASE-bulkDriverOrder']">司机抢单</button>
*ngIf="type === 'add'" acl [acl-ability]="['SUPPLY-VEHICLE-RELEASE-bulkDriverOrder']">司机抢单</button> </div>
</div> </nz-card>
</nz-card> </div>

View File

@ -5,16 +5,16 @@
} }
nz-date-picker { nz-date-picker {
width: 94.3%; width: 100%;
} }
.sf3 { .sf3 {
.goods_Tips_item { .goods_Tips_item {
.goods_tips { .goods_tips {
width: calc(50% - 45px); width: calc(50% - 57px);
.ant-alert { .ant-alert {
padding: 0 0 0 2px; margin-bottom: 5px;
} }
} }
@ -78,3 +78,100 @@ input[type='number']::-webkit-outer-spin-button {
margin: 0; margin: 0;
-webkit-appearance: none; -webkit-appearance: none;
} }
.custom-style {
::ng-deep {
.ant-card {
margin-bottom: 0;
}
.ant-card-body {
padding-bottom: 0;
}
.ant-card-bordered {
border: 0 none;
}
.card-title {
display: flex;
align-items: center;
>span {
margin-left: 8px;
font-size: 14px;
em {
font-style: normal;
color: #E60012;
}
}
&::before {
content: '';
display: inline-block;
width: 2px;
height: 16px;
margin-right: 10px;
background: #E60012;
}
}
.ant-btn-dangerous {
border-radius: 4px;
color: #CF3834;
border-color: rgba(207, 56, 52, 0.5);
}
.icon-wrap {
display: flex;
justify-content: center;
height: 100%;
}
.swap-icon {
background: url('/assets/images/frame.png') no-repeat 50% 50%;
cursor: pointer;
}
.ant-input-affix-wrapper,
.ant-input,
.ant-picker,
.ant-select-selector,
.ant-input-number-input,
.ant-input-number {
border-radius: 4px ;
}
.ant-input-group-addon {
border-radius: 0 4px 4px 0;
}
.align-center {
.ant-btn {
height: 40px;
padding: 0 23px;
font-size: 16px;
border-radius: 3px;
}
}
.ant-select-arrow {
transform: scaleX(1.5) translateY(2px);
color: rgb(153,153,153);
font-size: 8px;
}
.ant-picker-suffix {
color: #333;
}
.btn-wrap {
margin-top: 20px;
padding-bottom: 20px;
}
.ant-alert {
padding: 6px 16px;
border-radius: 2px;
font-size: 14px;
}
.fc {
color: #f5222d;
}
}
}

View File

@ -227,19 +227,19 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.ui1 = { this.ui1 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
}, },
$enterpriseInfoName: { $enterpriseInfoName: {
grid: { span: 12 } grid: { span: 8 }
}, },
$shipperAppUserId: { $shipperAppUserId: {
grid: { span: 12 } grid: { span: 8 }
}, },
$enterpriseProjectId: { $enterpriseProjectId: {
grid: { span: 12 } grid: { span: 8 }
}, },
$dispatchId: { $dispatchId: {
grid: { span: 12 } grid: { span: 8 }
} }
}; };
} }
@ -332,6 +332,9 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 12 }
}, },
$goodsNameId: {
spanLabelFixed: 10
},
$goodsTips: { $goodsTips: {
grid: { span: 24 } grid: { span: 24 }
} }
@ -400,14 +403,14 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
} }
} }
}, },
hidenField: { // hidenField: {
type: 'string', // type: 'string',
title: '', // title: '',
default: ' ', // default: ' ',
ui: { // ui: {
widget: 'text' // widget: 'text'
} // }
}, // },
insurancePackagedGoods: { insurancePackagedGoods: {
type: 'string', type: 'string',
title: '货物包装', title: '货物包装',
@ -444,7 +447,25 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.ui4 = { this.ui4 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 8 } grid: { span: 12 }
},
$weight: {
grid: { span: 4 }
},
$volume: {
spanLabelFixed: 10,
grid: { span: 4 }
},
$number: {
spanLabelFixed: 10,
grid: { span: 4 }
},
$carModel: {
grid: { span: 6 }
},
$carLength: {
spanLabelFixed: 10,
grid: { span: 6 }
} }
}; };
} }
@ -528,16 +549,16 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.ui5 = { this.ui5 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 12 } grid: { span: 8 }
}, },
$type1: { $type1: {
grid: { span: 24 } grid: { span: 8 }
}, },
$type2: { $type2: {
grid: { span: 24 } grid: { span: 8 }
}, },
$freeInsurance1: { $freeInsurance1: {
grid: { span: 24 } grid: { span: 24}
}, },
$freeInsurance2: { $freeInsurance2: {
grid: { span: 24 } grid: { span: 24 }
@ -626,7 +647,7 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
ui: { ui: {
widget: 'textarea', widget: 'textarea',
placeholder: '请输入', placeholder: '请输入',
autosize: { minRows: 3, maxRows: 3 } autosize: { minRows: 1, maxRows: 1 }
} as SFTextareaWidgetSchema } as SFTextareaWidgetSchema
} }
}, },
@ -634,7 +655,10 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
}; };
this.ui6 = { this.ui6 = {
'*': { '*': {
spanLabelFixed: 90, spanLabelFixed: 125,
grid: { span: 8 }
},
$remarks: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };
@ -675,6 +699,9 @@ export class SupplyManagementReleasePublishComponent implements OnInit {
this.ui7 = { this.ui7 = {
'*': { '*': {
spanLabelFixed: 115, spanLabelFixed: 115,
grid: { span: 8 }
},
$paymentDays: {
grid: { span: 24 } grid: { span: 24 }
} }
}; };

View File

@ -350,13 +350,11 @@ export class NetworkFreightNewComponent implements OnInit {
} }
} }
}, },
certificateType2: { industry: {
type: 'string', type: 'string',
title: '行业', title: '行业',
enum: [ enum: [
{ label: '大陆身份证', value: 0 }, { label: '道路运输业', value: 54},
{ label: '港澳居民通行证', value: 1 },
{ label: '香港居民通行证', value: 2 }
], ],
default: 0, default: 0,
ui: { ui: {
@ -668,6 +666,7 @@ export class NetworkFreightNewComponent implements OnInit {
'unifiedSocialCreditCode', 'unifiedSocialCreditCode',
'enterpriseName', 'enterpriseName',
'enterpriseAddressCode', 'enterpriseAddressCode',
'industry',
'enterpriseAddress', 'enterpriseAddress',
'registrationCapital', 'registrationCapital',
'enterpriseRegistrationTime', 'enterpriseRegistrationTime',

View File

@ -31,15 +31,7 @@
</div> </div>
</div> </div>
<st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}" <st #st [data]="service.$api_invoicedBillInfo_page" [columns]="columns" [req]="{ process: beforeReq }" [page]="{}"
[loading]="false" [scroll]="{ x:'1200px',y:scrollY }"> [loading]="false" [scroll]="{ x:'1200px' }">
<ng-template st-row="sts" let-item let-index="index">
<span *ngIf="item.sts === '1'">待受理</span>
<span *ngIf="item.sts === '2'">处理中</span>
<span *ngIf="item.sts === '3'">已完成</span>
<span *ngIf="item.sts === '5'">已拒绝</span>
<span *ngIf="item.sts === '6'">已撤销</span>
<span *ngIf="item.sts === '7'">已作废</span>
</ng-template>
<ng-template st-row="serviceType" let-item let-index="index"> <ng-template st-row="serviceType" let-item let-index="index">
<span>{{item.billTypeLabel + item.serviceTypeLabel}}</span> <span>{{item.billTypeLabel + item.serviceTypeLabel}}</span>
</ng-template> </ng-template>

View File

@ -246,7 +246,7 @@ export class BillingOrderComponent extends BasicTableComponent {
{ title: '卸货时间', index: 'unloadTime', type: 'date', width: '150px', className: 'text-center' }, { title: '卸货时间', index: 'unloadTime', type: 'date', width: '150px', className: 'text-center' },
{ title: '订单完成时间', index: 'orderReceivingTime', type: 'date', width: 150, className: 'text-center' }, { title: '订单完成时间', index: 'orderReceivingTime', type: 'date', width: 150, className: 'text-center' },
{ title: '支付完成时间', index: 'overallPaymentTime', type: 'date', width: 150, className: 'text-center' }, { title: '支付完成时间', index: 'overallPaymentTime', type: 'date', width: 150, className: 'text-center' },
{ title: '开票状态', index: 'sts', render: 'sts', className: 'text-center', width: 120 }, { title: '开票状态', index: 'stsLabel', className: 'text-center', width: 120 },
{ title: '申请开票时间', index: 'vatappdate', type: 'date', className: 'text-center', width: 180 }, { title: '申请开票时间', index: 'vatappdate', type: 'date', className: 'text-center', width: 180 },
{ title: '申请开票编号', index: 'vatappcode', className: 'text-center', width: 190 }, { title: '申请开票编号', index: 'vatappcode', className: 'text-center', width: 190 },
{ title: '分票编号', index: 'vatinvcode', width: '200px', className: 'text-center' }, { title: '分票编号', index: 'vatinvcode', width: '200px', className: 'text-center' },

View File

@ -46,12 +46,12 @@
<li nz-menu-item (click)="creat()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-save']"> <li nz-menu-item (click)="creat()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-save']">
新增企业 新增企业
</li> </li>
<!-- <li nz-menu-item (click)="editPartner()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-partner']"> <li nz-menu-item (click)="editPartner()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-partner']">
修改合伙人 修改合伙人
</li> </li>
<li nz-menu-item (click)="editSale()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-sale']"> <li nz-menu-item (click)="editSale()" acl [acl-ability]="['USERCENTER-FREIGHT-LIST-sale']">
修改渠道销售 修改渠道销售
</li> --> </li>
</ul> </ul>
</nz-dropdown-menu> </nz-dropdown-menu>
</div> </div>

View File

@ -446,8 +446,8 @@ export class FreightComponentsListComponent extends BasicTableComponent implemen
}, },
{ {
title: '操作', title: '操作',
width: '180px', width: '220px',
className: 'text-center ', className: 'text-left options',
fixed: 'right', fixed: 'right',
buttons: [ buttons: [
// { // {
@ -463,23 +463,24 @@ export class FreightComponentsListComponent extends BasicTableComponent implemen
// text: '基础设置', // text: '基础设置',
// click: item => this.settingAction(item) // click: item => this.settingAction(item)
// }, // },
{ type: 'divider' },
{ {
acl: { ability: ['USERCENTER-FREIGHT-LIST-balance'] }, acl: { ability: ['USERCENTER-FREIGHT-LIST-balance'] },
text: '资金账户', text: '资金账户',
click: item => this.showAccountDetail(item) click: item => this.showAccountDetail(item)
}, },
{ {
text: '分配客服', text: '分配客服<br>',
click: item => this.showService(item) click: item => this.showService(item)
},
{
text: '修改合伙人',
click: item => this.editPartner(item)
},
{
text: '修改渠道销售',
click: item => this.editSale(item)
} }
// {
// text: '修改合伙人',
// click: item => this.editPartner(item)
// },
// {
// text: '修改渠道销售',
// click: item => this.editSale(item)
// }
] ]
} }
]; ];

View File

@ -70,7 +70,23 @@
<div class="mb-lg"> <div class="mb-lg">
<div class="font-weight-blod text-md detail-title"> <div class="font-weight-blod text-md detail-title">
<a class="sign"></a> <a class="sign"></a>
<span>车辆基础信息</span> <p style="margin-bottom: 0">
车辆基础信息
<label *ngIf="detailData?.carInfoVerifyResult" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>验证不通过:<span nz-popover [nzPopoverTitle]="titleTemplate1" [nzPopoverContent]="contentTemplate1">
查看原因
<ng-template #titleTemplate1>
原因
</ng-template>
<ng-template #contentTemplate1>
{{detailData?.carInfoVerifyResult}}
</ng-template>
</span>
</label>
<label *ngIf="!detailData?.carInfoVerifyResult" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>验证通过
</label>
</p>
</div> </div>
<sv-container col="3" labelWidth="140"> <sv-container col="3" labelWidth="140">
<sv label="车牌颜色"> <sv label="车牌颜色">
@ -147,7 +163,23 @@
<div class="mb-lg"> <div class="mb-lg">
<div class="font-weight-blod text-md detail-title"> <div class="font-weight-blod text-md detail-title">
<a class="sign"></a> <a class="sign"></a>
<span>行驶证信息</span> <p style="margin-bottom: 0">
行驶证信息
<label *ngIf="detailData?.driverLicenseVerifyResult" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>验证不通过:<span nz-popover [nzPopoverTitle]="titleTemplate2" [nzPopoverContent]="contentTemplate2">
查看原因
<ng-template #titleTemplate2>
原因
</ng-template>
<ng-template #contentTemplate2>
{{detailData?.driverLicenseVerifyResult}}
</ng-template>
</span>
</label>
<label *ngIf="!detailData?.driverLicenseVerifyResult" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>验证通过
</label>
</p>
</div> </div>
<sv-container col="3" class="new-sv-container" labelWidth="140"> <sv-container col="3" class="new-sv-container" labelWidth="140">
<sv label="发动机号码"> <sv label="发动机号码">
@ -243,7 +275,15 @@
<p style="margin-bottom: 0"> <p style="margin-bottom: 0">
道路运输证信息 道路运输证信息
<label *ngIf="!detailData?.roadTransportVerificationStatus" style="color: #ff4d4f"><i nz-icon nzType="info-circle" <label *ngIf="!detailData?.roadTransportVerificationStatus" style="color: #ff4d4f"><i nz-icon nzType="info-circle"
nzTheme="fill" class="mr-xs"></i>验证不通过 nzTheme="fill" class="mr-xs"></i>验证不通过<span nz-popover [nzPopoverTitle]="titleTemplate3" [nzPopoverContent]="contentTemplate3">
查看原因
<ng-template #titleTemplate3>
原因
</ng-template>
<ng-template #contentTemplate3>
{{detailData?.roadTransportVerifyResult}}
</ng-template>
</span>
</label> </label>
<label *ngIf="detailData?.roadTransportVerificationStatus" style="color: #52c41a"><i nz-icon nzType="check-circle" <label *ngIf="detailData?.roadTransportVerificationStatus" style="color: #52c41a"><i nz-icon nzType="check-circle"
nzTheme="fill" class="mr-xs"></i>验证通过 nzTheme="fill" class="mr-xs"></i>验证通过

View File

@ -203,14 +203,18 @@ export class VehicleComponentsListDetailComponent implements OnInit {
*查看评价 *查看评价
*/ */
viewEvaluate(item: any) { viewEvaluate(item: any) {
console.log(item); // console.log(item);
this.st.reload(); // this.st.reload();
this.getDetailList(); // this.getDetailList();
const params = { // const params = {
imgList: [item.carProtocal], // imgList: [item.carProtocal],
index: 0 // index: 0
}; // };
this.nzImageService.preview([{ src: item.carProtocal}]); // this.nzImageService.preview([{ src: item.carProtocal}]);
this.modal.createStatic(VehicleImgViewComponent, { i: item }).subscribe(() => {
this.st.reload();
this.getDetailList();
});
} }
/** /**
*查看评价 *查看评价

View File

@ -383,8 +383,13 @@ export class ShipperBaseService extends BaseService {
* 获取全部返佣配置 * 获取全部返佣配置
* @returns * @returns
*/ */
getRebateConfig() { getRebateConfig(value?: any) {
const params = {}; const params:any = {};
if(value) {
params.stateLocked = 1
}
console.log(params);
return this.request(this.$api_get_rebate_config, params, 'POST').pipe( return this.request(this.$api_get_rebate_config, params, 'POST').pipe(
map(res => { map(res => {
if (res) { if (res) {

BIN
src/assets/images/frame.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 B