395 lines
10 KiB
TypeScript
395 lines
10 KiB
TypeScript
/*
|
|
* @Description:
|
|
* @Author: wsm
|
|
* @Date: 2021-07-15 09:42:57
|
|
* @LastEditTime : 2022-02-25 15:34:50
|
|
* @LastEditors : Shiming
|
|
* @Reference:
|
|
*/
|
|
import { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
|
|
import { FormBuilder, FormGroup } from '@angular/forms';
|
|
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
|
|
import { STChange, STColumn, STComponent } from '@delon/abc/st';
|
|
import { SFComponent, SFDateWidgetSchema, SFRadioWidgetSchema, SFSchema, SFTextWidgetSchema, SFUISchema } from '@delon/form';
|
|
import { ModalHelper } from '@delon/theme';
|
|
import { NzModalService } from 'ng-zorro-antd/modal';
|
|
import { filter } from 'rxjs/operators';
|
|
|
|
|
|
@Component({
|
|
selector: 'app-supply-goods-components-list-carload',
|
|
templateUrl: './carload.component.html',
|
|
styleUrls: ['./carload.component.less'],
|
|
})
|
|
export class SupplyGoodsComponentListCarloadComponent implements OnInit, AfterViewInit {
|
|
@ViewChild('st', { static: true }) st!: STComponent;
|
|
@ViewChild('stAssign', { static: true }) stAssign!: STComponent;
|
|
@ViewChild('sf', { static: false }) sf!: SFComponent;
|
|
@ViewChild('sfAssign', { static: false }) sfAssign!: SFComponent;
|
|
@ViewChild('sfFre', { static: false }) sfFre!: SFComponent;
|
|
isVisible = false;
|
|
isVisibleAssign = false;
|
|
ColumnsAssign!: STColumn[];
|
|
ui: SFUISchema = {};
|
|
uiFre: SFUISchema = {};
|
|
mode: any = 'search';
|
|
demoValue: any;
|
|
tabs = ['全部', '待接单', '已接单', '已取消'];
|
|
listData: any =[
|
|
{
|
|
id: 1,
|
|
id2: 2,
|
|
id3:3,
|
|
id4: 4,
|
|
}
|
|
]
|
|
listData2: any = [
|
|
{
|
|
clientGroupName: '姓名',
|
|
clientCount: '姓名',
|
|
clientCount2: '姓名',
|
|
clientCount3: '姓名',
|
|
}
|
|
]
|
|
orderStatus: any = '0'; // 订单状态, 10为已提交待付款, 20为已付款待发,30为已发货待收货,50取消订单,40 已完成
|
|
nzSelectedIndex = 0;
|
|
total = 1;
|
|
loading = false;
|
|
pageSize = 20;
|
|
pageIndex = 1;
|
|
toSendCount = 0;
|
|
addTimeStart = '';
|
|
addTimeEnd = '';
|
|
sfExpand = false;
|
|
_$expand = false;
|
|
ssdsad: any;
|
|
schema!: SFSchema;
|
|
schemaAssign!: SFSchema;
|
|
freightSchema!: SFSchema;
|
|
payStatus: any;
|
|
constructor(
|
|
private fb: FormBuilder,
|
|
private modal: NzModalService,
|
|
private router: Router,
|
|
private ar: ActivatedRoute,
|
|
private modalHelper: ModalHelper,
|
|
) {}
|
|
|
|
ngOnInit(): void {
|
|
this.getList();
|
|
this.initSF();
|
|
this.initUI();
|
|
this.initSFFre();
|
|
this.initSFAssign();
|
|
}
|
|
|
|
ngAfterViewInit() {
|
|
// this.router.events.pipe(filter((evt) => evt instanceof NavigationEnd)).subscribe(() => {
|
|
//
|
|
// });
|
|
}
|
|
/**
|
|
* 指定客户分组查询参数
|
|
*/
|
|
get reqParamsAssign() {
|
|
const params = Object.assign({});
|
|
return { ...params, ...this.sfAssign?.value };
|
|
}
|
|
change(change: STChange) {
|
|
console.log(change.checkbox)
|
|
}
|
|
initSFFre() {
|
|
this.freightSchema = {
|
|
properties: {
|
|
btn: {
|
|
type: 'string',
|
|
title: '是否回单',
|
|
enum: ['需要', '不需要'],
|
|
ui: {
|
|
widget: 'radio',
|
|
} as SFRadioWidgetSchema,
|
|
default: '需要',
|
|
},
|
|
contactsName: {
|
|
title: '预付',
|
|
type: 'string',
|
|
minimum:0,
|
|
maximum:99999,
|
|
ui: {
|
|
showRequired: false,
|
|
},
|
|
},
|
|
unifiedSocialCreditCode: {
|
|
title: '到付',
|
|
type: 'string',
|
|
minimum:0,
|
|
maximum:99999,
|
|
ui: {
|
|
showRequired: false,
|
|
},
|
|
},
|
|
// unifiedSocialCreditCode2: {
|
|
// title: '油卡',
|
|
// type: 'string',
|
|
// minimum:0,
|
|
// maximum:99999,
|
|
// ui: {
|
|
// showRequired: false,
|
|
// },
|
|
// },
|
|
unifiedSocialCreditCode3: {
|
|
title: '回单付',
|
|
type: 'string',
|
|
minimum:0,
|
|
maximum:99999,
|
|
ui: {
|
|
showRequired: false,
|
|
},
|
|
},
|
|
'小计': { type: 'number', ui: { widget: 'text', defaultText: '5000 text' } as SFTextWidgetSchema },
|
|
fujia: { type: 'string',title: '附加费', ui: { widget: 'custom'}},
|
|
manys: { type: 'string',title: '总费用', ui: { widget: 'custom'}},
|
|
unifiedSocia: { type: 'string',title: '总费用', ui: { widget: 'custom'}},
|
|
|
|
},
|
|
};
|
|
this.schemaAssign = {
|
|
properties: {
|
|
clientGroupName: {
|
|
title: '分组名称',
|
|
type: 'string',
|
|
ui: {
|
|
placeholder: '请输入司机姓名/手机号',
|
|
enter: (e: KeyboardEvent) => {
|
|
this.stAssign.load();
|
|
},
|
|
},
|
|
},
|
|
clientGroupName2: {
|
|
title: '分组名称',
|
|
type: 'string',
|
|
ui: {
|
|
placeholder: '请输入车牌号',
|
|
enter: (e: KeyboardEvent) => {
|
|
this.stAssign.load();
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
this.uiFre = { '*': { spanLabelFixed: 90, grid: { span: 16 }, enter: () => this.st.load() } };
|
|
}
|
|
initSFAssign() {
|
|
this.ColumnsAssign = [
|
|
{ title: '', type: 'checkbox', width: '40px', className: 'text-center' },
|
|
{ title: '司机姓名', index: 'clientGroupName', width: '300px', className: 'text-center' },
|
|
{ title: '手机号', index: 'clientCount', width: '300px', className: 'text-center' },
|
|
{ title: '车牌号', index: 'clientCount2', width: '300px', className: 'text-center' },
|
|
{ title: '状态', index: 'clientCount3', width: '300px', className: 'text-center' },
|
|
];
|
|
}
|
|
|
|
initSF() {
|
|
this.schema = {
|
|
properties: {
|
|
expand: {
|
|
type: 'boolean',
|
|
ui: {
|
|
hidden: true,
|
|
},
|
|
},
|
|
storeName: { title: '货源编号', type: 'string', ui: { showRequired: false } },
|
|
contactsName: {
|
|
title: '货物名称',
|
|
type: 'string',
|
|
ui: {
|
|
showRequired: false,
|
|
},
|
|
},
|
|
unifiedSocialCreditCode: {
|
|
title: '装货地',
|
|
type: 'string',
|
|
ui: {
|
|
showRequired: false,
|
|
},
|
|
},
|
|
unifiedSocialCreditCode2: {
|
|
title: '卸货地',
|
|
type: 'string',
|
|
ui: {
|
|
showRequired: false,
|
|
visibleIf: {
|
|
expand: (value: boolean) => value,
|
|
},
|
|
},
|
|
},
|
|
unifiedSocialCreditCode3: {
|
|
title: '货主',
|
|
type: 'string',
|
|
ui: {
|
|
showRequired: false,
|
|
visibleIf: {
|
|
expand: (value: boolean) => value,
|
|
},
|
|
},
|
|
},
|
|
enStatus2: {
|
|
type: 'string',
|
|
title: '审核状态',
|
|
enum: [
|
|
{ label: '全部', value: '' },
|
|
{ label: '正常', value: 0 },
|
|
{ label: '冻结', value: 1 },
|
|
{ label: '废弃', value: 2 },
|
|
],
|
|
default: '',
|
|
ui: {
|
|
widget: 'select',
|
|
visibleIf: {
|
|
expand: (value: boolean) => value,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
this.ui = { '*': { spanLabelFixed: 90, grid: { span: 8, gutter: 4 }, enter: () => this.st.load() } };
|
|
}
|
|
initUI() {
|
|
this.ui = {
|
|
'*': {
|
|
spanLabelFixed: 90,
|
|
grid: { span: 8 },
|
|
},
|
|
};
|
|
}
|
|
tabChange(i: number) {
|
|
console.log(i)
|
|
this.changeIndex(i);
|
|
this.getList();
|
|
}
|
|
changeIndex(i: number) {
|
|
if (i === 0) {
|
|
this.orderStatus = '0';
|
|
this.payStatus = null;
|
|
} else if (i === 1) {
|
|
this.orderStatus = '5';
|
|
this.payStatus = null;
|
|
} else if (i === 2) {
|
|
this.orderStatus = null;
|
|
this.payStatus = '10';
|
|
} else if (i === 3) {
|
|
this.orderStatus = '20';
|
|
this.payStatus = null;
|
|
}
|
|
this.pageIndex = 1;
|
|
}
|
|
getList(type?: string) {
|
|
// this.loading = true;
|
|
const params: any = {
|
|
pageSize: this.pageSize,
|
|
pageIndex: this.pageIndex,
|
|
...this.sf?.value,
|
|
orderStatus: this.orderStatus,
|
|
payStatus: this.payStatus,
|
|
createTime: this.sf?.value.createTime || [],
|
|
time: {},
|
|
};
|
|
if (this.sf?.value?.createTime) {
|
|
delete params.createTime;
|
|
params.time.start = this.sf?.value?.createTime[0];
|
|
params.time.end = this.sf?.value?.createTime[1];
|
|
}
|
|
delete params.expand;
|
|
if (type === 'search') {
|
|
params.pageIndex = 1;
|
|
}
|
|
// this.service.request(this.service.$api_get_page, params).subscribe((res) => {
|
|
// this.loading = false;
|
|
// this.listData = res.orderPage.records;
|
|
// this.toSendCount = res.toSendCount;
|
|
// this.listData.forEach((element: { goodsList: { goodsSpecJson: string }[] }) => {
|
|
// element.goodsList.forEach((item: { goodsSpecJson: string }) => {
|
|
// if (item.goodsSpecJson) {
|
|
// item.goodsSpecJson = JSON.parse(item.goodsSpecJson);
|
|
// }
|
|
// });
|
|
// });
|
|
// this.total = res.orderPage.total;
|
|
// });
|
|
}
|
|
|
|
orderExport() {
|
|
// this.service.exportStart(params, this.service.$api_export);
|
|
this.modal.create({
|
|
nzTitle: '订单导出',
|
|
// nzContent: this.exportTemplate,
|
|
// nzContent: `待导出订单总数:${this.pageInfo.total}条,确定要导出吗?`,
|
|
nzOnOk: () => {
|
|
const params: any = {
|
|
pageSize: this.pageSize,
|
|
pageIndex: this.pageIndex,
|
|
...this.sf?.value,
|
|
orderStatus: this.orderStatus,
|
|
// createTime: this.sf?.value.createTime || [],
|
|
};
|
|
delete params.expand;
|
|
},
|
|
});
|
|
}
|
|
|
|
goDetail(data: any) {
|
|
this.router.navigate(['../order-detail', data.orderSn], { relativeTo: this.ar });
|
|
}
|
|
|
|
|
|
changePageIndex(pageIndex: number) {
|
|
this.pageIndex = pageIndex;
|
|
this.getList();
|
|
}
|
|
changePageSize(value: number) {
|
|
this.pageSize = value;
|
|
this.getList();
|
|
}
|
|
expandToggle() {
|
|
this.sfExpand = !this.sfExpand;
|
|
this.sf?.setValue('/expand', this.sfExpand);
|
|
}
|
|
|
|
showApply() {
|
|
this.isVisible = true
|
|
}
|
|
showAssign() {
|
|
this.isVisibleAssign = true
|
|
}
|
|
handleOK() {
|
|
|
|
}
|
|
handleCancel(type: any) {
|
|
if(type === 'suppliersType') {
|
|
this.isVisible = false
|
|
} else if(type === 'assign') {
|
|
this.isVisibleAssign = false
|
|
}
|
|
}
|
|
/**
|
|
* 重置表单
|
|
*/
|
|
resetSF() {
|
|
this.sf.reset();
|
|
this.sfExpand = false;
|
|
}
|
|
resetSFAssign() {
|
|
this.sfAssign.reset();
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* 查询字段个数navigate
|
|
*/
|
|
get queryFieldCount(): number {
|
|
return Object.keys(this.schema?.properties || {}).length;
|
|
}
|
|
}
|