/* * @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; 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; } }