Merge branch 'master' of http://gitea.dctpay.com/hurui/high-web into ymt-dev
commit
fc19b1bab9
@ -0,0 +1,332 @@ |
||||
<!-- start 面包屑 --> |
||||
<app-breadcrumb></app-breadcrumb> |
||||
<!-- end 面包屑 --> |
||||
<!--条件搜索--> |
||||
|
||||
<nz-spin [nzSpinning]="loadingObject.status" [nzTip]="loadingObject.title"> |
||||
|
||||
<div class="inner-content"> |
||||
<form nz-form [formGroup]="searchForm" (ngSubmit)="search(searchForm.value)"> |
||||
<div nz-row> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">交易单号</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<input nz-input formControlName="orderNo" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">客户电话</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<input nz-input formControlName="memPhone" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">油卡卡号</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<input nz-input formControlName="oilCardNo" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">创建时间</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<nz-range-picker |
||||
[nzShowTime]="{ nzHideDisabledOptions: true }" |
||||
formControlName="createTime" |
||||
nzFormat="yyyy-MM-dd HH:mm:ss" |
||||
></nz-range-picker> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">支付时间</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<nz-range-picker |
||||
[nzShowTime]="{ nzHideDisabledOptions: true }" |
||||
formControlName="payTime" |
||||
nzFormat="yyyy-MM-dd HH:mm:ss" |
||||
></nz-range-picker> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">交易状态</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<nz-select formControlName="status" nzAllowClear> |
||||
<nz-option *ngFor="let item of orderStatusArray" nzValue="{{item.codeValue}}" nzLabel="{{item.codeName}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div nz-row *ngIf="isCollapse"> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">支付方式</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<nz-select formControlName="payType" nzAllowClear> |
||||
<nz-option *ngFor="let item of payTypeArray" nzValue="{{item.codeValue}}" nzLabel="{{item.codeName}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="8">退款时间</nz-form-label> |
||||
<nz-form-control [nzSpan]="14"> |
||||
<nz-range-picker |
||||
[nzShowTime]="{ nzHideDisabledOptions: true }" |
||||
formControlName="refundTimeArray" |
||||
nzFormat="yyyy-MM-dd HH:mm:ss" |
||||
></nz-range-picker> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
|
||||
</div> |
||||
|
||||
<div nz-row> |
||||
<div nz-col nzSpan="24" class="search-button"> |
||||
<button nz-button nzType="primary"><i nz-icon nzType="search" nzTheme="outline"></i>搜索</button> |
||||
<button nz-button nzType="default" (click)="resetSearchForm()"><i nz-icon nzType="reload" nzTheme="outline"></i>重置</button> |
||||
<a class="collapse" (click)="toggleCollapse()">更多条件<i nz-icon [nzType]="!isCollapse ? 'down' : 'up'"></i></a> |
||||
</div> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
|
||||
<div class="inner-content"> |
||||
<span>共计 {{dataObject.total?dataObject.total:0}} 条数据</span> |
||||
<div class="operating-button"> |
||||
<button nz-button nzType="primary" class="right-btn" (click)="excelOrder()"><i nz-icon nzType="export" nzTheme="outline"></i>导出订单</button> |
||||
</div> |
||||
|
||||
<!--数组表格 --> |
||||
<nz-table #basicTable |
||||
nzShowPagination |
||||
nzShowSizeChanger |
||||
nzBordered |
||||
[nzData]="dataObject.list" |
||||
[nzTotal]="dataObject.total" |
||||
[nzFrontPagination]="false" |
||||
[nzLoading]="tableLoading" |
||||
[nzPageIndex]="whereObject.pageNum" |
||||
(nzPageIndexChange)="requestOrderData($event)" |
||||
(nzPageSizeChange)="pageSizeChang($event)" |
||||
[nzPageSizeOptions]="[10,20,50,100]" |
||||
[nzScroll]="{ x: '900px'}" |
||||
> |
||||
<thead> |
||||
<tr> |
||||
<th nzWidth="120px">交易单号</th> |
||||
<th nzWidth="120px">客户电话</th> |
||||
<th nzWidth="120px">油卡卡号</th> |
||||
<th nzWidth="80px">充值金额</th> |
||||
<th nzWidth="80px">赠送金额</th> |
||||
<th nzWidth="100px">实际到账金额</th> |
||||
<th nzWidth="80px">支付金额</th> |
||||
<th nzWidth="120px">创建时间</th> |
||||
<th nzWidth="120px">支付时间</th> |
||||
<th nzWidth="120px">退款时间</th> |
||||
<th nzWidth="80px">交易状态</th> |
||||
<th nzWidth="80px" nzRight="0px">操作</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<tr *ngFor="let data of basicTable.data;let i = index" [style]="{ color: data.color}"> |
||||
<td>{{data.orderNo}}</td> |
||||
<td>{{data.memPhone}}</td> |
||||
<td>{{data.oildCard}}</td> |
||||
<td>{{data.goodsActualPrice}}</td> |
||||
<td>{{data.givePrice}}</td> |
||||
<td>{{data.goodsPrice}}</td> |
||||
<td>{{data.payRealPrice!=null?data.payRealPrice:'未支付'}}</td> |
||||
<td>{{data.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td> |
||||
<td>{{data.payTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td> |
||||
<td>{{data.refundTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td> |
||||
<td>{{data.orderStatus}}</td> |
||||
<td nzRight="0px" class="table-td-operation"> |
||||
<a nz-dropdown [nzDropdownMenu]="menu"> 操作列表 <i nz-icon nzType="down"></i> </a> |
||||
<nz-dropdown-menu #menu="nzDropdownMenu"> |
||||
<ul nz-menu nzSelectable> |
||||
<li (click)="showOrderDetail(data.orderNo)" nz-menu-item>交易详情</li> |
||||
<li *ngIf="data.exceptionStatus == true" (click)="showRefund(data.orderNo)" nz-menu-item>交易退款</li> |
||||
<li *ngIf="data.orderStatus == '已退款'" (click)="showRefundRecord(data.orderNo)" nz-menu-item>退款记录</li> |
||||
</ul> |
||||
</nz-dropdown-menu> |
||||
</td> |
||||
</tr> |
||||
</tbody> |
||||
</nz-table> |
||||
</div> |
||||
</nz-spin> |
||||
|
||||
|
||||
<nz-modal [(nzVisible)]="orderDetailModal" nzTitle="交易详情" (nzOnCancel)="closeOrderDetail()" [nzFooter]="null" |
||||
nzWidth="1000px" [nzBodyStyle]=" { padding: '5px 5px 30px 5px'}"> |
||||
<nz-spin [nzSpinning]="orderDetailModalLoading"> |
||||
<nz-tabset [nzTabPosition]="'top'" [nzType]="'card'" class="order-oil-tab"> |
||||
<nz-tab nzTitle="交易信息"> |
||||
<nz-descriptions nzBordered [nzColumn]="2" [nzSize]="'middle'"> |
||||
<nz-descriptions-item nzTitle="交易订单号">{{orderDetailObject.orderNo}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="第三方交易号">{{orderDetailObject.paySerialNo!=null?orderDetailObject.paySerialNo:'无'}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="客户手机号">{{orderDetailObject.memPhone}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="交易状态">{{orderDetailObject.orderStatus | orderStatus}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="支付方式">{{orderDetailObject.payType | orderPayType}}</nz-descriptions-item> |
||||
<!-- <nz-descriptions-item nzTitle="支付卡号" *ngIf="orderDetailObject.payType != null && (orderDetailObject.payType == 4 || orderDetailObject.tradeOrder.payType == 7)"> |
||||
{{orderDetailObject.memCardNo}} |
||||
</nz-descriptions-item>--> |
||||
<nz-descriptions-item nzTitle="优惠券">{{orderDetailObject.memDiscountName?orderDetailObject.memDiscountName:'无'}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="返利">{{orderDetailObject.whetherRebate?'是':'否'}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="备注">{{orderDetailObject.remarks}}</nz-descriptions-item> |
||||
</nz-descriptions> |
||||
|
||||
<nz-divider nzText="支付信息"></nz-divider> |
||||
<nz-descriptions nzBordered [nzColumn]="3" [nzSize]="'middle'"> |
||||
<nz-descriptions-item nzTitle="交易总额" >{{orderDetailObject.totalPrice}} 元</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="优惠信息" nzSpan="2"> |
||||
<span nz-typography>总优惠: {{orderDetailObject.totalDeductionPrice}} 元</span><br> |
||||
<span nz-typography>加油优惠: {{orderDetailObject.deductionProductPrice}} 元</span><br> |
||||
<span nz-typography>优惠券优惠: {{orderDetailObject.deductionCouponPrice}} 元</span><br> |
||||
</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="应付金额" >{{orderDetailObject.payablePrice}} 元</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="积分抵扣" >{{orderDetailObject.payGold / 100}} 元 </nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="实付金额" > |
||||
{{orderDetailObject.payRealPrice!=null?orderDetailObject.payRealPrice+' 元':'未支付'}} |
||||
</nz-descriptions-item> |
||||
</nz-descriptions> |
||||
|
||||
</nz-tab> |
||||
<nz-tab nzTitle="交易时间"> |
||||
<nz-card> |
||||
<nz-timeline> |
||||
<nz-timeline-item *ngIf="orderDetailObject.createTime != null">创建时间:{{orderDetailObject.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</nz-timeline-item> |
||||
<nz-timeline-item *ngIf="orderDetailObject.cancelTime != null">取消时间:{{orderDetailObject.cancelTime | date : 'yyyy-MM-dd HH:mm:ss'}}</nz-timeline-item> |
||||
<nz-timeline-item *ngIf="orderDetailObject.payTime != null">支付时间:{{orderDetailObject.payTime | date : 'yyyy-MM-dd HH:mm:ss'}}</nz-timeline-item> |
||||
<nz-timeline-item *ngIf="orderDetailObject.finishTime != null">完成时间:{{orderDetailObject.finishTime | date : 'yyyy-MM-dd HH:mm:ss'}}</nz-timeline-item> |
||||
<nz-timeline-item *ngIf="orderDetailObject.refundTime != null">退款时间:{{orderDetailObject.refundTime | date : 'yyyy-MM-dd HH:mm:ss'}}</nz-timeline-item> |
||||
</nz-timeline> |
||||
</nz-card> |
||||
</nz-tab> |
||||
<nz-tab nzTitle="产品信息"> |
||||
<nz-table #childOrder [nzData]="orderDetailObject.highChildOrderList" [nzHideOnSinglePage]="true" [nzScroll]="{ x: '1000px'}"> |
||||
<thead> |
||||
<tr> |
||||
<th nzWidth="110px">订单编号</th> |
||||
<th nzWidth="60px">产品类型</th> |
||||
<th nzWidth="150px">产品名称</th> |
||||
<th nzWidth="80px">产品规格</th> |
||||
<th nzWidth="60px">数量</th> |
||||
<th nzWidth="60px">单价</th> |
||||
<th nzWidth="60px">总价</th> |
||||
<th nzWidth="80px">订单状态</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<tr *ngFor="let data of childOrder.data"> |
||||
<td>{{ data.childOrderNo}}</td> |
||||
<td>{{ data.goodsType | orderChildGoodsType}}</td> |
||||
<td nzEllipsis> |
||||
{{ data.goodsName }} |
||||
<nz-tag *ngIf="data.giveawayType == 1" [nzColor]="'magenta'">赠品</nz-tag> |
||||
</td> |
||||
<td>{{ data.goodsSpecName }}</td> |
||||
<td>{{ data.saleCount }}</td> |
||||
<td>{{ data.goodsActualPrice }} 元</td> |
||||
<td>{{ data.totalActualPrice }} 元</td> |
||||
<td>{{ data.childOrderStatus | orderChildStatus}} </td> |
||||
</tr> |
||||
</tbody> |
||||
</nz-table> |
||||
</nz-tab> |
||||
</nz-tabset> |
||||
</nz-spin> |
||||
</nz-modal> |
||||
|
||||
<nz-modal [(nzVisible)]="refundModal" nzTitle="交易退款" (nzOnCancel)="closeRefund()" [nzFooter]="null" nzWidth="800px"> |
||||
<nz-spin [nzSpinning]="loadingObject.status" [nzTip]="loadingObject.title"> |
||||
<form nz-form [formGroup]="refundForm"> |
||||
<nz-form-item> |
||||
<nz-form-label>交易单号</nz-form-label> |
||||
<nz-form-control> |
||||
<input nz-input formControlName="orderNo" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
|
||||
<nz-form-item> |
||||
<nz-form-label>退款备注</nz-form-label> |
||||
<nz-form-control> |
||||
<textarea rows="4" nz-input formControlName="remarks" maxlength="100"></textarea> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<div style="text-align: center;"> |
||||
<button nz-button [nzType]="'primary'" (click)="submitRefundConfirm()">提交退款</button> |
||||
</div> |
||||
</form> |
||||
</nz-spin> |
||||
</nz-modal> |
||||
|
||||
<nz-modal [(nzVisible)]="refundRecordModal" nzTitle="退款记录" (nzOnCancel)="closeRefundRecord()" [nzFooter]="null" |
||||
nzWidth="1000px" [nzBodyStyle]=" { padding: '5px 5px 30px 5px'}"> |
||||
<nz-table #refundRecord [nzData]="refundRefundRecordArray" |
||||
[nzFrontPagination]="false" |
||||
[nzHideOnSinglePage]="true" |
||||
[nzScroll]="{ x: '1000px'}"> |
||||
<thead> |
||||
<tr> |
||||
<th nzWidth="200px">交易单号</th> |
||||
<th nzWidth="160px">产品单号</th> |
||||
<th nzWidth="120px">客户电话</th> |
||||
<th nzWidth="120px">产品类型</th> |
||||
<th nzWidth="120px">产品名称</th> |
||||
<th nzWidth="200px">退款单号</th> |
||||
<th nzWidth="120px">退款数量</th> |
||||
<th nzWidth="120px">退款总额</th> |
||||
<th nzWidth="120px">退回金额</th> |
||||
<th nzWidth="100px">退回积分</th> |
||||
<th nzWidth="100px">退款状态</th> |
||||
<th nzWidth="180px">创建时间</th> |
||||
<th nzWidth="180px">退款时间</th> |
||||
<th nzWidth="300px">退款备注</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<tr *ngFor="let data of refundRecord.data"> |
||||
<td>{{data.orderNo}}</td> |
||||
<td>{{data.orderChildNo}}</td> |
||||
<td>{{data.memPhone}}</td> |
||||
<td>{{data.goodsType | orderChildGoodsType}}</td> |
||||
<td>{{data.goodsName}}</td> |
||||
<td>{{data.refundOrderNo}}</td> |
||||
<td>{{data.refundGoodsNum}}</td> |
||||
<td>¥{{data.returnTotalPrice}}</td> |
||||
<td>¥{{data.refundPrice}}</td> |
||||
<td>{{data.refundIntegral}}</td> |
||||
<td>{{data.refundStatus | orderRefundStatus}}</td> |
||||
<td>{{data.createTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td> |
||||
<td>{{data.refundTime | date : 'yyyy-MM-dd HH:mm:ss'}}</td> |
||||
<td nzBreakWord>{{data.refundRemark}}</td> |
||||
</tr> |
||||
</tbody> |
||||
</nz-table> |
||||
</nz-modal> |
||||
|
@ -0,0 +1,12 @@ |
||||
.collapse { |
||||
margin-left: 15px; |
||||
} |
||||
nz-range-picker { |
||||
width: 100%; |
||||
} |
||||
::ng-deep .order-oil-tab .ant-descriptions-item-label { |
||||
width: 150px; |
||||
} |
||||
::ng-deep .order-oil-tab .ant-descriptions-item-content { |
||||
width: 200px; |
||||
} |
@ -0,0 +1,25 @@ |
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing'; |
||||
|
||||
import { OrderOilCardComponent } from './order-oil-card.component'; |
||||
|
||||
describe('OrderOilCardComponent', () => { |
||||
let component: OrderOilCardComponent; |
||||
let fixture: ComponentFixture<OrderOilCardComponent>; |
||||
|
||||
beforeEach(async(() => { |
||||
TestBed.configureTestingModule({ |
||||
declarations: [ OrderOilCardComponent ] |
||||
}) |
||||
.compileComponents(); |
||||
})); |
||||
|
||||
beforeEach(() => { |
||||
fixture = TestBed.createComponent(OrderOilCardComponent); |
||||
component = fixture.componentInstance; |
||||
fixture.detectChanges(); |
||||
}); |
||||
|
||||
it('should create', () => { |
||||
expect(component).toBeTruthy(); |
||||
}); |
||||
}); |
@ -0,0 +1,473 @@ |
||||
import { Component, OnInit } from '@angular/core'; |
||||
import {environment} from '../../../../environments/environment'; |
||||
import {FormBuilder, FormGroup, Validators} from '@angular/forms'; |
||||
import {NzMessageService, NzModalService} from 'ng-zorro-antd'; |
||||
import {CommonsService} from '../../../services/commons.service'; |
||||
import {CompanyService} from '../../../services/company.service'; |
||||
import {MerchantService} from '../../../services/merchant.service'; |
||||
import {LocalStorageService} from '../../../services/local-storage.service'; |
||||
import {OrderManageService} from '../../../services/order/order-manage.service'; |
||||
import {OrderService} from '../../../services/order.service'; |
||||
import {OrganizationService} from '../../../services/organization.service'; |
||||
import {ActivatedRoute} from '@angular/router'; |
||||
import {ADMIN_INFO_OBJECT} from '../../../services/local-storage.namespace'; |
||||
|
||||
@Component({ |
||||
selector: 'app-order-oil-card', |
||||
templateUrl: './order-oil-card.component.html', |
||||
styleUrls: ['./order-oil-card.component.scss'] |
||||
}) |
||||
export class OrderOilCardComponent implements OnInit { |
||||
FILE_URL = environment.imageUrl; |
||||
roleType; |
||||
adminFlag; |
||||
|
||||
loadingObject = { |
||||
title: "加载中...", |
||||
status: false, |
||||
}; |
||||
dataObject: any = {}; |
||||
tableLoading = true; |
||||
searchForm: FormGroup; |
||||
pageNum = 1; |
||||
pageSize = 10; |
||||
whereObject: any = {}; |
||||
isCollapse = false; |
||||
|
||||
refundModal = false; |
||||
refundForm: FormGroup; |
||||
refundRefundRecordArray = []; |
||||
|
||||
refundRecordModal = false; |
||||
|
||||
orderDetailModal = false; |
||||
orderDetailModalLoading = false; |
||||
orderDetailObject: any = {} |
||||
orderStatusArray = []; |
||||
companyArray = []; |
||||
merArray = []; |
||||
payTypeArray = []; |
||||
orgIdArray = []; |
||||
|
||||
cardNo: string; |
||||
phone: string; |
||||
carLicensePlate: string; |
||||
|
||||
// 退款按钮权限
|
||||
REFUND_OIL_BTN = false; |
||||
|
||||
printDataObject = { |
||||
orderNo: null, |
||||
printData: null |
||||
}; |
||||
printModal = false; |
||||
|
||||
constructor(private modal: NzModalService, |
||||
private message: NzMessageService, |
||||
private commonsService: CommonsService, |
||||
private companyService: CompanyService, |
||||
private merchantService: MerchantService, |
||||
private store: LocalStorageService, |
||||
private orderManageService: OrderManageService, |
||||
private orderService: OrderService, |
||||
private organizationService: OrganizationService, |
||||
|
||||
private activatedRoute: ActivatedRoute, |
||||
private form: FormBuilder) { |
||||
this.roleType = Number(this.store.get(ADMIN_INFO_OBJECT)['secRole'].roleType); |
||||
this.adminFlag = Number(this.store.get(ADMIN_INFO_OBJECT)['secUser'].adminFlag); |
||||
} |
||||
|
||||
ngOnInit(): void { |
||||
let currentDate = new Date(); |
||||
currentDate.setHours(0); |
||||
currentDate.setMinutes(0); |
||||
currentDate.setSeconds(0); |
||||
let createTimeS = currentDate.getTime(); |
||||
|
||||
currentDate.setHours(23); |
||||
currentDate.setMinutes(59); |
||||
currentDate.setSeconds(59); |
||||
let createTimeE = currentDate.getTime(); |
||||
this.whereObject = { createTimeS: createTimeS, createTimeE: createTimeE}; |
||||
|
||||
this.commonsService.getDictionary("ORDER_STATUS", data => { |
||||
this.orderStatusArray = data['return_data']; |
||||
}); |
||||
|
||||
this.REFUND_OIL_BTN = this.commonsService.isBtnCompetence("BTN_REFUND_OIL_BTN"); |
||||
this.refundForm = this.form.group({ |
||||
orderNo: [{ value: null, disabled: true}, [Validators.required]], |
||||
remarks: [null], |
||||
}); |
||||
|
||||
this.searchForm = this.form.group({ |
||||
orderNo: [null], |
||||
memPhone: [null], |
||||
oilCardNo: [null], |
||||
payType: [null], |
||||
status: [null], |
||||
createTime: [[createTimeS,createTimeE]], |
||||
createTimeS: [null], |
||||
createTimeE: [null], |
||||
payTime: [null], |
||||
payTimeS: [null], |
||||
payTimeE: [null], |
||||
refundTime: [null], |
||||
refundTimeS: [null], |
||||
refundTimeE: [null], |
||||
}); |
||||
this.requestOrderData(1); |
||||
} |
||||
|
||||
/** |
||||
* 请求订单数据 |
||||
*/ |
||||
requestOrderData(pageNum: number) { |
||||
this.tableLoading = true; |
||||
if (this.cardNo != null) { |
||||
this.whereObject['memCardNo'] = this.cardNo; |
||||
} |
||||
if (this.phone != null) { |
||||
this.whereObject['memPhone'] = this.phone; |
||||
} |
||||
this.whereObject['pageNum'] = pageNum; |
||||
this.whereObject['pageSize'] = this.pageSize; |
||||
this.orderService.getOilCardOrderList(this.whereObject, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.dataObject = data['return_data']; |
||||
for (let data of this.dataObject['list']) { |
||||
if (data['exceptionStatus'] == true) { |
||||
data['color'] = 'red'; |
||||
} |
||||
} |
||||
} else { |
||||
this.modal.error(data['return_msg']); |
||||
} |
||||
this.tableLoading = false; |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* 搜索 |
||||
* @param whereObject 条件 |
||||
*/ |
||||
search(whereObject: object) { |
||||
if (whereObject['createTime'] != null && whereObject['createTime'].length > 0) { |
||||
whereObject['createTimeS'] = new Date(whereObject['createTime'][0]).getTime(); |
||||
whereObject['createTimeE'] = new Date(whereObject['createTime'][1]).getTime(); |
||||
} else { |
||||
whereObject['createTimeS'] = null; |
||||
whereObject['createTimeE'] = null; |
||||
} |
||||
|
||||
if (whereObject['payTime'] != null && whereObject['payTime'].length > 0) { |
||||
whereObject['payTimeS'] = new Date(whereObject['payTime'][0]).getTime(); |
||||
whereObject['payTimeE'] = new Date(whereObject['payTime'][1]).getTime(); |
||||
} else { |
||||
whereObject['payTimeS'] = null; |
||||
whereObject['payTimeE'] = null; |
||||
} |
||||
|
||||
if (whereObject['refundTime'] != null && whereObject['refundTime'].length > 0) { |
||||
whereObject['refundTimeS'] = new Date(whereObject['refundTime'][0]).getTime(); |
||||
whereObject['refundTimeE'] = new Date(whereObject['refundTime'][1]).getTime(); |
||||
} else { |
||||
whereObject['refundTimeS'] = null; |
||||
whereObject['refundTimeE'] = null; |
||||
} |
||||
this.whereObject = whereObject; |
||||
this.requestOrderData(1); |
||||
} |
||||
|
||||
/** |
||||
* 分页 |
||||
* @param pageSize |
||||
*/ |
||||
pageSizeChang(pageSize: number) { |
||||
this.pageSize = pageSize; |
||||
this.requestOrderData(1) |
||||
} |
||||
|
||||
/** |
||||
* 重置 |
||||
*/ |
||||
resetSearchForm(): void { |
||||
this.searchForm.reset(); |
||||
} |
||||
|
||||
/** |
||||
* 搜索条件折叠 |
||||
*/ |
||||
toggleCollapse(): void { |
||||
this.isCollapse = !this.isCollapse; |
||||
} |
||||
|
||||
/** |
||||
* 导出订单 |
||||
*/ |
||||
excelOrder() { |
||||
this.loadingObject.status = true; |
||||
this.loadingObject.title = '数据导出中...'; |
||||
|
||||
this.orderService.exportOilCardOrder(this.whereObject, data => { |
||||
if (data['return_code'] === '000000') { |
||||
window.location.href = this.FILE_URL + 'temporary/' + data['return_data']; |
||||
} else { |
||||
this.modal.error({ |
||||
nzTitle: '提示', |
||||
nzContent: data['return_msg'] |
||||
}); |
||||
} |
||||
this.loadingObject.status = false; |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* 打开订单详情 |
||||
*/ |
||||
showOrderDetail(orderNo: string) { |
||||
this.orderDetailModal = true; |
||||
this.orderDetailModalLoading = true; |
||||
|
||||
this.orderManageService.getDetailByOrderNo(orderNo, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.orderDetailObject = data['return_data']; |
||||
} else { |
||||
this.modal.error({ |
||||
nzTitle: '提示', |
||||
nzContent: data['return_msg'] |
||||
}); |
||||
} |
||||
this.orderDetailModalLoading = false; |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* 关闭订单详情 |
||||
*/ |
||||
closeOrderDetail() { |
||||
this.orderDetailModal = false; |
||||
} |
||||
|
||||
/** |
||||
* 打开退款模态框 |
||||
* @param orderNo |
||||
*/ |
||||
showRefund(orderNo: string) { |
||||
this.refundForm.patchValue({ orderNo: orderNo}) |
||||
this.refundModal = true; |
||||
} |
||||
|
||||
/** |
||||
* 提交退款确认框 |
||||
*/ |
||||
submitRefundConfirm() { |
||||
for (const i in this.refundForm.controls) { |
||||
this.refundForm.controls[i].markAsDirty(); |
||||
this.refundForm.controls[i].updateValueAndValidity(); |
||||
} |
||||
if (this.refundForm.status == null || this.refundForm.status !== 'VALID') { |
||||
this.modal.warning({ |
||||
nzTitle: '提示', |
||||
nzContent: '请填写所有必填项', |
||||
}); |
||||
return; |
||||
} |
||||
this.modal.confirm({ |
||||
nzTitle: '提示', |
||||
nzContent: '确定对交易订号('+this.refundForm.controls.orderNo.value+')进行退款吗?', |
||||
nzOnOk: () => this.submitRefund() |
||||
}); |
||||
} |
||||
|
||||
/** |
||||
* 提交退款 |
||||
* @param orderNo |
||||
*/ |
||||
submitRefund() { |
||||
this.loadingObject.status = true; |
||||
this.loadingObject.title = '处理中...'; |
||||
this.orderManageService.refundOrder(this.refundForm.controls.orderNo.value,this.refundForm.controls.remarks.value, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.modal.success({ |
||||
nzTitle: '提示', |
||||
nzContent: '操作成功', |
||||
}); |
||||
this.requestOrderData(this.whereObject.pageNum); |
||||
this.closeRefund(); |
||||
} else { |
||||
this.modal.error({ |
||||
nzTitle: '提示', |
||||
nzContent: data['return_msg'], |
||||
}); |
||||
} |
||||
this.loadingObject.status = false; |
||||
}); |
||||
this.refundModal = true; |
||||
} |
||||
|
||||
/** |
||||
* 关闭退款模态框 |
||||
* @param orderNo |
||||
*/ |
||||
closeRefund() { |
||||
this.refundModal = false; |
||||
} |
||||
|
||||
/** |
||||
* 打开退款记录模态框 |
||||
* @param orderNo |
||||
*/ |
||||
showRefundRecord(orderNo: string) { |
||||
this.orderManageService.getRefundList({orderNo: orderNo, pageNum:1, pageSize: 99}, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.refundRefundRecordArray = data['return_data']['list']; |
||||
} else { |
||||
this.modal.error(data['return_msg']); |
||||
} |
||||
}); |
||||
this.refundRecordModal = true; |
||||
} |
||||
|
||||
/** |
||||
* 关闭退款记录模态框 |
||||
* @param orderNo |
||||
*/ |
||||
closeRefundRecord() { |
||||
this.refundRecordModal = false; |
||||
} |
||||
|
||||
|
||||
showPrintModal(orderNo: string, data: PrintData) { |
||||
this.printDataObject.orderNo = orderNo; |
||||
this.printDataObject.printData = data; |
||||
this.printModal = true; |
||||
} |
||||
|
||||
cloudPrint() { |
||||
this.orderService.print(this.printDataObject.orderNo, 2, dataBack => { |
||||
if (dataBack['return_code'] === '000000') { |
||||
this.modal.success({ |
||||
nzTitle: '提示', |
||||
nzContent: '操作成功', |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
showPrintDiv() { |
||||
const data = this.printDataObject.printData; |
||||
data['createTime'] = new Date(data['createTime']).toLocaleString(); |
||||
this.printDiv(data); |
||||
} |
||||
|
||||
printDiv(data: object) { |
||||
const headstr = '<html><head><title>打印小票</title></head><body>'; |
||||
const footstr = '</body>'; |
||||
const newstr = '<div id="div_print" style="font-size: 16px;">\n' + |
||||
' <div style="float: left;margin-bottom: 150px;">\n' + |
||||
' <div style="line-height: 30px; color:#000;">\n' + |
||||
' <span style="font-size: 13px;float: left;width: 100%;">' + data['storeName'] + '</span>\n' + |
||||
' <span style="font-size: 13px;float: left;width: 100%;margin-left: 60px;">(客户存根)</span>\n' + |
||||
' </div>\n' + |
||||
' <table style="width: 100%;">\n' + |
||||
' <tbody>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">流水号:<span>' + data['orderNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">时间:<span>' + data['createTime'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">来源:<span>嗨森逛</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">油枪:<span>' + data['gasGunNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">油品:<span>' + data['gasOilNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">升数:<span>' + data['gasOilLiters'] + '升</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">实际加油升数以油站加油机为准!</td>\n' + |
||||
' </tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr><td style="float: left;margin-top: 10px;font-size: 30px;color: black">加油金额</td></tr>\n' + |
||||
' <tr><td style="font-size: 30px;color: black">¥' + data['gasRefuelPrice'] + '元</td></tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr><td style="float: left;font-size: xx-small;color: black;margin-left: 25px;">开心又省钱; 来”嗨森逛“</td></tr>\n' + |
||||
' </tbody>\n' + |
||||
' </table>\n' + |
||||
' </div>\n' + |
||||
' <div style="float: left;margin-bottom: 50px;">\n' + |
||||
' <div style="line-height: 30px; color:#000;">\n' + |
||||
' <span style="font-size: 13px;float: left;width: 100%;">' + data['storeName'] + '</span>\n' + |
||||
' <span style="font-size: 13px;float: left;width: 100%;margin-left: 60px;">(收银员存根)</span>\n' + |
||||
' </div>\n' + |
||||
' <table style="width: 100%;">\n' + |
||||
' <tbody>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">流水号:<span>' + data['orderNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">时间:<span>' + data['createTime'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">来源:<span>嗨森逛</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">油枪:<span>' + data['gasGunNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">油品:<span>' + data['gasOilNo'] + '</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">升数:<span>' + data['gasOilLiters'] + '升</span></td>\n' + |
||||
' </tr>\n' + |
||||
' <tr>\n' + |
||||
' <td style="font-size: xx-small;color: black;">实际加油升数以油站加油机为准!</td>\n' + |
||||
' </tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr><td style="float: left;margin-top: 10px;font-size: 30px;color: black">加油金额</td></tr>\n' + |
||||
' <tr><td style="font-size: 30px;color: black">¥' + data['gasRefuelPrice'] + '元</td></tr>\n' + |
||||
' <tr><td style="font-size: xx-small;color: black;">-------------------------------------------</td></tr>\n' + |
||||
' <tr><td style="float: left;font-size: xx-small;color: black;margin-left: 25px;">开心又省钱; 来”嗨森逛“</td></tr>\n' + |
||||
' </tbody>\n' + |
||||
' </table>\n' + |
||||
' </div>\n' + |
||||
'</div>'; |
||||
// const oldstr = document.body.innerHTML;
|
||||
// document.body.innerHTML = headstr + newstr + footstr;
|
||||
const newWindow = window.open('', ''); |
||||
newWindow.document.write(headstr + newstr + footstr); |
||||
newWindow.print(); |
||||
newWindow.close(); |
||||
// document.body.innerHTML = oldstr;
|
||||
// location.reload();
|
||||
return false; |
||||
} |
||||
} |
||||
|
||||
export class PrintData { |
||||
// 油站名称
|
||||
gasName = ''; |
||||
// 订单号
|
||||
orderNo = ''; |
||||
// 下单时间
|
||||
createTime = ''; |
||||
// 油品
|
||||
gasOilNo = ''; |
||||
// 加油抢号
|
||||
gasGunNo = ''; |
||||
// 加油升数
|
||||
gasOilLiters = 0; |
||||
// 加油金额
|
||||
oilPrice = 0; |
||||
} |
Loading…
Reference in new issue