Compare commits
No commits in common. '40c4f68c0137b74880a483a1af0c434f9d4ec20d' and '16732b508b6bf8fb9ba0ca41c4990cccf24f4645' have entirely different histories.
40c4f68c01
...
16732b508b
@ -1,332 +0,0 @@ |
|||||||
<!-- 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> |
|
||||||
|
|
@ -1,12 +0,0 @@ |
|||||||
.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; |
|
||||||
} |
|
@ -1,25 +0,0 @@ |
|||||||
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(); |
|
||||||
}); |
|
||||||
}); |
|
@ -1,473 +0,0 @@ |
|||||||
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