import { Component } from '@angular/core'; import {environment} from "../../../../environments/environment"; import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; import {DateSelectType, DateUtils} from "../../../utils/dateUtils.service"; import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; import {NzMessageService} from "ng-zorro-antd/message"; import {NzModalComponent, NzModalModule, NzModalService} from "ng-zorro-antd/modal"; import {OrderRefundService} from "../../../services/trade/order-refund.service"; import {DatePipe, NgForOf, NgIf, NgSwitch} from "@angular/common"; import {NzButtonComponent} from "ng-zorro-antd/button"; import { NzCellEllipsisDirective, NzCellFixedDirective, NzTableCellDirective, NzTableComponent, NzTbodyComponent, NzTheadComponent, NzThMeasureDirective, NzTrDirective } from "ng-zorro-antd/table"; import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid"; import {NzDividerComponent} from "ng-zorro-antd/divider"; import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown"; import {NzFlexDirective} from "ng-zorro-antd/flex"; import {NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent} from "ng-zorro-antd/form"; import {NzIconDirective} from "ng-zorro-antd/icon"; import {NzInputDirective} from "ng-zorro-antd/input"; import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu"; import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; import {NzDatePickerComponent, NzDatePickerModule, NzRangePickerComponent} from "ng-zorro-antd/date-picker"; import {NzRadioButtonDirective, NzRadioComponent, NzRadioGroupComponent} from "ng-zorro-antd/radio"; import {NzTooltipDirective} from "ng-zorro-antd/tooltip"; import {NzTreeComponent} from "ng-zorro-antd/tree"; import {NzDescriptionsModule} from "ng-zorro-antd/descriptions"; import {NzTabComponent, NzTabSetComponent, NzTabsModule} from "ng-zorro-antd/tabs"; import {NzTimelineModule} from "ng-zorro-antd/timeline"; import {NzImageDirective, NzImageModule} from "ng-zorro-antd/image"; import {NzTypographyComponent} from "ng-zorro-antd/typography"; @Component({ selector: 'app-order-refund', standalone: true, imports: [ DatePipe, DictionaryPipe, FormsModule, NgForOf, NgIf, NzButtonComponent, NzCellFixedDirective, NzColDirective, NzDividerComponent, NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent, NzFlexDirective, NzFormControlComponent, NzFormDirective, NzFormItemComponent, NzFormLabelComponent, NzIconDirective, NzInputDirective, NzMenuDirective, NzMenuItemComponent, NzModalComponent, NzOptionComponent, NzRowDirective, NzSelectComponent, NzTableCellDirective, NzTableComponent, NzTbodyComponent, NzThMeasureDirective, NzTheadComponent, NzTrDirective, ReactiveFormsModule, NzModalModule, NzRangePickerComponent, NzDatePickerComponent, NzDatePickerModule, NzRadioButtonDirective, NzRadioComponent, NzRadioGroupComponent, NgSwitch, NzCellEllipsisDirective, NzTooltipDirective, NzTreeComponent, NzDescriptionsModule, NzTabSetComponent, NzTabComponent, NzTabsModule, NzTimelineModule, NzImageDirective, NzImageModule, NzTypographyComponent ], templateUrl: './order-refund.component.html', styleUrl: './order-refund.component.less' }) export class OrderRefundComponent { imageUrl = environment.imageUrl; // 表单页数 tablePageNum = 1; // 表单数据 tableData: any = { total: 0, list: [], }; // 搜索表单 searchForm: FormGroup; // 时间类型选择 dateTypeSelect = DateSelectType; // 退款状态 refundStatusArray = new DictionaryPipe().getDictionaryList('ORDER_REFUND_STATUS'); // 详情模态框 refundDetailVisible = false; // 详情数据 refundDetail: any = { refund: {}, orderChild: {}, }; constructor(private fb: NonNullableFormBuilder, private orderRefundService : OrderRefundService, private message: NzMessageService, private modal: NzModalService) { // 初始化搜索框 this.searchForm = this.fb.group({ userPhone: [''], orderNo: [''], orderChildNo: [''], refundOrderNo: [''], refundStatus: [''], createTimeArray: [[]], createTimeSelect: ['1'], createTimeS: [''], createTimeE: [''], }); this.createTimeInit(); this.queryData(); } /** * 获取数据 */ queryData() { if (this.searchForm.controls['createTimeArray'].value != null && this.searchForm.controls['createTimeArray'].value.length > 0) { this.searchForm.controls['createTimeS'].setValue(new Date(this.searchForm.controls['createTimeArray'].value[0]).getTime()); this.searchForm.controls['createTimeE'].setValue(new Date(this.searchForm.controls['createTimeArray'].value[1]).getTime()); } else { this.searchForm.controls['createTimeS'].setValue(null); this.searchForm.controls['createTimeE'].setValue(null); } this.searchForm.value.pageNum = this.tablePageNum; this.searchForm.value.pageSize = 10; this.searchForm.value.time = new Date().getTime(); this.orderRefundService.queryList(this.searchForm.value, (data: any) => { if (data['return_code'] == '000000') { this.tableData = data['return_data']; } }); } /** * 搜索表单提交 */ searchFormSubmit(): void { this.tablePageNum = 1; this.queryData(); } /** * 搜索表单重置 */ searchFormReset(): void { this.searchForm.reset(); } /** * 创建时间初始化 */ createTimeInit() { let createTimeSelect = this.searchForm.controls['createTimeSelect'].value; if (createTimeSelect != null) { let timeObj = DateUtils.getDate(new Date(), Number(createTimeSelect)); this.searchForm.controls['createTimeArray'].setValue([timeObj.timeS, timeObj.timeE]); } } /** * 展示详情 * @param applyNo */ showDetail(refundOrderNo: string) { const param = { refundOrderNo: refundOrderNo }; this.orderRefundService.queryRefund(param,(data: any) => { if (data['return_code'] == '000000') { this.refundDetail = data['return_data']; this.refundDetailVisible = true; } else { this.message.error(data['return_msg']); } }); } /** * 关闭详情 */ closeDetail() { this.refundDetail = {}; this.refundDetailVisible = false; } }