提交代码

ymt-dev
胡锐 10 months ago
parent 36e4381a14
commit 7c6b39417d
  1. 2
      src/app/admin/order-manage/order-manage-routing.module.ts
  2. 3
      src/app/admin/order-manage/order-manage.module.ts
  3. 332
      src/app/admin/order-manage/order-oil-card/order-oil-card.component.html
  4. 12
      src/app/admin/order-manage/order-oil-card/order-oil-card.component.scss
  5. 25
      src/app/admin/order-manage/order-oil-card/order-oil-card.component.spec.ts
  6. 473
      src/app/admin/order-manage/order-oil-card/order-oil-card.component.ts
  7. 17
      src/app/pipes/order/order-child-goods-type.pipe.ts
  8. 22
      src/app/services/order.service.ts

@ -14,6 +14,7 @@ import {MobileRechargeOrderListComponent} from './mobile-recharge-order-list/mob
import {HltChargeOrderComponent} from './hlt-charge-order/hlt-charge-order.component'; import {HltChargeOrderComponent} from './hlt-charge-order/hlt-charge-order.component';
import {GoodsOrderComponent} from './goods-order/goods-order.component'; import {GoodsOrderComponent} from './goods-order/goods-order.component';
import {GoodsChildOrderComponent} from './goods-child-order/goods-child-order.component'; import {GoodsChildOrderComponent} from './goods-child-order/goods-child-order.component';
import {OrderOilCardComponent} from './order-oil-card/order-oil-card.component';
const routes: Routes = [ const routes: Routes = [
@ -31,6 +32,7 @@ const routes: Routes = [
{ path: 'hlt-order-list', component: HltChargeOrderComponent}, { path: 'hlt-order-list', component: HltChargeOrderComponent},
{ path: 'goods-order', component: GoodsOrderComponent}, { path: 'goods-order', component: GoodsOrderComponent},
{ path: 'goods-child-order', component: GoodsChildOrderComponent}, { path: 'goods-child-order', component: GoodsChildOrderComponent},
{ path: 'order-oil-card', component: OrderOilCardComponent},
]; ];
@NgModule({ @NgModule({

@ -24,9 +24,10 @@ import { HltChargeOrderComponent } from './hlt-charge-order/hlt-charge-order.com
import { GoodsOrderComponent } from './goods-order/goods-order.component'; import { GoodsOrderComponent } from './goods-order/goods-order.component';
import {PreviewImageModule} from "../../common/preview-image/preview-image.module"; import {PreviewImageModule} from "../../common/preview-image/preview-image.module";
import { GoodsChildOrderComponent } from './goods-child-order/goods-child-order.component'; import { GoodsChildOrderComponent } from './goods-child-order/goods-child-order.component';
import { OrderOilCardComponent } from './order-oil-card/order-oil-card.component';
@NgModule({ @NgModule({
declarations: [OrderOilListComponent, OrderCouponListComponent, OrderIntegralRechargeComponent, OrderRefundListComponent, KfcOrderListComponent, StarbucksOrderListComponent, MemberChargeOrderListComponent, MobileRechargeOrderListComponent, PreOrderComponent,DicountPackageOrderListComponent, MemberChargeOrderListComponent, DiscountUseConditionListComponent, HltChargeOrderComponent, GoodsOrderComponent, GoodsChildOrderComponent], declarations: [OrderOilListComponent, OrderCouponListComponent, OrderIntegralRechargeComponent, OrderRefundListComponent, KfcOrderListComponent, StarbucksOrderListComponent, MemberChargeOrderListComponent, MobileRechargeOrderListComponent, PreOrderComponent,DicountPackageOrderListComponent, MemberChargeOrderListComponent, DiscountUseConditionListComponent, HltChargeOrderComponent, GoodsOrderComponent, GoodsChildOrderComponent, OrderOilCardComponent],
imports: [ imports: [
CommonModule, CommonModule,
OrderManageRoutingModule, OrderManageRoutingModule,

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

@ -27,8 +27,21 @@ export class OrderChildGoodsTypePipe implements PipeTransform {
return '星巴克'; return '星巴克';
case 10: case 10:
return '第三方充值'; return '第三方充值';
case 12: case 11:
return '实物商品'; return '实物商品购买';
case 12:
return '比邻星停车券';
case 13:
return '比邻星停车';
case 14:
return '升级会员';
case 15:
return '个人油卡充值';
case 17:
return '团购套餐';
case 18:
return '中石油卡券';
} }
} }
} }

@ -333,4 +333,26 @@ export class OrderService {
callBack(data); callBack(data);
}); });
} }
/**
*
* @param params
* @param callBack
*/
public getOilCardOrderList(params: object , callBack) {
this.http.get(environment.orderUrl + 'oilCard/getOilCardOrderList?' + this.common.getWhereCondition(params)).subscribe( data => {
callBack(data);
});
}
/**
*
* @param params
* @param callBack
*/
public exportOilCardOrder(params: object , callBack) {
this.http.get(environment.orderUrl + 'oilCard/exportOilCardOrder?' + this.common.getWhereCondition(params)).subscribe( data => {
callBack(data);
});
}
} }

Loading…
Cancel
Save