fix bug
This commit is contained in:
@ -20,7 +20,7 @@ module.exports = {
|
||||
// }
|
||||
'//api': {
|
||||
target: {
|
||||
host: 'tms-api-dev.eascs.com',
|
||||
host: 'tms-api-test.eascs.com',
|
||||
protocol: 'https:',
|
||||
port: 443
|
||||
},
|
||||
|
||||
@ -5,6 +5,7 @@ import { DatatableCustomindexComponent } from './components/customtable/customin
|
||||
import { DatatableOwnerComponent } from './components/customtable/owner/owner.component';
|
||||
import { DatatableDriverComponent } from './components/customtable/driver/driver.component';
|
||||
import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component';
|
||||
import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component';
|
||||
import { DatatableDataindexComponent } from './components/dataindex/dataindex.component';
|
||||
|
||||
const routes: Routes = [
|
||||
@ -13,7 +14,9 @@ const routes: Routes = [
|
||||
{ path: 'customindex', component: DatatableCustomindexComponent },
|
||||
{ path: 'owner', component: DatatableOwnerComponent },
|
||||
{ path: 'driver', component: DatatableDriverComponent },
|
||||
{ path: 'operationtable', component: DatatableOperationtableComponent }];
|
||||
{ path: 'operationtable', component: DatatableOperationtableComponent },
|
||||
{ path: 'reporting/order', component: DatatableOrderReportingComponent }];
|
||||
|
||||
|
||||
@NgModule({
|
||||
imports: [RouterModule.forChild(routes)],
|
||||
|
||||
@ -6,8 +6,9 @@ import { DatatableCustomindexComponent } from './components/customtable/customin
|
||||
import { DatatableOwnerComponent } from './components/customtable/owner/owner.component';
|
||||
import { DatatableDriverComponent } from './components/customtable/driver/driver.component';
|
||||
import { DatatableOperationtableComponent } from './components/operationtable/operationtable.component';
|
||||
import { DatatableDataindexComponent } from './components/dataindex/dataindex.component';
|
||||
import { OperationtablePieComponent } from './components/operationtable/pie/pie.component';
|
||||
import { DatatableOrderReportingComponent } from './reporting/components/order-reporting/order-reporting.component';
|
||||
import { DatatableDataindexComponent } from './components/dataindex/dataindex.component';
|
||||
|
||||
const COMPONENTS: Type<void>[] = [
|
||||
DatatableDataindexComponent,
|
||||
@ -16,7 +17,8 @@ const COMPONENTS: Type<void>[] = [
|
||||
DatatableOwnerComponent,
|
||||
DatatableDriverComponent,
|
||||
DatatableOperationtableComponent,
|
||||
OperationtablePieComponent
|
||||
OperationtablePieComponent,
|
||||
DatatableOrderReportingComponent
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -0,0 +1,85 @@
|
||||
<page-header-wrapper [title]="''"></page-header-wrapper>
|
||||
|
||||
<nz-card>
|
||||
<!-- 搜索表单 -->
|
||||
<div nz-row nzGutter="8">
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 18">
|
||||
<sf #sf [schema]="schema" [ui]="ui" [compact]="true" [button]="'none'"></sf>
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.text-right]="_$expand">
|
||||
<button nz-button nzType="primary" [disabled]="!sf.valid" [nzLoading]="false" (click)="search()" acl
|
||||
[acl-ability]="['RiskOrder-Search']">查询</button>
|
||||
<button nz-button (click)="resetSF()">重置</button>
|
||||
<button nz-button (click)="resetSF()">导出</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
<i nz-icon [nzType]="!_$expand ? 'down' : 'up'"></i>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-card>
|
||||
<nz-tabset [nzTabBarExtraContent]="extraTemplate" *ngIf="tabs.length>0">
|
||||
|
||||
<nz-tab *ngFor="let tab of tabs" [nzTitle]="tab.name" (nzSelect)="selectChange(tab)">
|
||||
</nz-tab>
|
||||
</nz-tabset>
|
||||
<!-- 数据列表 -->
|
||||
<st #st [scroll]="{x:'1200px'}" [data]="service.$api_order_reporting_page" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10,20, 50, 100] }" [loading]="false">
|
||||
<ng-template st-row="orderSn" let-item let-index="index">
|
||||
<a (click)="view(item)">{{item.billCode}}</a>
|
||||
</ng-template>
|
||||
<ng-template st-row="freightDetails" let-item>
|
||||
<div *ngFor="let item of item.freightDetails">
|
||||
<div>{{item.expenseName}}:{{item.price | currency}} </div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="loadingPlace" let-item let-index="index">
|
||||
<div *ngFor="let address of item.loadingAddressArr">{{ address }} </div>
|
||||
</ng-template>
|
||||
<ng-template st-row="dischargePlace" let-item let-index="index">
|
||||
<div *ngFor="let address of item.unloadingAddressArr">{{ address }}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="goodsInfoVOList" let-item>
|
||||
<div *ngFor="let item of item.goodsInfoVOList">
|
||||
<div>货物名称 : {{item.goodsName}}</div>
|
||||
<div>重量/体积 : {{item.weight}}/{{item.volume}}</div>
|
||||
<div>车型/车长 :{{item.carModelLabel}}/{{item.carLengthLabel}}</div>
|
||||
</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="driver" let-item>
|
||||
<div> {{item.driverName}}</div>
|
||||
<div>{{item.driverPhone}}</div>
|
||||
<div>{{item.carNo}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="payeeName" let-item>
|
||||
<div>{{item.payeeName}}</div>
|
||||
<div>{{item.payeePhone}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="transportInfo" let-item>
|
||||
<div>创建时间:{{item.createTime}}</div>
|
||||
<div>装货时间:{{item.loadTime}}</div>
|
||||
<div>卸货时间:{{item.unloadTime}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="billComplianceVOS" let-item>
|
||||
<div *ngFor="let item of item?.billComplianceVOS">{{item?.complianceName}}</div>
|
||||
</ng-template>
|
||||
<ng-template st-row="serviceType" let-item>
|
||||
<div>{{item?.billTypeLabel}} ({{item?.serviceTypeLabel}}) </div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
<ng-template #extraTemplate>
|
||||
<div class="d-flex align-items-center ">
|
||||
<div class="mr-md">
|
||||
已选择
|
||||
<strong class="text-red">{{ selectedRows.length }}</strong> 条数据
|
||||
</div>
|
||||
<button nz-button nzType="primary" (click)="upload()">上传</button>
|
||||
<button nz-button nzType="primary" (click)="recall({})">撤回</button>
|
||||
<button nz-button nzType="primary" (click)="uploadSetting()">上传设置</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
@ -0,0 +1,24 @@
|
||||
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { DatatableOrderReportingComponent } from './order-reporting.component';
|
||||
|
||||
describe('DatatableOrderReportingComponent', () => {
|
||||
let component: DatatableOrderReportingComponent;
|
||||
let fixture: ComponentFixture<DatatableOrderReportingComponent>;
|
||||
|
||||
beforeEach(waitForAsync(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ DatatableOrderReportingComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(DatatableOrderReportingComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,416 @@
|
||||
import { Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { Router, ActivatedRoute } from '@angular/router';
|
||||
import { STColumn, STComponent, STData } from '@delon/abc/st';
|
||||
import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/form';
|
||||
import { ModalHelper, _HttpClient } from '@delon/theme';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { ReportingService } from '../../services/reporting.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-datatable-order-reporting',
|
||||
templateUrl: './order-reporting.component.html',
|
||||
})
|
||||
export class DatatableOrderReportingComponent implements OnInit {
|
||||
_$expand = false;
|
||||
ui!: SFUISchema;
|
||||
schema!: SFSchema;
|
||||
columns!: STColumn[];
|
||||
@ViewChild('st', { static: false }) st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
tabType!: string;
|
||||
tabs: any[] = [
|
||||
{ name: '待上传', value: '1' },
|
||||
{ name: '上传中', value: '2' },
|
||||
{ name: '已上传', value: '3' },
|
||||
{ name: '异常', value: '4' },
|
||||
{ name: '全部', value: '' }
|
||||
];
|
||||
selectedIndex = ''; //选择的项目
|
||||
serviceTel = '';
|
||||
constructor(
|
||||
public service: ReportingService,
|
||||
private router: Router,
|
||||
private ar: ActivatedRoute,
|
||||
private modal: NzModalService,
|
||||
public shipperSrv: ShipperBaseService
|
||||
) {
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询字段个数
|
||||
*/
|
||||
get queryFieldCount(): number {
|
||||
return Object.keys(this.schema?.properties || {}).length;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询参数
|
||||
*/
|
||||
get reqParams() {
|
||||
const params = Object.assign({}, this.sf?.value || {}, {
|
||||
representationsStatus: this.selectedIndex,
|
||||
});
|
||||
delete params._$expand;
|
||||
return { ...params };
|
||||
}
|
||||
|
||||
/**
|
||||
* 选中行
|
||||
*/
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter((item: any) => item.checked) || [];
|
||||
}
|
||||
|
||||
/**
|
||||
* 伸缩查询条件
|
||||
*/
|
||||
expandToggle() {
|
||||
this._$expand = !this._$expand;
|
||||
this.sf?.setValue('/_$expand', this._$expand);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
this._$expand = false;
|
||||
}
|
||||
/**
|
||||
* 程序初始化入口
|
||||
*/
|
||||
ngOnInit() {
|
||||
this.initSF();
|
||||
this.initST();
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化查询表单
|
||||
*/
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
billCode: { title: '订单号', type: 'string', ui: { placeholder: '请输入' } },
|
||||
resourceCode: {
|
||||
type: 'string',
|
||||
title: '运单号',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
},
|
||||
},
|
||||
enterpriseInfoId: {
|
||||
title: '网络货运人',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'select',
|
||||
asyncData: () => this.shipperSrv.getNetworkFreightForwarder({}, false),
|
||||
|
||||
allowClear: true
|
||||
}
|
||||
},
|
||||
externalResourceCode: {
|
||||
title: '货主',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
driverName: {
|
||||
title: '承运司机',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请输入司机姓名/手机号', visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
carNo: {
|
||||
title: '车牌号',
|
||||
type: 'string',
|
||||
maxLength: 9,
|
||||
ui: {
|
||||
placeholder: '请输入',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
serviceType: {
|
||||
title: '上传状态',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'service:type' },
|
||||
containsAllLabel: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
serviceType1: {
|
||||
title: '本地校验',
|
||||
type: 'string',
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
widget: 'dict-select',
|
||||
params: { dictKey: 'service:type' },
|
||||
containsAllLabel: true,
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
createTime: {
|
||||
title: '上传时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
},
|
||||
createTime1: {
|
||||
title: '运单生成时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
},
|
||||
createTime2: {
|
||||
title: '发货时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
},
|
||||
createTime3: {
|
||||
title: '收货时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'sl-from-to',
|
||||
type: 'date',
|
||||
format: 'yyyy-MM-dd',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
} as SFDateWidgetSchema,
|
||||
},
|
||||
|
||||
loadingPlace: {
|
||||
title: '车辆轨迹',
|
||||
type: 'string',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '有', value: '1' },
|
||||
{ label: '无', value: '0' }
|
||||
],
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
loadingPlace1: {
|
||||
title: '司机轨迹',
|
||||
type: 'string',
|
||||
enum: [
|
||||
{ label: '全部', value: '' },
|
||||
{ label: '有', value: '1' },
|
||||
{ label: '无', value: '0' }
|
||||
],
|
||||
ui: {
|
||||
placeholder: '请选择',
|
||||
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
}
|
||||
},
|
||||
},
|
||||
};
|
||||
this.ui = {
|
||||
'*': { spanLabelFixed: 120, grid: { span: 8, gutter: 4 }, enter: () => this.search() },
|
||||
$time: { grid: { span: 24 } },
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* 初始化数据列表
|
||||
*/
|
||||
initST() {
|
||||
this.columns = [
|
||||
{ title: '', type: 'checkbox', className: 'text-center', width: '80px', },
|
||||
{ title: '订单状态', index: 'name', className: 'text-center', width: '120px', },
|
||||
{ title: '司机状态', index: 'name', className: 'text-center', width: '120px', },
|
||||
{ title: '车辆状态', index: 'name', className: 'text-center', width: '120px', },
|
||||
{ title: '本地校验', render: 'orderSn', className: 'text-center', width: '180px', },
|
||||
{
|
||||
title: '订单号',
|
||||
render: 'billComplianceVOS',
|
||||
className: 'text-center',
|
||||
width: '150px',
|
||||
},
|
||||
{ title: '运单号', render: 'freightDetails', className: 'text-center', width: '150px', },
|
||||
|
||||
{
|
||||
title: '网络货运人',
|
||||
render: 'serviceType',
|
||||
className: 'text-center',
|
||||
width: '120px',
|
||||
},
|
||||
{ title: '统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '300px' },
|
||||
{ title: '业务类型', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '300px' },
|
||||
{ title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '200px' },
|
||||
{ title: '发货时间', render: 'driver', className: 'text-center', width: '150px' },
|
||||
{ title: '收货时间', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '托运人名称', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '托运人统一社会信用代码', index: 'loadingPlace', render: 'loadingPlace', className: 'text-center', width: '300px' },
|
||||
{ title: '装货地址', index: 'dischargePlace', render: 'dischargePlace', className: 'text-center', width: '300px' },
|
||||
{ title: '运单生成时间', render: 'goodsInfoVOList', className: 'text-center', width: '200px' },
|
||||
{ title: '收货方名称', render: 'driver', className: 'text-center', width: '150px' },
|
||||
{ title: '收货地址', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '运费金额', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '车牌号', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '车牌颜色', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '司机姓名', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '司机手机号码', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '司机身份证号', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '货物信息', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '实际承运人名称', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '实际承运人证件号码', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '实际承运人道路运输许可证号', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '车辆轨迹', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '司机轨迹', render: 'payeeName', className: 'text-center', width: '150px' },
|
||||
{ title: '上传次数', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{ title: '上传时间', render: 'transportInfo', className: 'text-center', width: '250px' },
|
||||
{
|
||||
title: '操作',
|
||||
width: '200px',
|
||||
className: 'text-center',
|
||||
buttons: [
|
||||
// { text: '编辑', click: (_record: any) => this.appeal(_record) },
|
||||
{
|
||||
text: '申诉',
|
||||
// click: (record) => this.appeal(record),
|
||||
iif: (_record) => _record.representationsStatus === '1',
|
||||
acl: { 'ability': ['RiskOrder-Appeal'] }
|
||||
},
|
||||
{
|
||||
text: '撤销申诉',
|
||||
pop: {
|
||||
title: '是否确定立即撤销申诉?',
|
||||
okType: 'danger',
|
||||
},
|
||||
click: (record) => this.recall(record),
|
||||
iif: (_record) => _record.representationsStatus === '2',
|
||||
acl: { 'ability': ['RiskOrder-CancleAppeal'] }
|
||||
},
|
||||
{ text: '详情', click: (_record: any) => this.view(_record), acl: { 'ability': ['RiskOrder-Detail'] } },
|
||||
],
|
||||
},
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 删除单个实例
|
||||
* @param record 记录实例
|
||||
*/
|
||||
recall(record: STData) {
|
||||
this.service.request(this.service.$api_recall_reporting, { id: record?.id }).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.search({ representationsStatus: '' });
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
selectChange(item: any) {
|
||||
this.selectedIndex = item?.representationsStatus || '';
|
||||
setTimeout(() => {
|
||||
this.st.load(1);
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看当行数据
|
||||
*/
|
||||
view(record: STData) {
|
||||
// this.router.navigate(['../view', record.uuid], { relativeTo: this.ar });
|
||||
this.router.navigate(['../detail'], {
|
||||
queryParams: {
|
||||
id: record.id,
|
||||
},
|
||||
relativeTo: this.ar
|
||||
});
|
||||
}
|
||||
|
||||
// appeal(item: any) {
|
||||
// const modalRef = this.modal.create({
|
||||
// nzTitle: '申诉',
|
||||
// nzWidth: '40%',
|
||||
// nzContent: CtcAppealComponent,
|
||||
// nzComponentParams: {
|
||||
// i: item,
|
||||
// status: 'add'
|
||||
// },
|
||||
// nzFooter: null
|
||||
// });
|
||||
// modalRef.afterClose.subscribe(res => {
|
||||
// if (res) {
|
||||
// this.search({ representationsStatus: '' });
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
|
||||
/**
|
||||
* 上传
|
||||
*/
|
||||
upload() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* @param params 上传设置
|
||||
*/
|
||||
uploadSetting() {
|
||||
|
||||
}
|
||||
|
||||
search(params = {}) {
|
||||
this.st.load(1);
|
||||
}
|
||||
|
||||
/**
|
||||
* 异步导出
|
||||
*/
|
||||
export() {
|
||||
this.service.exportStart(this.sf?.value, this.service.$api_async_export_order_reporting_list);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
import { Injectable, Injector } from '@angular/core';
|
||||
import { BaseService } from '@shared';
|
||||
|
||||
@Injectable({
|
||||
providedIn: 'root'
|
||||
})
|
||||
export class ReportingService extends BaseService {
|
||||
|
||||
$api_order_reporting_page = ``; // 订单上报列表
|
||||
$api_recall_reporting = ``; // 撤回
|
||||
$api_async_export_order_reporting_list = ``; // 导出订单上报
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
}
|
||||
@ -165,7 +165,9 @@ export class DriverAccountDetailComponent implements OnInit {
|
||||
{ title: '交易时间', index: 'createTime', type: 'date' },
|
||||
{ title: '流水号', index: 'channelPaySn' },
|
||||
{ title: '交易类型', index: 'tradeTypeLabel', className: 'text-center' },
|
||||
{ title: '关联单号', index: 'businessNumber' },
|
||||
{ title: '交易单号', index: 'businessNumber' },
|
||||
{ title: '订单号', index: 'orderSn' },
|
||||
{ title: '运单号', index: 'transportSn' },
|
||||
{ title: '收支类型', index: 'incomeTypeLabel', className: 'text-center' },
|
||||
{
|
||||
title: '交易金额',
|
||||
@ -182,7 +184,10 @@ export class DriverAccountDetailComponent implements OnInit {
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.accountBalance }) }
|
||||
}
|
||||
},
|
||||
{ title: '付款方', index: 'payName'},
|
||||
{ title: '收款方', index: 'payeeName' },
|
||||
{ title: '备注', index: 'tradeContent' },
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
@ -164,7 +164,7 @@ export class DriverAccountComponent implements OnInit {
|
||||
{ title: '司机姓名', width: 140, index: 'name' },
|
||||
{ title: '证件号码', width: 140, index: 'idNo' },
|
||||
{ title: '手机号', width: 140, index: 'phone' },
|
||||
{ title: '网络货运人', width: 140, index: 'ltdName' },
|
||||
{ title: '网络货运人', width: 180, index: 'ltdName' },
|
||||
{ title: '银行类型', width: 120, index: 'bankTypeLabel' },
|
||||
{ title: '虚拟账户', width: 140, index: 'virtualAccount' },
|
||||
{
|
||||
@ -186,13 +186,14 @@ export class DriverAccountComponent implements OnInit {
|
||||
{
|
||||
title: '本月累计提现金额',
|
||||
index: 'withdrawBalance',
|
||||
width: 150,
|
||||
width: 160,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.withdrawBalance }) }
|
||||
},
|
||||
{ title: '账户总余额', render: 'availableBalance', className: 'text-right', width: 180 },
|
||||
{ title: '创建时间', index: 'createTime', type: 'date', width: 150 },
|
||||
{ title: '状态', index: 'stateDeletedLabel', width: 120 },
|
||||
{
|
||||
title: '操作',
|
||||
width: 120,
|
||||
|
||||
@ -190,7 +190,8 @@ export class RechargeRecordComponent implements OnInit {
|
||||
rmYll: item.roleId,
|
||||
snglFlgCd: item.paySerialNumber2,
|
||||
bussType: '06',
|
||||
ltdId: item.ltdId
|
||||
ltdId: item.ltdId,
|
||||
accountType: item.accountType
|
||||
})
|
||||
}
|
||||
]
|
||||
|
||||
@ -253,7 +253,8 @@ export class TransactionFlowComponent {
|
||||
rmYll: item.roleId,
|
||||
snglFlgCd: item.channelPaySn,
|
||||
bussType: item.tradeType === '7' ? '05' : item.tradeType === '8' ? '06' : '07',
|
||||
ltdId: item.ltdId
|
||||
ltdId: item.ltdId,
|
||||
accountType: item.accountType
|
||||
})
|
||||
}
|
||||
]
|
||||
|
||||
@ -99,7 +99,8 @@ export class WithdrawalsDetailComponent implements OnInit {
|
||||
rmYll: this.formData.userId,
|
||||
snglFlgCd: this.formData.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: this.formData.ltdId
|
||||
ltdId: this.formData.ltdId,
|
||||
accountType: this.formData.accountType
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -297,7 +297,8 @@ export class WithdrawalsRecordComponent {
|
||||
rmYll: item.userId,
|
||||
snglFlgCd: item.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: item.ltdId
|
||||
ltdId: item.ltdId,
|
||||
accountType: item.accountType
|
||||
})
|
||||
}
|
||||
]
|
||||
|
||||
@ -360,7 +360,7 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" nzWidth="1000px" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-06 20:20:26
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-24 14:08:55
|
||||
* @LastEditTime : 2022-03-29 11:09:00
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\bulk-detail\\bulk-detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -45,7 +45,6 @@
|
||||
<sv label="服务类型">{{ i?.goodsResource?.serviceTypeLabel }}</sv>
|
||||
<sv label="录单员">{{ i?.createUserName }} /{{ i?.createUserPhone }} </sv>
|
||||
<sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv>
|
||||
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
||||
<sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv>
|
||||
<sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
|
||||
<sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv>
|
||||
@ -248,7 +247,7 @@
|
||||
</nz-tabset>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" nzWidth="1000px" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
<button nz-button nzType="primary" [nzLoading]="loading" (click)="search()" acl [acl-ability]="['ORDER-BULK-search']"
|
||||
>查询</button
|
||||
>
|
||||
<button nz-button nzType="primary" [disabled]="loading">导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="loading" (click)="exprot()">导出</button>
|
||||
<button nz-button [disabled]="loading" (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
|
||||
@ -88,6 +88,8 @@ export class OrderManagementBulkComponent implements OnInit {
|
||||
}
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
delete params._$expand;
|
||||
console.log(params);
|
||||
|
||||
if (this.sf) {
|
||||
Object.assign(requestOptions.body, {
|
||||
...a,
|
||||
@ -467,10 +469,10 @@ export class OrderManagementBulkComponent implements OnInit {
|
||||
width: '180px',
|
||||
className: 'text-left',
|
||||
format: (item: any) =>
|
||||
`${item.goodsName}/
|
||||
${item.goodsWeight || '0'}吨/
|
||||
${item.goodsVolume || '0'}方/
|
||||
${item.goodsNumber || '0'}件`
|
||||
`${item?.goodsName}/
|
||||
${item?.weight || '0'}吨/
|
||||
${item?.volume || '0'}方/
|
||||
${item?.goodsNumber || '0'}件`
|
||||
},
|
||||
{
|
||||
title: '运费单价',
|
||||
@ -847,4 +849,12 @@ export class OrderManagementBulkComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.request(this.service.$api_get_asyncExportBulkList, this.reqParams).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('导出成功,请去下载中心下载!');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -133,7 +133,7 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '订单号',
|
||||
ui: {
|
||||
placeholder: '最多100个单号,空号隔开'
|
||||
placeholder: '请输入订单号'
|
||||
}
|
||||
},
|
||||
resourceCode: {
|
||||
@ -334,12 +334,13 @@ export class OrderManagementRiskComponent implements OnInit {
|
||||
{
|
||||
text: '审核',
|
||||
click: _record => this.audit(_record),
|
||||
iif: item => item.auditStatus == '1' ,
|
||||
iif: item => item.representationsStatus == '2' ,
|
||||
acl: { ability: ['ORDER-RISK-audit'] },
|
||||
},
|
||||
{
|
||||
text: '详情',
|
||||
click: _record => this.viewEvaluate(_record),
|
||||
iif: item => item.representationsStatus !== '1' ,
|
||||
acl: { ability: ['ORDER-RISK-riskDetail'] },
|
||||
}
|
||||
]
|
||||
|
||||
@ -333,7 +333,7 @@
|
||||
</ng-template>
|
||||
</div>
|
||||
</nz-card>
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-28 14:42:03
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 14:43:57
|
||||
* @LastEditTime : 2022-03-28 20:31:30
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle-detail\\vehicle-detail.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -47,7 +47,7 @@
|
||||
<sv label="调度员">{{ i?.goodsResource?.dispatchName }}/{{ i?.goodsResource?.dispatchPhone }} </sv>
|
||||
<sv label="外部订单号">{{ i?.externalBillCode }}</sv>
|
||||
<sv label="货源编号">{{ i?.goodsResource?.resourceCode }} </sv>
|
||||
<sv label="运单号">{{ i?.wayBillId }}</sv>
|
||||
<sv label="运单号">{{ i?.wayBill?.wayBillCode }}</sv>
|
||||
<sv label="承诺付款天数">{{ i?.goodsResource?.paymentDays }}</sv>
|
||||
</div>
|
||||
|
||||
@ -230,7 +230,7 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-12 10:52:50
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-23 10:28:41
|
||||
* @LastEditTime : 2022-03-28 11:10:20
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\components\\vehicle\\vehicle.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -209,7 +209,7 @@
|
||||
[acl-ability]="['ORDER-VEHICLE-batchSignWholeOrder']">
|
||||
批量签收
|
||||
</button>
|
||||
<button nz-button nzType="primary" [disabled]="loading">导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="loading" (click)="exprot()">导出</button>
|
||||
<button nz-button nzType="primary" (click)="visible=true;" class="mr-sm">筛选</button>
|
||||
</div>
|
||||
</ng-template>
|
||||
|
||||
@ -29,6 +29,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
isVisibleEvaluate = false;
|
||||
isVisible = false;
|
||||
loading: boolean = true;
|
||||
paramsList: any;
|
||||
changeId: any; // 主页面查看运费变更记录id - 用于运费变更记录
|
||||
changeViewId: any; // 查看运费变更记录id - 用于查看
|
||||
ViewCause: any; // 变更运费查看数据
|
||||
@ -97,36 +98,25 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
if (this.resourceStatus) {
|
||||
a.billStatus = this.resourceStatus;
|
||||
}
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
const params: any = Object.assign({}, this.sf?.value || this.paramsList);
|
||||
delete params._$expand;
|
||||
return {
|
||||
...a,
|
||||
...params,
|
||||
createTime: {
|
||||
start: this.sf?.value?.createTime?.[0] || '',
|
||||
end: this.sf?.value?.createTime?.[1] || ''
|
||||
}
|
||||
};
|
||||
}
|
||||
beforeReq = (requestOptions: STRequestOptions) => {
|
||||
const a: any = {};
|
||||
if (this.resourceStatus) {
|
||||
a.billStatus = this.resourceStatus;
|
||||
Object.assign(requestOptions.body, {
|
||||
...a
|
||||
});
|
||||
}
|
||||
const params: any = Object.assign({}, this.sf?.value || {});
|
||||
const params: any = Object.assign({}, this.sf?.value || this.paramsList);
|
||||
delete params._$expand;
|
||||
if (this.sf) {
|
||||
this.paramsList = params
|
||||
Object.assign(requestOptions.body, {
|
||||
...params,
|
||||
createTime: {
|
||||
start: this.sf?.value?.createTime?.[0] || '',
|
||||
end: this.sf?.value?.createTime?.[1] || ''
|
||||
}
|
||||
...a,
|
||||
...this.paramsList,
|
||||
});
|
||||
}
|
||||
this.loading = true;
|
||||
return requestOptions;
|
||||
};
|
||||
@ -282,14 +272,19 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
containsAllLable: true
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
// createTime: {
|
||||
// title: '创建时间',
|
||||
// type: 'string',
|
||||
// ui: {
|
||||
// widget: 'date',
|
||||
// mode: 'range',
|
||||
// format: 'yyyy-MM-dd'
|
||||
// } as SFDateWidgetSchema
|
||||
// },
|
||||
createTime: {
|
||||
title: '创建时间',
|
||||
type: 'string',
|
||||
ui: {
|
||||
widget: 'date',
|
||||
mode: 'range',
|
||||
format: 'yyyy-MM-dd'
|
||||
} as SFDateWidgetSchema
|
||||
title: '创建时间',
|
||||
ui: { widget: 'sl-from-to', type: 'date', format: 'yyyy-MM-dd' } as SFDateWidgetSchema,
|
||||
},
|
||||
riskStatus: {
|
||||
type: 'string',
|
||||
@ -578,7 +573,7 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
this.resourceStatus = e;
|
||||
this.initST();
|
||||
setTimeout(() => {
|
||||
this.st.load(1);
|
||||
this.st.load();
|
||||
}, 500);
|
||||
}
|
||||
/**
|
||||
@ -862,4 +857,12 @@ export class OrderManagementVehicleComponent extends BasicTableComponent impleme
|
||||
}
|
||||
});
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.request(this.service.$api_get_asyncExportWholeList, this.reqParams).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('导出成功,请去下载中心下载!');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2021-12-03 15:31:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-25 15:27:40
|
||||
* @LastEditTime : 2022-03-28 11:07:48
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\order-management\\services\\order-management.service.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -176,6 +176,12 @@ export class OrderManagementService extends ShipperBaseService {
|
||||
$api_get_getAppDriverPosition = `/api/sdc/billShipper/getAppDriverPosition`;
|
||||
// 查看申述记录
|
||||
$api_get_getOrderComplaintDetail = `/api/sdc/billOperate/getOrderComplaintDetail`;
|
||||
|
||||
|
||||
// 异步导出运营后台大宗订单列表
|
||||
$api_get_asyncExportBulkList = `/api/sdc/billOperate/asyncExportBulkList`;
|
||||
// 异步导出运营后台整车订单列表
|
||||
$api_get_asyncExportWholeList = `/api/sdc/billOperate/asyncExportWholeList`;
|
||||
/**
|
||||
* 根据企业ID,获取企业历史网络货运人
|
||||
* @returns
|
||||
|
||||
@ -2,7 +2,6 @@ import { Component, OnInit } from '@angular/core';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { FreightAccountService } from 'src/app/routes/financial-management/services/freight-account.service';
|
||||
|
||||
|
||||
@Component({
|
||||
selector: 'app-partner-account-management-withdrawals-detail',
|
||||
templateUrl: './withdrawals-detail.component.html',
|
||||
@ -18,7 +17,7 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit {
|
||||
this.loadRefundDetail(id);
|
||||
}
|
||||
|
||||
ngOnInit(): void { }
|
||||
ngOnInit(): void {}
|
||||
|
||||
loadRefundDetail(id: string) {
|
||||
this.service.request(this.service.$api_get_refund_detail, { id }).subscribe(res => {
|
||||
@ -77,7 +76,8 @@ export class PartnerAccountManagementWithdralDetailComponent implements OnInit {
|
||||
rmYll: this.formData.userId,
|
||||
snglFlgCd: this.formData.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: this.formData.ltdId
|
||||
ltdId: this.formData.ltdId,
|
||||
accountType: this.formData.accountType
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@ -311,7 +311,8 @@ export class PartnerAccountManagementWithdrawalsRecordComponent implements OnIni
|
||||
rmYll: item.userId,
|
||||
snglFlgCd: item.coreSerNo,
|
||||
bussType: '06',
|
||||
ltdId: item.ltdId
|
||||
ltdId: item.ltdId,
|
||||
accountType: item.accountType
|
||||
})
|
||||
},
|
||||
{
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="i">
|
||||
<sf #sf [ui]="ui" [schema]="schema" [button]="'none'" [formData]="record">
|
||||
</sf>
|
||||
|
||||
<div *nzModalFooter>
|
||||
|
||||
@ -17,7 +17,8 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
ui!: SFUISchema;
|
||||
i: any;
|
||||
type: any;
|
||||
|
||||
record:any;
|
||||
currentOAItem:any;
|
||||
constructor(
|
||||
public http: _HttpClient,
|
||||
private cdr: ChangeDetectorRef,
|
||||
@ -28,7 +29,14 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initSF();
|
||||
|
||||
this.service.request(this.service.$api_getChannelSalesInfo, {id:this.i?.id}).subscribe(res => {
|
||||
if(res){
|
||||
this.record = res;
|
||||
}
|
||||
this.initSF();
|
||||
});
|
||||
|
||||
}
|
||||
initSF() {
|
||||
this.schema = {
|
||||
@ -62,10 +70,14 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
placeholder:'请选择',
|
||||
asyncData: (input:string) => this.service.request(this.service.$api_fuzzyQuery,{name:input}).pipe(
|
||||
map((res: any) => {
|
||||
console.log('111',res)
|
||||
return [];
|
||||
return res.map((item:any)=>{
|
||||
return {label: item.empName+"/"+item.empNo, value: item.empNo, obj: item}
|
||||
})
|
||||
})
|
||||
)
|
||||
),
|
||||
change:(item:any, org:any)=>{
|
||||
this.currentOAItem = org.obj;
|
||||
}
|
||||
} as SFAutoCompleteWidgetSchema,
|
||||
},
|
||||
isAuthorization: {
|
||||
@ -89,7 +101,6 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
mode: 'multiple',
|
||||
maxMultipleCount: 5,
|
||||
asyncData: () => {
|
||||
|
||||
return this.service.request(this.service.$api_getAppRoleList).pipe(
|
||||
map((res: any) => {
|
||||
return res
|
||||
@ -134,7 +145,7 @@ export class ParterChannelSalesEditComponent implements OnInit {
|
||||
save() {
|
||||
this.sf.validator({ emitError: true });
|
||||
if(!this.sf.valid) return;
|
||||
this.service.request(this.service.$api_save, { ...this.sf.value }).subscribe(res => {
|
||||
this.service.request(this.service.$api_save, { ...this.sf.value, employeeVO: this.currentOAItem}).subscribe(res => {
|
||||
if (res) {
|
||||
this.modalRef.destroy(true);
|
||||
} else {
|
||||
|
||||
@ -98,10 +98,6 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
text: '编辑',
|
||||
click: (_record, _modal, _instance) => this.edit(_record),
|
||||
},
|
||||
{
|
||||
text: '查看',
|
||||
click: (_record, _modal, _instance) => this.view(_record),
|
||||
},
|
||||
{
|
||||
text: '冻结',
|
||||
click: (_record, _modal, _instance) => this.stop(_record.id),
|
||||
@ -116,7 +112,6 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
nzWidth:600,
|
||||
nzTitle: '新增',
|
||||
nzContent: ParterChannelSalesEditComponent,
|
||||
nzComponentParams: { type: this.spuStatus }
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
if (res) {
|
||||
@ -131,7 +126,7 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
nzWidth:600,
|
||||
nzTitle: '编辑',
|
||||
nzContent: ParterChannelSalesEditComponent,
|
||||
nzComponentParams: { i: record, type: this.spuStatus }
|
||||
nzComponentParams: { i: record }
|
||||
});
|
||||
modalRef.afterClose.subscribe(res => {
|
||||
if (res) {
|
||||
@ -140,14 +135,7 @@ export class ParterChannelSalesListComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
// 编辑
|
||||
view(record: STData) {
|
||||
const modalRef = this.modalService.create({
|
||||
nzTitle: '查看',
|
||||
nzContent: ParterChannelSalesEditComponent,
|
||||
nzComponentParams: { i: record }
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
stop(id: any) {
|
||||
this.modalService.confirm({
|
||||
|
||||
@ -15,6 +15,10 @@ export class ChannelSalesService extends BaseService {
|
||||
$api_fuzzyQuery = '/api/mdc/channelSalesManagement/fuzzyQuery';
|
||||
// 获取角色列表
|
||||
$api_getAppRoleList = '/api/mdc/cuc/roleInfo/getRoleList';
|
||||
// 获取渠道销售管理详情
|
||||
$api_listChannelSalesManagement = '/api/mdc/channelSalesManagement/list/listChannelSalesManagement';
|
||||
// 根据渠道销售id获取渠道信息
|
||||
$api_getChannelSalesInfo = '/api/mdc/channelSalesManagement/getChannelSalesInfo';
|
||||
|
||||
|
||||
constructor(public injector: Injector) {
|
||||
|
||||
@ -61,6 +61,7 @@ import { BannerComponentsAddComponent } from './knowledge/banner/components/add/
|
||||
import { PersonalPartnerDetailComponent } from './partner-list/components/personal-partner-detail/personal-partner-detail.component';
|
||||
import { ParterAdviceFeedbackListComponent } from './advice-feedback/components/list/list.component';
|
||||
import { ParterAdviceFeedbackDetailComponent } from './advice-feedback/components/feedback-detail/feedback-detail.component';
|
||||
import { ParterRebateManageMentAddPartnerListComponent } from './rebate-management/components/rebate-setting/add-partnerlist/add-partnerlist.component';
|
||||
|
||||
const COMPONENTS: any[] = [
|
||||
PartnerBusinessStatisticsIndexComponent,
|
||||
@ -111,7 +112,8 @@ const COMPONENTS: any[] = [
|
||||
BannerComponentsAddComponent,
|
||||
PersonalPartnerDetailComponent,
|
||||
ParterAdviceFeedbackListComponent,
|
||||
ParterAdviceFeedbackDetailComponent
|
||||
ParterAdviceFeedbackDetailComponent,
|
||||
ParterRebateManageMentAddPartnerListComponent
|
||||
];
|
||||
|
||||
@NgModule({
|
||||
|
||||
@ -0,0 +1,30 @@
|
||||
<!--
|
||||
* @Description :
|
||||
* @Version : 1.0
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-28 14:53:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-28 17:03:21
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add-partnerlist\\add-partnerlist.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
<nz-card>
|
||||
<div nz-row nzGutter="8">
|
||||
<!-- 查询字段小于或等于3个时,不显示伸缩按钮 -->
|
||||
<div nz-col nzSpan="24" >
|
||||
<sf #sf [schema]="schema" [ui]="ui" [mode]="'search'" [disabled]="!sf?.valid" [loading]="false"
|
||||
(formSubmit)="search()" (formReset)="resetSF()"></sf>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-card class="content-box">
|
||||
<st #st [data]="service.$api_get_partner_page " [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' }, params: reqParams }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100, 200, 300, 500, 1000] }" [loading]="false"
|
||||
[scroll]="{ x: '1000' }">
|
||||
</st>
|
||||
<button *ngIf="selectedIndex===0" (click)="batchReply()" nz-button nzType="primary" acl
|
||||
[acl-ability]="['AbnormalAppear-batchReply']">批量回复</button>
|
||||
</nz-card>
|
||||
@ -0,0 +1,20 @@
|
||||
:host::ng-deep{
|
||||
.search-box{
|
||||
.ant-card-body{
|
||||
padding-bottom: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
.content-box{
|
||||
.ant-card-body{
|
||||
padding-top: 14px;
|
||||
}
|
||||
}
|
||||
.imgBox {
|
||||
display: flex;
|
||||
img {
|
||||
width: 60px !important;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,141 @@
|
||||
import { Component, OnInit, ViewChild, Type } from '@angular/core';
|
||||
import { STComponent, STColumn, STChange } from '@delon/abc/st';
|
||||
import {
|
||||
SFComponent,
|
||||
SFDateWidgetSchema,
|
||||
SFRadioWidgetSchema,
|
||||
SFSchema,
|
||||
SFSchemaEnum,
|
||||
SFSelectWidgetSchema,
|
||||
SFUISchema
|
||||
} from '@delon/form';
|
||||
import { ShipperBaseService } from '@shared';
|
||||
import { NzModalService, NzModalRef } from 'ng-zorro-antd/modal';
|
||||
import { of } from 'rxjs';
|
||||
import { map } from 'rxjs/operators';
|
||||
import { RebateManagementService } from '../../../services/rebate-management.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-add-partnerlist',
|
||||
templateUrl: './add-partnerlist.component.html',
|
||||
styleUrls: ['./add-partnerlist.component.less']
|
||||
})
|
||||
export class ParterRebateManageMentAddPartnerListComponent implements OnInit {
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
ui: SFUISchema = {};
|
||||
i: any;
|
||||
schema: SFSchema = {};
|
||||
addSchema: SFSchema = {};
|
||||
_$expand = false;
|
||||
editText = '';
|
||||
formData: any;
|
||||
isVisible = false;
|
||||
edit = false;
|
||||
editId = false;
|
||||
selectedIndex = 0;
|
||||
|
||||
columns: STColumn[] = [
|
||||
{ title: '', type: 'checkbox', width: '50px', className: 'text-center' },
|
||||
{
|
||||
title: '合伙人名称',
|
||||
index: 'enterpriseName',
|
||||
width: 180,
|
||||
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
|
||||
},
|
||||
{ title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
|
||||
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
|
||||
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
|
||||
{
|
||||
title: '操作',
|
||||
width: '90px',
|
||||
fixed: 'right',
|
||||
buttons: [
|
||||
{
|
||||
text: '添加',
|
||||
click: _record => this.add(_record),
|
||||
acl: { ability: ['AbnormalAppear-reply'] }
|
||||
}
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
get reqParams() {
|
||||
// signStatus固定传20 代表签约完成 signStatus: 20
|
||||
let params: any = { ...this.sf?.value, };
|
||||
return params;
|
||||
}
|
||||
|
||||
get selectedRows() {
|
||||
return this.st?.list.filter(item => item.checked) || [];
|
||||
}
|
||||
|
||||
constructor(
|
||||
public service: RebateManagementService,
|
||||
public shipperSrv: ShipperBaseService,
|
||||
private modal: NzModalService,
|
||||
private modals: NzModalRef
|
||||
) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.initSF();
|
||||
}
|
||||
initSF() {
|
||||
this.schema = {
|
||||
properties: {
|
||||
enterpriseName: {
|
||||
type: 'string',
|
||||
title: '合伙人名称'
|
||||
},
|
||||
partnerType: {
|
||||
type: 'string',
|
||||
title: '类型',
|
||||
enum: [
|
||||
{ value: '', label: '全部' },
|
||||
{ value: 1, label: '企业' },
|
||||
{ value: 2, label: '个人' }
|
||||
],
|
||||
ui: {
|
||||
widget: 'select',
|
||||
placeholder: '请选择',
|
||||
visibleIf: {
|
||||
expand: (value: boolean) => value
|
||||
}
|
||||
},
|
||||
default: ''
|
||||
}
|
||||
}
|
||||
};
|
||||
this.ui = { '*': { spanLabelFixed: 110, grid: { span: 8, gutter: 4 } } };
|
||||
}
|
||||
|
||||
search() {
|
||||
this.st?.load(1);
|
||||
}
|
||||
|
||||
selectedIndexChange(event: any) {
|
||||
if (this.selectedIndex === 0) {
|
||||
this.st?.load(1);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
*/
|
||||
resetSF() {
|
||||
this.sf.reset();
|
||||
}
|
||||
// 回复操作
|
||||
add(item: any) {
|
||||
console.log(item);
|
||||
this.modals.destroy(item);
|
||||
}
|
||||
// 批量回复操作
|
||||
batchReply() {
|
||||
// if (this.selectedRows.length === 0) {
|
||||
// this.service.msgSrv.warning('请勾选数据!')
|
||||
// return;
|
||||
// }
|
||||
this.modals.destroy(this.selectedRows);
|
||||
}
|
||||
}
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 13:53:31
|
||||
* @LastEditTime : 2022-03-29 10:47:02
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -14,41 +14,57 @@
|
||||
|
||||
<!-- 数据列表 -->
|
||||
<sv-container col="1">
|
||||
<sv label="配置名称"> <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="setValue" /></sv>
|
||||
<sv label="配置名称"> <input style="max-width: 400px;" nz-input placeholder="请输入" [(ngModel)]="configName" /></sv>
|
||||
<sv-title>固定结算费率配置</sv-title>
|
||||
<sv label="固定结算费率"> <nz-input-number [(ngModel)]="toFixedValue" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv>
|
||||
<sv label="固定结算费率"> <nz-input-number [(ngModel)]="accountingRate" [nzPrecision]="precision" nzPlaceHolder="请输入"></nz-input-number> %</sv>
|
||||
<sv-title>业务量和管理费比例配置</sv-title>
|
||||
<sv label="选择配置类型">
|
||||
<nz-radio-group [(ngModel)]="radioValue">
|
||||
<label nz-radio nzValue="A">按全部等级配置</label>
|
||||
<label nz-radio nzValue="B">按不同等级配置</label>
|
||||
<nz-radio-group [(ngModel)]="configType">
|
||||
<label nz-radio nzValue="1">按全部等级配置</label>
|
||||
<label nz-radio nzValue="2">按不同等级配置</label>
|
||||
</nz-radio-group>
|
||||
</sv>
|
||||
<sv col="1">
|
||||
<app-rebate-table></app-rebate-table>
|
||||
|
||||
<app-rebate-table #table [(data)]='tabelData'></app-rebate-table>
|
||||
</sv>
|
||||
<sv-title>关联合伙人配置</sv-title>
|
||||
<sv label="合伙人选择">
|
||||
<nz-select ngModel="lucy" style="max-width: 400px; min-width: 200px;">
|
||||
<nz-option nzValue="jack" nzLabel="Jack"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
<nz-select [(ngModel)]="partnerType" style="max-width: 400px; min-width: 200px;">
|
||||
<nz-option nzValue="1" nzLabel="全部合伙人"></nz-option>
|
||||
<nz-option nzValue="2" nzLabel="新注册合伙人"></nz-option>
|
||||
<nz-option nzValue="3" nzLabel="自定义合伙人"></nz-option>
|
||||
</nz-select>
|
||||
<span >添加</span>
|
||||
<span style="color: #0000FF;" (click)="add()">添加</span>
|
||||
<st *ngIf="partnerPeopleList?.length > 0" #st [data]="partnerPeopleList" [columns]="columns"
|
||||
[req]="{ method: 'POST', allInBody: true, reName: { pi: 'pageIndex', ps: 'pageSize' } }"
|
||||
[res]="{ reName: { list: 'data.records', total: 'data.total' } }"
|
||||
[page]="{ show: true, showSize: true, pageSizes: [10, 20, 30, 50, 100] }" [loading]="false"
|
||||
[scroll]="{ x: '1000' }">
|
||||
</st>
|
||||
</sv>
|
||||
<sv label="优先级" col="1">
|
||||
<nz-select ngModel="lucy" style="max-width: 400px; min-width: 200px;">
|
||||
<nz-option nzValue="jack" nzLabel="Jack"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
<nz-select [(ngModel)]="priority" style="max-width: 400px; min-width: 200px;">
|
||||
<nz-option nzValue=1 nzLabel="1">1</nz-option>
|
||||
<nz-option nzValue=2 nzLabel="2">2</nz-option>
|
||||
<nz-option nzValue=3 nzLabel="3">3</nz-option>
|
||||
<nz-option nzValue=4 nzLabel="4">4</nz-option>
|
||||
<nz-option nzValue=5 nzLabel="5">5</nz-option>
|
||||
</nz-select>
|
||||
</sv>
|
||||
<sv label="规则说明" col="1">
|
||||
<sf #sf mode="edit" [schema]="schema1" [ui]="{ '*': { spanLabelFixed: 10, grid: { span: 16 }} }"
|
||||
button="none"> </sf>
|
||||
</sv>
|
||||
<sv label="规则说明" col="1">
|
||||
<textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="inputValue"></textarea>
|
||||
<sv label="备注" col="1">
|
||||
<textarea style="max-width: 400px; min-width: 200px;" rows="4" nz-input [(ngModel)]="remarke"></textarea>
|
||||
</sv>
|
||||
</sv-container>
|
||||
|
||||
<div class="align-center" style="margin-top: 15px;">
|
||||
<button nz-button nzType="primary" (click)="goBack()">取消</button>
|
||||
<button nz-button nzType="primary" style="margin-left: 48px" (click)="save()"
|
||||
acl [acl-ability]="['SUPPLY-VEHICLE-AMEND-submitChange']">提交</button
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
@ -7,4 +7,10 @@
|
||||
font-weight: 700;
|
||||
}
|
||||
}
|
||||
.align-center {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-03-21 09:26:45
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 13:44:34
|
||||
* @LastEditTime : 2022-03-29 10:53:39
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\add\\add.component.ts
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
*/
|
||||
@ -16,17 +16,28 @@ import { SFComponent, SFDateWidgetSchema, SFSchema, SFUISchema } from '@delon/fo
|
||||
import { processSingleSort, ShipperBaseService } from '@shared';
|
||||
import { NzModalService } from 'ng-zorro-antd/modal';
|
||||
import { RebateManagementService } from '../../../services/rebate-management.service';
|
||||
import { ParterRebateManageMentAddPartnerListComponent } from '../add-partnerlist/add-partnerlist.component';
|
||||
import { inRange } from '@delon/util';
|
||||
@Component({
|
||||
selector: 'app-parter-channel-rebate-management-add',
|
||||
styleUrls: ['./add.component.less'],
|
||||
templateUrl: './add.component.html'
|
||||
})
|
||||
export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
setValue: string = '';
|
||||
toFixedValue: Number = 2;
|
||||
radioValue = 'A';
|
||||
@ViewChild('table') table!: any;
|
||||
tabelData: any;
|
||||
configName: string = '';
|
||||
partnerType: string = '';
|
||||
remarke: string = '';
|
||||
accountingRate: Number = 0;
|
||||
priority: string = '';
|
||||
partnerPeopleList: any;
|
||||
configType = '1';
|
||||
precision = 2;
|
||||
inputValue= '';
|
||||
partnerId :Array<string> =[];
|
||||
inputValue = '';
|
||||
@ViewChild('st', { static: true })
|
||||
st!: STComponent;
|
||||
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
||||
schema1!: SFSchema;
|
||||
constructor(
|
||||
@ -34,12 +45,33 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
public ar: ActivatedRoute,
|
||||
public service: RebateManagementService,
|
||||
private modal: NzModalService,
|
||||
public shipperservice: ShipperBaseService,
|
||||
public shipperservice: ShipperBaseService
|
||||
) {}
|
||||
columns: STColumn[] = [
|
||||
{
|
||||
title: '合伙人名称',
|
||||
index: 'enterpriseName',
|
||||
width: 180,
|
||||
format: item => (item.partnerType ? `${item.enterpriseName || item.contactName}` : '')
|
||||
},
|
||||
{ title: '联系人', index: 'contactName', width: 150, format: item => (item.partnerType ? `${item.contactName}` : '') },
|
||||
{ title: '手机号', index: 'contactMobile', className: 'text-center', width: 150 },
|
||||
{ title: '类型', index: 'partnerType', className: 'text-center', width: 130, type: 'enum', enum: { 1: '企业', 2: '个人' } },
|
||||
{
|
||||
title: '操作', width: '90px', fixed: 'right',
|
||||
buttons: [
|
||||
{
|
||||
text: '移除',
|
||||
click: _record => this.delete(_record),
|
||||
acl: { ability: ['AbnormalAppear-reply'] }
|
||||
},
|
||||
]
|
||||
},
|
||||
];
|
||||
initSF(data?: any) {
|
||||
this.schema1 = {
|
||||
properties: {
|
||||
content: {
|
||||
ruleDescription: {
|
||||
type: 'string',
|
||||
title: '',
|
||||
ui: {
|
||||
@ -49,12 +81,69 @@ export class ParterRebateManageMentAddComponent implements OnInit {
|
||||
height: 650
|
||||
}
|
||||
},
|
||||
default: data?.agreementContent || ''
|
||||
// default: data?.agreementContent || ''
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
ngOnInit() {
|
||||
this.initSF()
|
||||
this.initSF();
|
||||
}
|
||||
goBack() {
|
||||
window.history.go(-1);
|
||||
}
|
||||
/**
|
||||
*合伙人选择
|
||||
*/
|
||||
add(item?: any) {
|
||||
const modalRef = this.modal.create({
|
||||
nzTitle: '合伙人选择',
|
||||
nzWidth: 1000,
|
||||
nzContent: ParterRebateManageMentAddPartnerListComponent,
|
||||
nzComponentParams: {
|
||||
i: item,
|
||||
},
|
||||
nzFooter: null
|
||||
});
|
||||
modalRef.afterClose.subscribe((res: any) => {
|
||||
this.partnerId = [];
|
||||
if (res) {
|
||||
console.log(Array.isArray(res));
|
||||
console.log(res);
|
||||
if(Array.isArray(res)) {
|
||||
this.partnerPeopleList = res;
|
||||
res.forEach((ele: any) => {
|
||||
this.partnerId.push(ele?.id);
|
||||
})
|
||||
} else {
|
||||
this.partnerPeopleList = [res];
|
||||
this.partnerId.push(res?.id);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
delete(item: any) {
|
||||
console.log(item);
|
||||
}
|
||||
save () {
|
||||
const params = {
|
||||
accountingRate: this.accountingRate,
|
||||
configName: this.configName,
|
||||
configType: this.configType,
|
||||
rebateConfigLineDTO: this.table.data,
|
||||
priority: this.priority,// 优先级
|
||||
partnerId: this.partnerId.join(','),
|
||||
ruleDescription: this.sf.value.ruleDescription,
|
||||
remarke: this.remarke,
|
||||
partnerType: this.partnerType
|
||||
}
|
||||
console.log(params);
|
||||
this.service.request(this.service.$api_save_rebateConfig, params).subscribe((res: any) => {
|
||||
if(res) {
|
||||
console.log(res);
|
||||
this.service.msgSrv.success('新增成功!')
|
||||
this.router.navigate(['/partner/rebate/setting'])
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-02-24 20:09:49
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-22 14:42:27
|
||||
* @LastEditTime : 2022-03-29 10:51:52
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\partner\\rebate-management\\components\\rebate-setting\\rebate-setting.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -47,8 +47,17 @@
|
||||
[loadingDelay]="500"
|
||||
[loading]="service.http.loading"
|
||||
>
|
||||
<ng-template st-row='name44' let-item let-index='index'>
|
||||
<div style="color: #f59a23;" (click)="feedback()">1223</div>
|
||||
<ng-template st-row='configType' let-item let-index='index'>
|
||||
<div *ngIf="item.configType == 1">按全部等级配置</div>
|
||||
<div *ngIf="item.configType == 2">按不同等级配置</div>
|
||||
</ng-template>
|
||||
<ng-template st-row='partnerType' let-item let-index='index'>
|
||||
<div *ngIf="item.partnerType == 1">全部合伙人</div>
|
||||
<div *ngIf="item.partnerType == 2">新注册合伙人</div>
|
||||
<div *ngIf="item.partnerType == 3">自定义合伙人</div>
|
||||
</ng-template>
|
||||
<ng-template st-row='stateLocked' let-item let-index='index'>
|
||||
<div >{{item?.stateLocked ? '启用' : '禁用'}}</div>
|
||||
</ng-template>
|
||||
</st>
|
||||
</nz-card>
|
||||
|
||||
@ -69,12 +69,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
_$expand: { type: 'boolean', ui: { hidden: true } },
|
||||
month: {
|
||||
type: 'string',
|
||||
title: '时间月份',
|
||||
format: 'month',
|
||||
title: '配置名称',
|
||||
format: 'configName',
|
||||
},
|
||||
partnerId: {
|
||||
stateLocked: {
|
||||
type: 'string',
|
||||
title: '合伙人名称'
|
||||
title: '状态'
|
||||
},
|
||||
}
|
||||
};
|
||||
@ -89,12 +89,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
initST() {
|
||||
this.columns = [
|
||||
{
|
||||
title: '月份',
|
||||
index: '配置名称'
|
||||
title: '配置名称',
|
||||
index: 'configName'
|
||||
},
|
||||
{
|
||||
title: '配置类型',
|
||||
index: 'configType'
|
||||
render: 'configType'
|
||||
},
|
||||
{
|
||||
title: '备注',
|
||||
@ -102,7 +102,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '关联合伙人范围',
|
||||
index: 'partnerType'
|
||||
render: 'partnerType'
|
||||
},
|
||||
{
|
||||
title: '创建时间',
|
||||
@ -118,7 +118,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '状态',
|
||||
index: 'stateLocked'
|
||||
render: 'stateLocked'
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
@ -132,6 +132,12 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
text: '禁用',
|
||||
iif: (_record) =>{ return _record.stateLocked == true},
|
||||
click: _record => this.viewEvaluate(_record),
|
||||
},
|
||||
{
|
||||
text: '启用',
|
||||
iif: (_record) =>{ return _record.stateLocked == false},
|
||||
click: _record => this.viewEvaluate(_record),
|
||||
},
|
||||
]
|
||||
@ -142,10 +148,29 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
*禁用
|
||||
*/
|
||||
viewEvaluate(item: any) {
|
||||
console.log(item.stateLocked);
|
||||
let title = ''
|
||||
let stateLocked: boolean;
|
||||
if(item.stateLocked) {
|
||||
title = '是否禁用该配置?'
|
||||
stateLocked = false
|
||||
} else {
|
||||
title = '是否启用该配置?'
|
||||
stateLocked = true
|
||||
}
|
||||
this.modal.confirm({
|
||||
nzTitle: '是否禁用该配置?',
|
||||
nzTitle: title,
|
||||
nzOnOk: () => {
|
||||
|
||||
const params = {
|
||||
id: item?.id,
|
||||
stateLocked: stateLocked,
|
||||
}
|
||||
this.service.request(this.service.$api_set_updateRebateConfig,params).subscribe((res: any) => {
|
||||
if(res) {
|
||||
this.service.msgSrv.success('设置成功!')
|
||||
this.st.reload();
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -166,7 +191,7 @@ export class ParterRebateManageMentSettingComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
configAction() {
|
||||
this.router.navigate(['/partner/rebate/setting/add', ''])
|
||||
this.router.navigate(['/partner/rebate/setting/add/', 1])
|
||||
}
|
||||
/**
|
||||
* 重置表单
|
||||
|
||||
@ -19,6 +19,12 @@ export class RebateManagementService extends BaseService {
|
||||
public $api_get_listCompliancePage = '/api/sdc/billRiskOperate/listRiskPage';
|
||||
// 查询返佣配置表
|
||||
public $api_get_rebateConfig = '/api/mdc/rebateConfig/list/page';
|
||||
// 保存返佣配置表
|
||||
public $api_save_rebateConfig = '/api/mdc/rebateConfig/save';
|
||||
// 启用/禁用返佣配置
|
||||
public $api_set_updateRebateConfig = '/api/mdc/rebateConfig/updateRebateConfig';
|
||||
// 查询合伙人信息-分页
|
||||
public $api_get_partner_page = '/api/mdc/partner/list/page';
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
@ -92,7 +92,7 @@ export class CarAddDriverComponent implements OnInit {
|
||||
title: '',
|
||||
ui: {
|
||||
offsetControl: 6,
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -108,6 +108,18 @@ export class CarAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoFrontWatermark', avatar);
|
||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
|
||||
this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
|
||||
} else {
|
||||
@ -142,7 +154,7 @@ export class CarAddDriverComponent implements OnInit {
|
||||
title: '',
|
||||
ui: {
|
||||
offsetControl: 6,
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -158,6 +170,18 @@ export class CarAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoBackWatermark', avatar);
|
||||
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath
|
||||
this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0);
|
||||
} else {
|
||||
|
||||
@ -119,7 +119,15 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
|
||||
nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>',
|
||||
nzOkText: '确定',
|
||||
nzCancelText: '取消',
|
||||
nzOnOk: () => console.log('OK')
|
||||
nzOnOk: () => {
|
||||
this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => {
|
||||
if (res.code === '1') {
|
||||
this.service.msgSrv.success('发送成功');
|
||||
} else {
|
||||
this.service.msgSrv.success('发送失败');
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
return [];
|
||||
}
|
||||
@ -256,5 +264,11 @@ export class SupplyManagementVehicleAssignedCarComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送邀请司机注册短信
|
||||
*/
|
||||
sendMsg(phoneNumber: string) {
|
||||
return this.service.request(this.service.$api_send_msg_code, phoneNumber)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -246,7 +246,15 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
|
||||
nzContent: '<b>该司机还未注册,是否邀请他注册?点击"是"系统将发送邀请短信给司机</b>',
|
||||
nzOkText: '确定',
|
||||
nzCancelText: '取消',
|
||||
nzOnOk: () => console.log('OK')
|
||||
nzOnOk: () => {
|
||||
this.sendMsg(this.sf?.value?.nameOrPhone).subscribe((res => {
|
||||
if (res.code === '1') {
|
||||
this.service.msgSrv.success('发送成功');
|
||||
} else {
|
||||
this.service.msgSrv.success('发送失败');
|
||||
}
|
||||
}));
|
||||
}
|
||||
});
|
||||
return [];
|
||||
}
|
||||
@ -327,4 +335,11 @@ export class PublishGoodsChooseFamifiarComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 发送邀请司机注册短信
|
||||
*/
|
||||
sendMsg(phoneNumber: string) {
|
||||
return this.service.request(this.service.$api_send_msg_code, phoneNumber)
|
||||
}
|
||||
}
|
||||
|
||||
@ -177,17 +177,15 @@ export class SupplyManagementVehicleComponent implements OnInit {
|
||||
{
|
||||
label: '下载失败数据',
|
||||
type: 'primary',
|
||||
loading: this.service.http.loading,
|
||||
onClick: () => {
|
||||
if(!result?.failNumber) {
|
||||
this.service.msgSrv.error('没有失败数据!');
|
||||
tipsModal.destroy();
|
||||
return;
|
||||
}
|
||||
this.service.request(this.service.$api_getFailUploadGoodsOperateResource, result.ids).subscribe((res: any) => {
|
||||
if(res) {
|
||||
console.log(res);
|
||||
}
|
||||
})
|
||||
console.log(111);
|
||||
this.service.downloadFile(this.service.$api_getFailUploadGoodsOperateResource, result.ids)
|
||||
tipsModal.destroy();
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
@ -119,8 +119,8 @@ export class SupplyManagementService extends BaseService {
|
||||
public $api_getContractContent = '/api/sdc/contractTemplate/getContractContent';
|
||||
// 获取运价
|
||||
public $api_getFreight = '/api/mdc/cuc/freightConfig/getFreight';
|
||||
// 从业资格证
|
||||
$api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate';
|
||||
// 从业资格证
|
||||
$api_recognizeQualificationCertificate = '/api/mdc/pbc/hwc/ocr/recognizeQualificationCertificate';
|
||||
/**
|
||||
* 获取车型、车长字典数据
|
||||
* @returns
|
||||
@ -177,6 +177,8 @@ export class SupplyManagementService extends BaseService {
|
||||
$api_asyncExportWholeList = '/api/sdc/goodsResourceOperate/asyncExportWholeList';
|
||||
// 根据货主ID查询合同签署属性
|
||||
public $api_getContractAtr = '/api/mdc/cuc/enterpriseInfo/cargoOwner/getContractAtr';
|
||||
// 发送邀请司机短信
|
||||
$api_send_msg_code = `/api/mdc/pbc/smsSend/sendInviteDriver`;
|
||||
|
||||
getDictByKey(dictKey: string) {
|
||||
const params = { dictKey: dictKey };
|
||||
|
||||
@ -205,6 +205,10 @@ export class CancellationInvoiceComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
downLoadDetail(item: any) {
|
||||
this.service.exportStart({ id: item.id }, this.service.$api_export_invoic_detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 推送发票
|
||||
* @param item
|
||||
@ -387,6 +391,11 @@ export class CancellationInvoiceComponent implements OnInit {
|
||||
queryParams: { type: 1, expressno: item.expressno, ltdId: item.shipperId }
|
||||
})
|
||||
},
|
||||
{
|
||||
text: '销货清单<br>',
|
||||
iif: item => item.isdetail,
|
||||
click: item => this.downLoadDetail(item)
|
||||
},
|
||||
{
|
||||
text: '手工开票<br>',
|
||||
iif: item => item.sts != '3',
|
||||
|
||||
@ -34,11 +34,11 @@ export class ExpressDetailModalComponent implements OnInit {
|
||||
},
|
||||
{
|
||||
title: '金额',
|
||||
index: 'vatnotax',
|
||||
index: 'vatmoney',
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatmoney }) }
|
||||
},
|
||||
{
|
||||
title: '税率',
|
||||
@ -53,7 +53,7 @@ export class ExpressDetailModalComponent implements OnInit {
|
||||
width: 90,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vatnotax }) }
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.vattax }) }
|
||||
},
|
||||
{ title: '开票日期', index: 'invoicedate', type: 'date', width: 150, className: 'text-center' }
|
||||
];
|
||||
|
||||
@ -154,13 +154,13 @@ export class InvoiceDetailComponent implements OnInit {
|
||||
{ title: '卸货地', index: 'loadingto', width: 220 },
|
||||
{ title: '货物信息', index: 'goodsinfo', width: 140 },
|
||||
{ title: '承运司机', index: 'driverinfo', width: 280 },
|
||||
{
|
||||
title: '税额',
|
||||
index: 'billvatrate',
|
||||
width: 120,
|
||||
className: 'text-right',
|
||||
format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%`
|
||||
},
|
||||
// {
|
||||
// title: '税额',
|
||||
// index: 'billvatrate',
|
||||
// width: 120,
|
||||
// className: 'text-right',
|
||||
// format: item => `${item.billvatrate ? ((item.billvatrate as number) * 100).toFixed(2) : 0}%`
|
||||
// },
|
||||
{
|
||||
title: '申请金额',
|
||||
index: 'billkpnotax',
|
||||
|
||||
@ -55,6 +55,8 @@ export class InvoiceRequestedComponent {
|
||||
};
|
||||
|
||||
afterRes = (data: any[], rawData?: any) => {
|
||||
this.totalCallNo = 0;
|
||||
this.selectedRows = [];
|
||||
return data.map(item => ({
|
||||
...item,
|
||||
disabled: item.expressHSts
|
||||
@ -436,7 +438,10 @@ export class InvoiceRequestedComponent {
|
||||
width: 150,
|
||||
type: 'widget',
|
||||
className: 'text-right',
|
||||
widget: { type: 'currency-chy', params: ({ record }) => ({ value: record.invoicedMoney }) }
|
||||
widget: {
|
||||
type: 'currency-chy',
|
||||
params: ({ record }) => ({ value: record.invoicedMoney })
|
||||
}
|
||||
},
|
||||
{ title: '开户行', index: 'bankName', width: 160 },
|
||||
{ title: '银行账户', index: 'bankAccount', width: 140 },
|
||||
|
||||
@ -47,6 +47,8 @@ export class RequestedInvoiceModalComponent {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('移除成功');
|
||||
this.modal.destroy(true);
|
||||
} else {
|
||||
this.service.msgSrv.warning('移除失败');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -46,6 +46,8 @@ export class TicketService extends ShipperBaseService {
|
||||
$api_batch_push_invoic = '/api/fcc/ficoVatinvH/crmPushInvoBath';
|
||||
// 发票作废
|
||||
$api_cancel_invoic = '/api/fcc/ficoVatinvH/inpinvHCancel';
|
||||
// 运营端销票处理导出销售清单
|
||||
$api_export_invoic_detail = '/api/fcc/ficoVatinvH/reportVatinvHByOperator';
|
||||
|
||||
// 获取汇总下单路径
|
||||
$api_get_order_summary_path = '/api/fcc/ficoExpressH/getSummaryOrderAddress';
|
||||
@ -60,7 +62,7 @@ export class TicketService extends ShipperBaseService {
|
||||
$api_get_invoice_page = '/api/fcc/ficoVatinvH/list/page';
|
||||
|
||||
// 更新快递信息
|
||||
$api_update_Express= '/api/fcc/ficoVatinvH/updateExpress';
|
||||
$api_update_Express = '/api/fcc/ficoVatinvH/updateExpress';
|
||||
|
||||
// 发票作废
|
||||
$api_cancel_invoice = '/api/fcc/ficoVatinvH/inpinvHCancel';
|
||||
|
||||
@ -23,12 +23,16 @@
|
||||
</div>
|
||||
</ng-template>
|
||||
</sf>
|
||||
<sf #sf1 [compact]="true" [ui]="ui" [schema]="schema1" [button]="'none'" *ngIf="schema1">
|
||||
<sf #sf1 [compact]="true" [ui]="ui2" [schema]="schema1" [button]="'none'" *ngIf="schema1">
|
||||
<ng-template sf-template="roadImg" let-me let-ui="ui" let-schema="schema">
|
||||
<img height="104" src="/assets/images/drivercard.png" class="borderImg" />
|
||||
</ng-template>
|
||||
</sf>
|
||||
<sf #sf2 [compact]="true" [ui]="ui" [schema]="schema2" [button]="'none'" *ngIf="schema2">
|
||||
<sf #sf2 [compact]="true" [ui]="ui3" [schema]="schema2" [button]="'none'" *ngIf="schema2">
|
||||
<ng-template sf-template="agreeImg" let-me let-ui="ui" let-schema="schema">
|
||||
<img height="104" src="/assets/images/jopcard.png" class="borderImg" />
|
||||
</ng-template>
|
||||
</sf>
|
||||
<img class="drivercard" height="104" src="/assets/images/drivercard.png" />
|
||||
<img class="jopcard" height="104" src="/assets/images/jopcard.png" />
|
||||
<!-- <div class="example" (click)="showExample()">
|
||||
查看示例
|
||||
<div class="popBox" *ngIf="showCardFlag">
|
||||
|
||||
@ -29,13 +29,13 @@
|
||||
}
|
||||
.drivercard{
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
top: 710px;
|
||||
left: 330px;
|
||||
border: solid 1px #ebf0fb;
|
||||
}
|
||||
.jopcard{
|
||||
position: absolute;
|
||||
top: 79%;
|
||||
top: 1115px;
|
||||
left: 330px;
|
||||
border: solid 1px #ebf0fb;
|
||||
}
|
||||
@ -47,5 +47,11 @@
|
||||
color: black;
|
||||
resize:none;
|
||||
}
|
||||
.setCustom .ant-form-item-control{
|
||||
margin-left: -100px !important
|
||||
}
|
||||
.borderImg{
|
||||
border: solid 1px #ebf0fb;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -22,6 +22,8 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
record: any = {};
|
||||
i: any;
|
||||
ui: SFUISchema = {};
|
||||
ui2: SFUISchema = {};
|
||||
ui3: SFUISchema = {};
|
||||
schema: SFSchema = {};
|
||||
schema1: SFSchema = {};
|
||||
schema2: SFSchema = {};
|
||||
@ -88,7 +90,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
title: '',
|
||||
ui: {
|
||||
offsetControl: 6,
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -104,7 +106,18 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
console.log(args.file.response.data.fullFilePath);
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoFrontWatermark', avatar);
|
||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath;
|
||||
this.checkIdCard(args.file.response.data.fullFilePath, 'front', 0);
|
||||
}
|
||||
@ -137,7 +150,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
title: '',
|
||||
ui: {
|
||||
offsetControl: 6,
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -153,6 +166,18 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoBackWatermark', avatar);
|
||||
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath;
|
||||
this.checkIdCard(args.file.response.data.fullFilePath, 'back', 0);
|
||||
}
|
||||
@ -234,7 +259,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '驾驶证照片',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -250,6 +275,18 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf1?.setValue('/certificatePhotoWatermark', avatar);
|
||||
this.detailData.userDriverLicenseDTO.certificatePhoto = args.file.response.data.fullFilePath;
|
||||
this.checkDriverCard(args.file.response.data.fullFilePath, 'front', 0);
|
||||
} else {
|
||||
@ -271,6 +308,14 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
// previewFile: (file: NzUploadFile) => of(file.url),
|
||||
}
|
||||
},
|
||||
roadImg: {
|
||||
title: '',
|
||||
type: 'boolean',
|
||||
// enum: [{ label: '长期', value: true }],
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
}
|
||||
},
|
||||
licenseNo: {
|
||||
title: '驾驶证号',
|
||||
type: 'string',
|
||||
@ -351,7 +396,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
title: '',
|
||||
ui: {
|
||||
offsetControl: 6,
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
fileType: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -367,6 +412,18 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf2?.setValue('/certificatePhotoWatermark', avatar);
|
||||
this.detailData.userPracticeSeniorityDTO.certificatePhoto = args.file.response.data.fullFilePath;
|
||||
this.checkQualificationCertificate(args.file.response.data.fullFilePath);
|
||||
} else {
|
||||
@ -385,7 +442,15 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
observer.complete();
|
||||
});
|
||||
},
|
||||
previewFile: (file: NzUploadFile) => of()
|
||||
// previewFile: (file: NzUploadFile) => of()
|
||||
}
|
||||
},
|
||||
agreeImg: {
|
||||
title: '',
|
||||
type: 'boolean',
|
||||
// enum: [{ label: '长期', value: true }],
|
||||
ui: {
|
||||
widget: 'custom',
|
||||
}
|
||||
},
|
||||
licenseNo: {
|
||||
@ -476,6 +541,40 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
grid: { span: 3 }
|
||||
}
|
||||
};
|
||||
this.ui2 = {
|
||||
'*': {
|
||||
spanLabelFixed: 180,
|
||||
grid: { span: 18 },
|
||||
width: 600,
|
||||
},
|
||||
$titleB:{
|
||||
grid: { span: 24 },
|
||||
},
|
||||
$certificatePhotoWatermark: {
|
||||
grid: { span: 12 },
|
||||
},
|
||||
$roadImg: {
|
||||
grid: { span: 4 },
|
||||
class: 'setCustom'
|
||||
},
|
||||
};
|
||||
this.ui3 = {
|
||||
'*': {
|
||||
spanLabelFixed: 180,
|
||||
grid: { span: 18 },
|
||||
width: 600,
|
||||
},
|
||||
$titleC:{
|
||||
grid: { span: 24 },
|
||||
},
|
||||
$certificatePhotoWatermark: {
|
||||
grid: { span: 12 },
|
||||
},
|
||||
$agreeImg: {
|
||||
grid: { span: 4 },
|
||||
class: 'setCustom'
|
||||
},
|
||||
};
|
||||
}
|
||||
getRegionToThree() {
|
||||
// 获取一、二、三级地区详情
|
||||
@ -547,7 +646,7 @@ export class CarSettleAddDriverComponent implements OnInit {
|
||||
if (side === 'front') {
|
||||
// 正面
|
||||
this.sf1.setValue('/licenseNo', res.number);
|
||||
this.sf1.setValue('/driverModel', [res.classType.toUpperCase()]);
|
||||
this.sf1.setValue('/driverModel', [res.classType?.toUpperCase()]);
|
||||
this.sf1.setValue('/validStartTime', res.validFrom);
|
||||
this.sf1.setValue('/validEndTime', res.validTo);
|
||||
this.sf1.setValue('/signingOrganization', res.issuingAuthority);
|
||||
|
||||
@ -102,7 +102,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '车头照照片',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -118,6 +118,19 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
console.log(args);
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/carFrontPhotoWatermark', avatar);
|
||||
this.detailData.carFrontPhoto = args.file.response.data.fullFilePath
|
||||
}
|
||||
},
|
||||
@ -129,11 +142,15 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
observer.complete();
|
||||
return;
|
||||
}
|
||||
console.log(_fileList)
|
||||
|
||||
observer.next(isLt2M);
|
||||
observer.complete();
|
||||
});
|
||||
},
|
||||
previewFile: (file: NzUploadFile) => of(file.url),
|
||||
// previewFile: (file: NzUploadFile) => of(
|
||||
// file?.response?.data?.fullFilePath
|
||||
// ),
|
||||
}
|
||||
},
|
||||
carNo: {
|
||||
@ -215,7 +232,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '挂靠协议',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -231,6 +248,18 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/carProtocalWatermark', avatar);
|
||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
|
||||
}
|
||||
},
|
||||
@ -277,7 +306,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '行驶证首页照片',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -293,6 +322,18 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoFrontWatermark', avatar);
|
||||
this.detailData.certificatePhotoFront = args.file.response.data.fullFilePath
|
||||
this.checkCarCard(args.file.response.data.fullFilePath, 'front');
|
||||
} else {
|
||||
@ -311,7 +352,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
observer.complete();
|
||||
});
|
||||
},
|
||||
previewFile: (file: NzUploadFile) => of(file.url),
|
||||
// previewFile: (file: NzUploadFile) => of(file.url),
|
||||
}
|
||||
},
|
||||
tipsB: {
|
||||
@ -326,7 +367,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '行驶证副页照片',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -342,6 +383,18 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/certificatePhotoBackWatermark', avatar);
|
||||
this.detailData.certificatePhotoBack = args.file.response.data.fullFilePath
|
||||
this.checkCarCard(args.file.response.data.fullFilePath, 'back');
|
||||
} else {
|
||||
@ -360,7 +413,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
observer.complete();
|
||||
});
|
||||
},
|
||||
previewFile: (file: NzUploadFile) => of(file.url),
|
||||
// previewFile: (file: NzUploadFile) => of(file.url),
|
||||
}
|
||||
},
|
||||
driverLicenseRegisterTime: {
|
||||
@ -444,7 +497,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
type: 'string',
|
||||
title: '道运证照片',
|
||||
ui: {
|
||||
action: apiConf.fileUpload,
|
||||
action: apiConf.waterFileUpload,
|
||||
accept: 'image/png,image/jpeg,image/jpg,image/gif',
|
||||
limit: 1,
|
||||
limitFileCount: 1,
|
||||
@ -460,6 +513,18 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
listType: 'picture-card',
|
||||
change: (args: any) => {
|
||||
if (args.type === 'success') {
|
||||
const avatar = [
|
||||
{
|
||||
uid: -1,
|
||||
name: 'LOGO',
|
||||
status: 'done',
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
response: {
|
||||
url: args.file.response.data.fullFileWatermarkPath,
|
||||
},
|
||||
},
|
||||
];
|
||||
this.sf?.setValue('/roadTransportPhotoWatermark', avatar);
|
||||
this.detailData.roadTransportPhoto = args.file.response.data.fullFilePath
|
||||
this.checkTransCard(args.file.response.data.fullFilePath);
|
||||
} else {
|
||||
@ -478,7 +543,7 @@ export class CarSettleCarauthComponent implements OnInit {
|
||||
observer.complete();
|
||||
});
|
||||
},
|
||||
previewFile: (file: NzUploadFile) => of(file.url),
|
||||
// previewFile: (file: NzUploadFile) => of(file.url),
|
||||
}
|
||||
},
|
||||
roadImg: {
|
||||
|
||||
@ -247,7 +247,7 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="search()" acl [acl-ability]="['WAYBILL-BULK-search']">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="false" acl [acl-ability]="['WAYBILL-BULK-export']">导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="false" acl [acl-ability]="['WAYBILL-BULK-export']" (click)="exprot()">导出</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
|
||||
@ -372,6 +372,8 @@ export class WaybillManagementBulkComponent implements OnInit {
|
||||
console.log(e);
|
||||
if (e >= 1) {
|
||||
this.resourceStatus = e + 1;
|
||||
} else {
|
||||
this.resourceStatus = 0
|
||||
}
|
||||
this.initST();
|
||||
setTimeout(() => {
|
||||
@ -473,4 +475,12 @@ export class WaybillManagementBulkComponent implements OnInit {
|
||||
this.getGoodsSourceStatistical()
|
||||
});
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.request(this.service.$api_asyncExportBulkList, this.reqParams).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('导出成功,请去下载中心下载!');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 15:31:52
|
||||
* @LastEditTime : 2022-03-24 13:49:56
|
||||
* @LastEditTime : 2022-03-29 11:10:08
|
||||
* @LastEditors : Shiming
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle-detail\\vehicle-detail.component.html
|
||||
@ -227,7 +227,7 @@
|
||||
</div>
|
||||
</nz-card>
|
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<nz-modal [(nzVisible)]="isVisible" nzWidth="1000px" [nzFooter]="nzModalFooter" [nzTitle]="modalTitle" (nzOnOk)="handleOK()" (nzOnCancel)="handleCancel()">
|
||||
<ng-container *nzModalContent>
|
||||
<div *ngIf="!modalcontent">暂无附件信息</div>
|
||||
<div [innerHTML]="modalcontent"></div>
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<!--
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-03 11:10:14
|
||||
* @LastEditTime : 2022-03-24 17:32:49
|
||||
* @LastEditTime : 2022-03-28 11:15:15
|
||||
* @LastEditors : Shiming
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\components\\vehicle\\vehicle.component.html
|
||||
@ -31,7 +31,7 @@
|
||||
</div>
|
||||
<div nz-col [nzSpan]="_$expand ? 24 : 6" [class.expend-options]="_$expand" class="text-right">
|
||||
<button nz-button nzType="primary" [nzLoading]="false" (click)="search()" acl [acl-ability]="['WAYBILL-VEHICLE-search']">查询</button>
|
||||
<button nz-button nzType="primary" [disabled]="false" acl [acl-ability]="['WAYBILL-VEHICLE-export']">导出</button>
|
||||
<button nz-button nzType="primary" [disabled]="false" acl [acl-ability]="['WAYBILL-VEHICLE-export']" (click)="exprot()">导出</button>
|
||||
<button nz-button [disabled]="false" (click)="resetSF()">重置</button>
|
||||
<button nz-button nzType="link" (click)="expandToggle()">
|
||||
{{ !_$expand ? '展开' : '收起' }}
|
||||
|
||||
@ -35,10 +35,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
compolatelQuantity: 0,
|
||||
deltQuantity: 0
|
||||
};
|
||||
constructor(
|
||||
public service: WaybillManagementServe,
|
||||
private modal: NzModalService,
|
||||
public shipperservice: ShipperBaseService) { }
|
||||
constructor(public service: WaybillManagementServe, private modal: NzModalService, public shipperservice: ShipperBaseService) {}
|
||||
|
||||
/**
|
||||
* 查询参数
|
||||
@ -55,8 +52,8 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
...params,
|
||||
createTime: {
|
||||
start: this.sf?.value?.createTime?.[0] || '',
|
||||
end: this.sf?.value?.createTime?.[1] || '',
|
||||
},
|
||||
end: this.sf?.value?.createTime?.[1] || ''
|
||||
}
|
||||
};
|
||||
}
|
||||
get selectedRows() {
|
||||
@ -103,11 +100,11 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
searchLoadingText: '搜索中...',
|
||||
allowClear: true,
|
||||
onSearch: (q: any) => {
|
||||
let str =q.replace(/^\s+|\s+$/g,"");
|
||||
let str = q.replace(/^\s+|\s+$/g, '');
|
||||
if (str) {
|
||||
return this.service
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: str})
|
||||
.pipe(map((res: any) => (res as any[]).map((i) => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||
.request(this.service.$api_enterpriceList, { enterpriseName: str })
|
||||
.pipe(map((res: any) => (res as any[]).map(i => ({ label: i.enterpriseName, value: i.id } as SFSchemaEnum))))
|
||||
.toPromise();
|
||||
} else {
|
||||
return of([]);
|
||||
@ -116,7 +113,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
change: (q: any) => {
|
||||
this.getRegionCode(q);
|
||||
}
|
||||
} as SFSelectWidgetSchema,
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
enterpriseProjectId: {
|
||||
type: 'string',
|
||||
@ -126,7 +123,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
placeholder: '请先选择货主',
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value
|
||||
},
|
||||
}
|
||||
} as SFSelectWidgetSchema
|
||||
},
|
||||
loadingPlace: {
|
||||
@ -171,8 +168,8 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
type: 'string',
|
||||
ui: {
|
||||
visibleIf: {
|
||||
_$expand: (value: boolean) => value,
|
||||
},
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
}
|
||||
},
|
||||
paymentstatus: {
|
||||
@ -242,7 +239,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
_$expand: (value: boolean) => value
|
||||
}
|
||||
} as SFDateWidgetSchema
|
||||
},
|
||||
}
|
||||
},
|
||||
type: 'object'
|
||||
};
|
||||
@ -328,7 +325,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
title: '收款人',
|
||||
className: 'text-left',
|
||||
width: '200px',
|
||||
render: 'payeeName',
|
||||
render: 'payeeName'
|
||||
},
|
||||
{
|
||||
title: '装卸货时间',
|
||||
@ -352,13 +349,13 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
text: '确认发车',
|
||||
click: _record => this.sureDepart(_record),
|
||||
iif: item => item.wayBillStatus == '2',
|
||||
acl: { ability: ['WAYBILL-VEHICLE-wholeStartCarInfo'] },
|
||||
acl: { ability: ['WAYBILL-VEHICLE-wholeStartCarInfo'] }
|
||||
},
|
||||
{
|
||||
text: '确认到车',
|
||||
click: _record => this.sureArrive(_record),
|
||||
iif: item => item.wayBillStatus == '3',
|
||||
acl: { ability: ['WAYBILL-VEHICLE-wholeUnloadCarInfo'] },
|
||||
acl: { ability: ['WAYBILL-VEHICLE-wholeUnloadCarInfo'] }
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -389,7 +386,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
}
|
||||
search() {
|
||||
this.st?.load(1);
|
||||
this.getGoodsSourceStatistical()
|
||||
this.getGoodsSourceStatistical();
|
||||
}
|
||||
selectChange(e: number) {
|
||||
console.log(e);
|
||||
@ -402,7 +399,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
/**
|
||||
* 导入货源
|
||||
*/
|
||||
importGoodsSource() { }
|
||||
importGoodsSource() {}
|
||||
/**
|
||||
*查看评价
|
||||
*/
|
||||
@ -421,7 +418,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
deltQuantity: 0
|
||||
};
|
||||
const params: any = Object.assign({}, this.reqParams || {});
|
||||
delete params.wayBillStatus
|
||||
delete params.wayBillStatus;
|
||||
this.service.request(this.service.$api_get_getWholeStatistics, params).subscribe(res => {
|
||||
if (res) {
|
||||
let totalCount = 0;
|
||||
@ -446,9 +443,9 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
this.tabs.deltQuantity = ele?.count;
|
||||
break;
|
||||
}
|
||||
totalCount += ele.count
|
||||
totalCount += ele.count;
|
||||
});
|
||||
this.tabs.totalQuantity = totalCount
|
||||
this.tabs.totalQuantity = totalCount;
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -467,7 +464,7 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
});
|
||||
modalRef.afterClose.subscribe((result: any) => {
|
||||
this.st.load(1);
|
||||
this.getGoodsSourceStatistical()
|
||||
this.getGoodsSourceStatistical();
|
||||
});
|
||||
}
|
||||
// 确认到车
|
||||
@ -484,7 +481,15 @@ export class WaybillManagementVehicleComponent implements OnInit {
|
||||
});
|
||||
modalRef.afterClose.subscribe((result: any) => {
|
||||
this.st.load(1);
|
||||
this.getGoodsSourceStatistical()
|
||||
this.getGoodsSourceStatistical();
|
||||
});
|
||||
}
|
||||
// 导出
|
||||
exprot() {
|
||||
this.service.request(this.service.$api_asyncExportWholeList, this.reqParams).subscribe((res: any) => {
|
||||
if (res) {
|
||||
this.service.msgSrv.success('导出成功,请去下载中心下载!');
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,7 +2,7 @@ import { WaybillManagementBulkComponent } from './../components/bulk/bulk.compon
|
||||
/*
|
||||
* @Author: your name
|
||||
* @Date: 2021-12-07 14:52:29
|
||||
* @LastEditTime : 2022-03-24 15:17:57
|
||||
* @LastEditTime : 2022-03-28 11:13:50
|
||||
* @LastEditors : Shiming
|
||||
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\routes\\waybill-management\\services\\waybill-management.service.ts
|
||||
@ -61,6 +61,11 @@ export class WaybillManagementServe extends BaseService {
|
||||
$api_get_getAppDriverPosition = `/api/sdc/wayBillOperate/getAppDriverPosition`;
|
||||
// 获取货主企业列表
|
||||
public $api_enterpriceList = '/api/mdc/cuc/enterpriseInfo/operate/enterpriceList';
|
||||
|
||||
// 异步导出运营后台大宗运单列表
|
||||
public $api_asyncExportBulkList = '/api/sdc/wayBillOperate/asyncExportBulkList';
|
||||
// 异步导出运营后台整车运单列表
|
||||
public $api_asyncExportWholeList = '/api/sdc/wayBillOperate/asyncExportWholeList';
|
||||
constructor(public injector: Injector) {
|
||||
super(injector);
|
||||
}
|
||||
|
||||
@ -29,7 +29,7 @@ export class DictSelectComponent implements OnInit, ControlValueAccessor {
|
||||
@Input() containsAllLabel = true; // 是否包含全部这一选项
|
||||
@Input() mode: 'multiple' | 'tags' | 'default' = 'default';
|
||||
|
||||
constructor(public service: DictSelectService, public cdr: ChangeDetectorRef) {}
|
||||
constructor(public service: DictSelectService, public cdr: ChangeDetectorRef) { }
|
||||
|
||||
writeValue(geo: string): void {
|
||||
if (geo == null) {
|
||||
@ -56,7 +56,6 @@ export class DictSelectComponent implements OnInit, ControlValueAccessor {
|
||||
if (this.dictList.length > 0 && this.containsAllLabel !== false) {
|
||||
const obj = { label: '全部', value: '' };
|
||||
this.dictList.unshift(obj);
|
||||
console.log(this.dictList);
|
||||
}
|
||||
this.cdr.markForCheck();
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
* @Author : Shiming
|
||||
* @Date : 2022-01-25 20:18:52
|
||||
* @LastEditors : Shiming
|
||||
* @LastEditTime : 2022-03-21 14:14:06
|
||||
* @LastEditTime : 2022-03-29 10:34:14
|
||||
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\rebate-table\\rebate-table.component.html
|
||||
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
||||
-->
|
||||
@ -37,16 +37,15 @@
|
||||
</td>
|
||||
<td nzWidth="220px" nzAlign="center" >
|
||||
<div >
|
||||
<nz-select ngModel="lucy">
|
||||
<nz-option nzValue="jack" nzLabel="Jack154654564654"></nz-option>
|
||||
<nz-option nzValue="lucy" nzLabel="Lucy"></nz-option>
|
||||
</nz-select>
|
||||
<nz-select style="min-width: 150px;" [(ngModel)]="item.gradeConfigId" >
|
||||
<nz-option *ngFor="let item of grage" [nzValue]="item.id" [nzLabel]="item.gradeName"></nz-option>
|
||||
</nz-select>
|
||||
</div>
|
||||
</td>
|
||||
<td nzWidth="220px" nzAlign="center" >
|
||||
<div style=" margin-left: 26%">
|
||||
<nz-input-group nzPrefix="=">
|
||||
<nz-input-number [(ngModel)]="item.baserebateRate" [nzMin]="0" nzSize="small"
|
||||
<nz-input-number [(ngModel)]="item.startAmount" [nzMin]="0" nzSize="small" (ngModelChange)="changeendAmount($event,i)"
|
||||
>
|
||||
</nz-input-number>
|
||||
</nz-input-group>
|
||||
@ -56,7 +55,7 @@
|
||||
<td nzWidth="220px" nzAlign="center" >
|
||||
<div style=" margin-left: 26%">
|
||||
<nz-input-group nzPrefix="<">
|
||||
<nz-input-number [(ngModel)]="item.blanketrebateRate" [nzMin]="0" nzSize="small" >
|
||||
<nz-input-number [(ngModel)]="item.endAmount" [nzMin]="0" nzSize="small" >
|
||||
</nz-input-number>
|
||||
</nz-input-group>
|
||||
</div>
|
||||
@ -64,7 +63,7 @@
|
||||
<td nzWidth="220px" nzAlign="center" >
|
||||
<div style=" margin-left: 26%">
|
||||
<nz-input-group [nzAddOnAfter]="addOnAfterTemplate2">
|
||||
<nz-input-number [(ngModel)]="item.baserebateRate" [nzMin]="0" nzSize="small"
|
||||
<nz-input-number [(ngModel)]="item.managementFeeRatio" [nzMin]="0" nzSize="small"
|
||||
>
|
||||
</nz-input-number>
|
||||
</nz-input-group>
|
||||
|
||||
@ -1,87 +1,90 @@
|
||||
import { debounceTime } from 'rxjs/operators';
|
||||
import { Subject } from 'rxjs';
|
||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';
|
||||
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, Output, ViewChild } from '@angular/core';
|
||||
import { BaseService } from '@shared';
|
||||
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
|
||||
|
||||
import { EventEmitter} from '@angular/core'
|
||||
@Component({
|
||||
selector: 'app-rebate-table',
|
||||
templateUrl: './rebate-table.component.html',
|
||||
styleUrls: ['./rebate-table.component.less']
|
||||
})
|
||||
export class RebateTableComponent implements OnInit {
|
||||
data: any[] = [];
|
||||
@Input() data: any =[];
|
||||
@Output()
|
||||
private dataChange: EventEmitter<any> = new EventEmitter();
|
||||
emit() {
|
||||
this.dataChange.emit(this.data)
|
||||
}
|
||||
headers: any[] = [];
|
||||
gradeConfigId: string ='';
|
||||
grage: any[] = [];
|
||||
formatterDollar = (value: number): string => `${value}`;
|
||||
changeSub = new Subject<string>();
|
||||
constructor(public service: BaseService, private cdr: ChangeDetectorRef) {}
|
||||
|
||||
ngOnInit(): void {
|
||||
this.data = [
|
||||
{
|
||||
gradeConfigId: '',
|
||||
startAmount: 0,
|
||||
endAmount: 0,
|
||||
managementFeeRatio: 0,
|
||||
}
|
||||
];
|
||||
this.loadData();
|
||||
this.changeEndKmAction();
|
||||
this.changeendAmountAction();
|
||||
}
|
||||
|
||||
loadData() {
|
||||
this.service.request('/api/mdc/cuc/insuranceConfig/list').subscribe(res => {
|
||||
this.service.request('/api/mdc/partnerGradeConfig/listPartnerGradeConfig').subscribe(res => {
|
||||
if (res) {
|
||||
console.log(res);
|
||||
this.data = res;
|
||||
this.grage = res;
|
||||
this.cdr.detectChanges();
|
||||
}
|
||||
});
|
||||
this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [
|
||||
"rebate.config.minrebatePrice"
|
||||
]).subscribe(res => {
|
||||
if (res) {
|
||||
console.log(res);
|
||||
}
|
||||
});
|
||||
// this.service.request('/api/mdc/pbc/sysConfigItem/findItemValueByItemKeys', [
|
||||
// "rebate.config.minrebatePrice"
|
||||
// ]).subscribe(res => {
|
||||
// if (res) {
|
||||
// console.log(res);
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改结束车长
|
||||
* @param event 车长
|
||||
* @param i 下标
|
||||
*/
|
||||
changeEndLength(event: any, i: number) {
|
||||
if (event <= this.headers[i].startLength) {
|
||||
this.headers[i].endLength = this.headers[i].startLength + 1;
|
||||
this.changeNextStartLength(event, i + 1);
|
||||
return;
|
||||
}
|
||||
this.headers[i].endLength = event;
|
||||
this.changeNextStartLength(event, i + 1);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 修改结束公里数
|
||||
* @param event 车长
|
||||
* @param i 下标
|
||||
*/
|
||||
changeEndKm(event: any, i: number) {
|
||||
changeendAmount(event: any, i: number) {
|
||||
if (event) {
|
||||
console.log(event);
|
||||
|
||||
this.changeSub.next(`${event},${i}`);
|
||||
}
|
||||
}
|
||||
changeEndKmAction() {
|
||||
changeendAmountAction() {
|
||||
this.changeSub.pipe(debounceTime(500)).subscribe((res: string) => {
|
||||
if (res) {
|
||||
const paras = res.split(',');
|
||||
const num = Number(paras[0]);
|
||||
const i = Number(paras[1]);
|
||||
|
||||
if (num <= this.data[i].startKm) {
|
||||
this.data[i].endKm = null;
|
||||
if (num <= this.data[i]?.startAmount) {
|
||||
console.log(this.data[i].endAmount);
|
||||
this.data[i].endAmount = null;
|
||||
setTimeout(() => {
|
||||
this.data[i].endKm = this.data[i].startKm + 1 ;
|
||||
this.data[i].endAmount = this.data[i]?.startAmount + 1 ;
|
||||
}, 0);
|
||||
this.changeNextStartKm(this.data[i].startKm + 1, i + 1);
|
||||
this.changeNextstartAmount(this.data[i]?.startAmount + 1, i + 1);
|
||||
return;
|
||||
}
|
||||
this.data[i].endKm = num;
|
||||
this.changeNextStartKm(num, i + 1);
|
||||
this.data[i].endAmount = num;
|
||||
this.changeNextstartAmount(num, i + 1);
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -90,14 +93,14 @@ export class RebateTableComponent implements OnInit {
|
||||
console.log(this.data);
|
||||
|
||||
const tem = this.data[this.data?.length - 1];
|
||||
if (tem && tem.endKm) {
|
||||
if (tem) {
|
||||
this.data.push({
|
||||
endKm: '',
|
||||
startKm: tem.endKm
|
||||
gradeConfigId: '',
|
||||
startAmount: 0,
|
||||
endAmount: 0,
|
||||
managementFeeRatio: 0,
|
||||
});
|
||||
this.data = [...this.data];
|
||||
} else {
|
||||
this.service.msgSrv.warning('请填写完整公里数');
|
||||
}
|
||||
}
|
||||
|
||||
@ -125,32 +128,18 @@ export class RebateTableComponent implements OnInit {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 遍历同步后置位车长
|
||||
* @param event 车长
|
||||
* @param i 下标
|
||||
*/
|
||||
private changeNextStartLength(event: number, i: number) {
|
||||
if (this.headers[i]) {
|
||||
this.headers[i].startLength = event;
|
||||
if (this.headers[i].endLength <= event) {
|
||||
this.headers[i].endLength = this.headers[i].startLength + 0.5;
|
||||
this.changeNextStartLength(event + 0.5, i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 遍历同步后置位公里数
|
||||
* @param event 车长
|
||||
* @param i 下标
|
||||
*/
|
||||
private changeNextStartKm(event: number, i: number) {
|
||||
private changeNextstartAmount(event: number, i: number) {
|
||||
if (this.data[i]) {
|
||||
this.data[i].startKm = event;
|
||||
if (this.data[i].endKm <= event) {
|
||||
this.data[i].endKm = this.data[i].startKm + 1;
|
||||
this.changeNextStartKm(event + 1, i + 1);
|
||||
this.data[i].startAmount = event;
|
||||
if (this.data[i].endAmount <= event) {
|
||||
this.data[i].endAmount = this.data[i].startAmount + 1;
|
||||
this.changeNextstartAmount(event + 1, i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ export class ShipperBaseService extends BaseService {
|
||||
map(res => {
|
||||
if (res) {
|
||||
return res.map((m: any) => {
|
||||
return { label: `${m.employeeVO?.empName}/${m.employeeVO?.mobile}`, value: m.id };
|
||||
return { label: `${m.employeeVO?.empName}/${m.employeeVO?.mobile}`, value: m.userAppId };
|
||||
});
|
||||
} else {
|
||||
return [];
|
||||
|
||||
@ -640,9 +640,14 @@
|
||||
"icon": "iconfont icon-hetong-copy",
|
||||
"group": true,
|
||||
"children": [{
|
||||
"text": "数据报表",
|
||||
"link": "/regulatory-data/dashboard"
|
||||
}]
|
||||
"text": "数据报表",
|
||||
"link": "/regulatory-data/dashboard"
|
||||
},
|
||||
{
|
||||
"text": "订单上报",
|
||||
"link": "/datatable/reporting/order"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}]
|
||||
|
||||
Reference in New Issue
Block a user