Files
bbq/src/app/routes/supply-goods/components/carload/carload.component.ts
2021-12-01 10:51:13 +08:00

399 lines
11 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Description:
* @Author: wsm
* @Date: 2021-07-15 09:42:57
* @LastEditTime: 2021-12-01 10:36:54
* @LastEditors: Please set LastEditors
* @Reference:
*/
import { AfterViewInit, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { ActivatedRoute, NavigationEnd, Router } from '@angular/router';
import { STComponent } from '@delon/abc/st';
import { SFComponent, SFDateWidgetSchema, SFSchema, 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('sf', { static: false }) sf!: SFComponent;
validateForm!: FormGroup;
@ViewChild('exportTemplate')
exportTemplate!: TemplateRef<any>;
ui: SFUISchema = {};
mode: any = 'search';
tabs = ['全部', '待审核', '待支付', '待发货', '待收货', '已完成'];
exportFieldList = [
'订单号',
'下单时间',
'支付方式',
'订单金额',
'订单状态',
'下单商家',
'SKU信息SKUID,商品名称+规格名称,数量)',
'配送方式',
'收件人',
'收件人电话',
'收件人地址',
];
listData: any;
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;
schema!: 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();
}
ngAfterViewInit() {
// this.router.events.pipe(filter((evt) => evt instanceof NavigationEnd)).subscribe(() => {
//
// });
}
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,
},
},
enStatus: {
type: 'string',
title: '货主状态',
enum: [
{ label: '全部', value: '' },
{ label: '正常', value: 0 },
{ label: '冻结', value: 1 },
{ label: '废弃', value: 2 },
],
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value,
},
},
},
enStatus2: {
type: 'string',
title: 'CRM审核状态',
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) {
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;
} else if (i === 4) {
this.orderStatus = '30';
this.payStatus = null;
} else if (i === 5) {
this.orderStatus = '40';
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 });
}
// 批量发货
deliverBelivery() {
this.router.navigate(['../order-batch-delivery'], { 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);
}
// 修改运单
updateLogistics(data: any) {
// 如果是多个运单
if (data.deliveryList.length > 1) {
this.updateLogisticsList(data);
} else {
data.deliveryAddrId = data.deliveryList[0].deliveryAddrId;
data.deliveryCorpSn = data.deliveryList[0].deliveryCorpSn;
data.deliverySn = data.deliveryList[0].deliverySn; // 原物流单号
data.expressName = data.deliveryList[0].expressName; // 原物流公司
data.sendName = data.deliveryList[0].sendName;
data.sendMobile = data.deliveryList[0].sendMobile;
data.sendAddr = data.deliveryList[0].sendAddr;
data.orderExpressItemVOList = data.deliveryList[0].orderExpressItemVOList; // 运单对应的发货商品信息
this.updateLogisticsPop(data);
}
}
// 修改运单中间页List
updateLogisticsList(data: any) {
const modalRef = this.modal.create({
nzTitle: '运单信息',
nzWidth: 1200,
// nzContent: OrderComponentsOrderLogisticsmessageComponent,
nzComponentParams: {
listData: data,
},
nzFooter: null,
});
modalRef.afterClose.subscribe((result) => {
if (result === true) {
this.getList();
}
});
}
// 修改运单弹窗
updateLogisticsPop(data: any) {
const modalRef = this.modal.create({
nzTitle: '已发货商品',
nzWidth: 1200,
// nzContent: OrderComponentsOrderDeliverGoodsUpdateComponent,
nzComponentParams: {
listData: data,
},
nzFooter: null,
});
modalRef.afterClose.subscribe((result) => {
if (result === true) {
this.getList();
}
});
}
// 立即发货
deliverGoods(data: any) {
// const modalRef = this.modal.create({
// nzTitle: '订单发货',
// nzWidth: 1200,
// nzContent: OrderComponentsOrderDelivergoodsComponent,
// nzComponentParams: {
// listData: data,
// },
// nzFooter: null,
// });
// modalRef.afterOpen.subscribe(() => {});
// modalRef.afterClose.subscribe((result) => {
// if (result === true) {
// this.getList();
// }
// });
this.router.navigate(['../order-deliver-goods'], { relativeTo: this.ar });
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this.sfExpand = false;
}
/**
* 立即确认
*/
deliversure(val: any) {
const modalRef = this.modal.create({
nzTitle: '订单确认',
nzWidth: 700,
// nzContent: OrderComponentsOrderOrderlistOrderSureComponent,
nzComponentParams: {
record: val,
},
nzFooter: null,
});
modalRef.afterOpen.subscribe(() => {});
modalRef.afterClose.subscribe((result) => {
if (result === true) {
this.getList();
}
});
}
/**
* 付款审核
*/
paymentReview(data: any) {
const dialogData = {
...data,
};
// this.modalHelper.create(OrderComponentsOrderOrderlistPaymentReviewComponent, { dialogData }, { size: 900 }).subscribe((res) => {
// if (res === '2') {
// this.getList();
// }
// });
}
/**
* 修改价格
*/
modifyPrice(data: any) {
const dialogData = {
...data,
};
// this.modalHelper.create(OrderComponentsOrderOrderlistModifyPriceComponent, { dialogData }, { size: 900 }).subscribe((res) => {
// if (res === '2') {
// this.getList();
// }
// });
}
/**
* 审核
*/
orderReview(data: any) {
const dialogData = {
...data,
};
// this.modalHelper.create(OrderReviewComponent, { dialogData }, { size: 900 }).subscribe((res) => {
// if (res === '2') {
// this.getList();
// }
// });
}
/**
* 查询字段个数navigate
*/
get queryFieldCount(): number {
return Object.keys(this.schema?.properties || {}).length;
}
}