袁野 2 months ago
parent 2f4b216e88
commit 689a40f1d3
  1. 7
      src/app/data/goods/goods.namespace.ts
  2. 8
      src/app/pages/account/sys-account/sys-account.component.html
  3. 4
      src/app/pages/account/sys-account/sys-account.component.ts
  4. 31
      src/app/pages/body/index/index.component.ts
  5. 2
      src/app/pages/goods/goods-list/goods-list.component.html
  6. 10
      src/app/pages/marketing/discount-list/discount-list.component.html
  7. 6
      src/app/pages/marketing/discount-list/discount-list.component.ts
  8. 9
      src/app/pages/system/cms/cms.component.html
  9. 3
      src/app/pages/system/cms/cms.component.ts
  10. 11
      src/app/pages/trade/goods-list/goods-list.component.html
  11. 22
      src/app/pages/trade/goods-list/goods-list.component.ts
  12. 8
      src/app/pages/trade/goods-logistics-list/goods-logistics-list.component.ts
  13. 181
      src/app/pages/trade/meituan/meituan-list.component.html
  14. 0
      src/app/pages/trade/meituan/meituan-list.component.less
  15. 207
      src/app/pages/trade/meituan/meituan-list.component.ts
  16. 2
      src/app/pages/trade/trade.routes.ts
  17. 12
      src/app/services/trade/order-goods.service.ts
  18. 8
      src/environments/environment.ts

@ -45,6 +45,13 @@ export const orderPayType = [
{name: "快捷支付" , key: 3}, {name: "快捷支付" , key: 3},
{name: "工会卡" , key: 4} {name: "工会卡" , key: 4}
]; ];
export const platformCode = [
{name: "H5客户端" , key: "H5"} ,
{name: "微信小程序" , key: "WXAPPLETS"} ,
{name: "V家园" , key: "VFAMILY"},
{name: "省自机关" , key: "GZGOV"}
];
export const hltLogo = "./assets/order/hlt.png"; export const hltLogo = "./assets/order/hlt.png";
export const gzBankLogo = "./assets/order/gzbank.png"; export const gzBankLogo = "./assets/order/gzbank.png";

@ -118,6 +118,14 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
<nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24">数据权限</nz-form-label>
<nz-form-control [nzSm]="14" [nzXs]="24">
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode">
<nz-option *ngFor="let item of platformCode" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
<nz-form-item> <nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>角色权限</nz-form-label> <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>角色权限</nz-form-label>
<nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="角色权限选择有误!"> <nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="角色权限选择有误!">

@ -24,6 +24,7 @@ import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe";
import {Dictionary} from "../../../data/common/dictionary.namespace"; import {Dictionary} from "../../../data/common/dictionary.namespace";
import {SysAccountService} from "../../../services/account/sys-account.service"; import {SysAccountService} from "../../../services/account/sys-account.service";
import {RoleService} from "../../../services/role/role.service"; import {RoleService} from "../../../services/role/role.service";
import {platformCode} from "../../../data/goods/goods.namespace";
@Component({ @Component({
selector: 'app-sys-account', selector: 'app-sys-account',
@ -101,6 +102,7 @@ export class SysAccountComponent {
userName: ['', [Validators.required]], userName: ['', [Validators.required]],
loginName: ['', [Validators.required]], loginName: ['', [Validators.required]],
telephone: [''], telephone: [''],
platformCode: [''],
roleId: ['', [Validators.required]], roleId: ['', [Validators.required]],
}); });
this.accountStatus = new DictionaryPipe().getDictionaryList("SEC_USER_STATUS"); this.accountStatus = new DictionaryPipe().getDictionaryList("SEC_USER_STATUS");
@ -319,4 +321,6 @@ export class SysAccountComponent {
} }
}); });
} }
protected readonly platformCode = platformCode;
} }

@ -1,4 +1,4 @@
import {AfterViewInit, Component} from '@angular/core'; import {AfterViewInit, Component, TemplateRef, ViewChild} from '@angular/core';
import {Router, RouterLink, RouterOutlet} from "@angular/router"; import {Router, RouterLink, RouterOutlet} from "@angular/router";
import { import {
NzContentComponent, NzContentComponent,
@ -31,7 +31,7 @@ import {DataUtilsPipe} from "../../../pipes/common/data-utils.pipe";
import {GoodsListComponent} from "../../trade/goods-list/goods-list.component"; import {GoodsListComponent} from "../../trade/goods-list/goods-list.component";
import {Subject} from "rxjs"; import {Subject} from "rxjs";
import {CommunicationService} from "../../../services/common/communication.service"; import {CommunicationService} from "../../../services/common/communication.service";
import {NzModalComponent, NzModalContentDirective, NzModalModule} from "ng-zorro-antd/modal"; import {NzModalComponent, NzModalContentDirective, NzModalModule, NzModalService} from "ng-zorro-antd/modal";
import {NzResultComponent} from "ng-zorro-antd/result"; import {NzResultComponent} from "ng-zorro-antd/result";
import {NzSpinComponent} from "ng-zorro-antd/spin"; import {NzSpinComponent} from "ng-zorro-antd/spin";
import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline"; import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline";
@ -41,6 +41,8 @@ import {StatusPipe} from "../../../pipes/file/status.pipe";
import {NzPopconfirmDirective} from "ng-zorro-antd/popconfirm"; import {NzPopconfirmDirective} from "ng-zorro-antd/popconfirm";
import {NzButtonComponent} from "ng-zorro-antd/button"; import {NzButtonComponent} from "ng-zorro-antd/button";
import {NzBadgeComponent} from "ng-zorro-antd/badge"; import {NzBadgeComponent} from "ng-zorro-antd/badge";
import {NzNotificationComponent, NzNotificationService} from "ng-zorro-antd/notification";
import {OrderGoodsService} from "../../../services/trade/order-goods.service";
@Component({ @Component({
selector: 'app-index', selector: 'app-index',
@ -94,7 +96,7 @@ import {NzBadgeComponent} from "ng-zorro-antd/badge";
NzBadgeComponent NzBadgeComponent
], ],
templateUrl: './index.component.html', templateUrl: './index.component.html',
styleUrl: './index.component.less', styleUrl: './index.component.less'
}) })
export class IndexComponent { export class IndexComponent {
// 菜单数据 // 菜单数据
@ -123,13 +125,34 @@ export class IndexComponent {
private storage: BrowserStorageService, private storage: BrowserStorageService,
private communicationService: CommunicationService, private communicationService: CommunicationService,
private nzConfigService: NzConfigService, private nzConfigService: NzConfigService,
private iconService: IconService,
private fileService: FileService, private fileService: FileService,
private message: NzMessageService, private message: NzMessageService,
private orderGoodsService: OrderGoodsService,
private modal: NzModalService,
private router: Router, // 路由 private router: Router, // 路由
private login: LoginService private login: LoginService
) { ) {
this.orderGoodsService.goodsOrderCount((data: any) => {
if (data['return_code'] == '000000') {
if (data['return_data'] > 0) {
this.modal.warning({
nzTitle: '物流信息通知',
nzContent: '当前存在' + data['return_data'] + '条未发货订单,请尽快千万发货!',
nzOkText: '去发货',
nzOkType: 'primary',
nzOkDanger: true,
nzOnOk: () => {
this.router.navigateByUrl('/admin/trade/goods-logistics-list?title=物流订单').then(r => console.log("返回内容" ,r));
},
nzCancelText: '暂不处理',
nzOnCancel: () => console.log('Cancel')
});
}
}
});
this.communicationService.currentMessage.subscribe(message => { this.communicationService.currentMessage.subscribe(message => {
this.showComponent = true; this.showComponent = true;
this.fileRecords(); this.fileRecords();

@ -221,7 +221,6 @@
nzAction="{{baseUrl}}fileUpload/fileUpload" nzAction="{{baseUrl}}fileUpload/fileUpload"
nzListType="picture-card" nzListType="picture-card"
[(nzFileList)]="bannerImg" [(nzFileList)]="bannerImg"
[nzMultiple]="true"
[nzShowButton]="bannerImg.length < 20" [nzShowButton]="bannerImg.length < 20"
[nzPreview]="handlePreview" [nzPreview]="handlePreview"
[nzBeforeUpload]="beforeUpload" [nzBeforeUpload]="beforeUpload"
@ -251,7 +250,6 @@
nzAction="{{baseUrl}}fileUpload/fileUpload" nzAction="{{baseUrl}}fileUpload/fileUpload"
nzListType="picture-card" nzListType="picture-card"
[(nzFileList)]="detailImg" [(nzFileList)]="detailImg"
[nzMultiple]="true"
[nzShowButton]="detailImg.length < 20" [nzShowButton]="detailImg.length < 20"
[nzPreview]="handlePreview" [nzPreview]="handlePreview"
[nzBeforeUpload]="beforeUpload" [nzBeforeUpload]="beforeUpload"

@ -34,9 +34,7 @@
<nz-form-label>优惠券平台</nz-form-label> <nz-form-label>优惠券平台</nz-form-label>
<nz-form-control> <nz-form-control>
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode"> <nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode">
<nz-option nzLabel="普惠GO" nzValue="WXAPPLETS"></nz-option> <nz-option *ngFor="let item of platformCode" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
<nz-option nzLabel="v家园" nzValue="VFAMILY"></nz-option>
<nz-option nzLabel="省直机关" nzValue="GZGOV"></nz-option>
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
@ -125,10 +123,8 @@
<nz-form-item> <nz-form-item>
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>优惠券平台</nz-form-label> <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>优惠券平台</nz-form-label>
<nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="请选择优惠券平台!"> <nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="请选择优惠券平台!">
<nz-select nzSize="large" nzShowSearch nzAllowClear formControlName="platformCode" nzPlaceHolder="请选择" > <nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode">
<nz-option nzLabel="普惠GO" nzValue="WXAPPLETS"></nz-option> <nz-option *ngFor="let item of platformCode" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
<nz-option nzLabel="v家园" nzValue="VFAMILY"></nz-option>
<nz-option nzLabel="省直机关" nzValue="GZGOV"></nz-option>
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>

@ -24,7 +24,7 @@ import {NzImageModule} from "ng-zorro-antd/image";
import {environment} from "../../../../environments/environment"; import {environment} from "../../../../environments/environment";
import {NzMessageService} from "ng-zorro-antd/message"; import {NzMessageService} from "ng-zorro-antd/message";
import {CommonService} from "../../../services/common/common.service"; import {CommonService} from "../../../services/common/common.service";
import { fallbackImg } from '../../../data/goods/goods.namespace'; import {fallbackImg, orderPayType, platformCode} from '../../../data/goods/goods.namespace';
import {DiscountService} from "../../../services/marketing/discount.service"; import {DiscountService} from "../../../services/marketing/discount.service";
import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe";
import { import {
@ -133,6 +133,8 @@ export class DiscountListComponent {
listOfSelectBind: any = [] listOfSelectBind: any = []
goodsSpecs:any = []; goodsSpecs:any = [];
protected readonly fallbackImg = fallbackImg; protected readonly fallbackImg = fallbackImg;
protected readonly platformCode = platformCode;
constructor(private fb: NonNullableFormBuilder, constructor(private fb: NonNullableFormBuilder,
private msg: NzMessageService, private msg: NzMessageService,
@ -333,4 +335,6 @@ export class DiscountListComponent {
} }
}); });
} }
protected readonly orderPayType = orderPayType;
} }

@ -21,9 +21,7 @@
<nz-form-label>平台</nz-form-label> <nz-form-label>平台</nz-form-label>
<nz-form-control> <nz-form-control>
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode"> <nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode">
<nz-option nzLabel="普惠GO" nzValue="WXAPPLETS"></nz-option> <nz-option *ngFor="let item of platformCode" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
<nz-option nzLabel="v家园" nzValue="VFAMILY"></nz-option>
<nz-option nzLabel="省直机关" nzValue="GZGOV"></nz-option>
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
@ -113,9 +111,7 @@
<nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>平台</nz-form-label> <nz-form-label [nzSm]="6" [nzXs]="24" nzRequired>平台</nz-form-label>
<nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="请选择平台"> <nz-form-control [nzSm]="14" [nzXs]="24" nzErrorTip="请选择平台">
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode"> <nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="platformCode">
<nz-option nzLabel="普惠GO" nzValue="WXAPPLETS"></nz-option> <nz-option *ngFor="let item of platformCode" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
<nz-option nzLabel="v家园" nzValue="VFAMILY"></nz-option>
<nz-option nzLabel="省直机关" nzValue="GZGOV"></nz-option>
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
@ -126,6 +122,7 @@
<nz-option nzLabel="小程序" nzValue="1"></nz-option> <nz-option nzLabel="小程序" nzValue="1"></nz-option>
<nz-option nzLabel="H5" nzValue="2"></nz-option> <nz-option nzLabel="H5" nzValue="2"></nz-option>
<nz-option nzLabel="内部跳转" nzValue="3"></nz-option> <nz-option nzLabel="内部跳转" nzValue="3"></nz-option>
<nz-option nzLabel="请求接口" nzValue="4"></nz-option>
</nz-select> </nz-select>
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>

@ -20,7 +20,7 @@ import {environment} from "../../../../environments/environment";
import {NzMessageService} from "ng-zorro-antd/message"; import {NzMessageService} from "ng-zorro-antd/message";
import {CommonService} from "../../../services/common/common.service"; import {CommonService} from "../../../services/common/common.service";
import {GoodsTypeData} from "../../../model/goods.interface"; import {GoodsTypeData} from "../../../model/goods.interface";
import { fallbackImg } from '../../../data/goods/goods.namespace'; import {fallbackImg, platformCode} from '../../../data/goods/goods.namespace';
import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select"; import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select";
import {CmsService} from "../../../services/cms/cms.service"; import {CmsService} from "../../../services/cms/cms.service";
import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe"; import {DictionaryPipe} from "../../../pipes/common/dictionary.pipe";
@ -252,4 +252,5 @@ export class CmsComponent {
} }
protected readonly platformCode = platformCode;
} }

@ -27,6 +27,14 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="6">
<nz-form-item>
<nz-form-label>完成时间</nz-form-label>
<nz-form-control>
<nz-range-picker nzSize="large" formControlName="finishTimeArray" [nzFormat]="'yyyy/MM/dd'"></nz-range-picker>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6"> <div nz-col [nzSpan]="6">
<nz-form-item> <nz-form-item>
<nz-form-label>创建时间</nz-form-label> <nz-form-label>创建时间</nz-form-label>
@ -35,6 +43,7 @@
</nz-form-control> </nz-form-control>
</nz-form-item> </nz-form-item>
</div> </div>
<div nz-col [nzSpan]="6" [hidden]="!isCollapse" *ngIf="objectType == 1"> <div nz-col [nzSpan]="6" [hidden]="!isCollapse" *ngIf="objectType == 1">
<nz-form-item> <nz-form-item>
<nz-form-label>商户</nz-form-label> <nz-form-label>商户</nz-form-label>
@ -155,6 +164,7 @@
<th nzWidth="100px">物流单号</th> <th nzWidth="100px">物流单号</th>
<th nzWidth="70px">创建时间</th> <th nzWidth="70px">创建时间</th>
<th nzWidth="70px">更新时间</th> <th nzWidth="70px">更新时间</th>
<th nzWidth="70px">完成时间</th>
<th nzRight nzWidth="70px">支付类型</th> <th nzRight nzWidth="70px">支付类型</th>
<th nzRight nzWidth="70px">支付状态</th> <th nzRight nzWidth="70px">支付状态</th>
<th nzRight nzWidth="70px">物流状态</th> <th nzRight nzWidth="70px">物流状态</th>
@ -176,6 +186,7 @@
<td>{{data.logisticsNo}}</td> <td>{{data.logisticsNo}}</td>
<td>{{ data.createTime | date: 'yyyy-MM-dd HH:mm'}}</td> <td>{{ data.createTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td>{{ data.updateTime | date: 'yyyy-MM-dd HH:mm'}}</td> <td>{{ data.updateTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td>{{ data.finishTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td nzRight> <td nzRight>
<span style="font-size: 30px;" nz-icon [nzIconfont]="data.payType | payType"></span> <span style="font-size: 30px;" nz-icon [nzIconfont]="data.payType | payType"></span>
</td> </td>

@ -31,11 +31,11 @@ import {NzIconDirective} from "ng-zorro-antd/icon";
import {NzDescriptionsModule} from "ng-zorro-antd/descriptions"; import {NzDescriptionsModule} from "ng-zorro-antd/descriptions";
import {NzBadgeComponent} from "ng-zorro-antd/badge"; import {NzBadgeComponent} from "ng-zorro-antd/badge";
import {AuditStatusPipe} from "../../../pipes/audit/audit-status.pipe"; import {AuditStatusPipe} from "../../../pipes/audit/audit-status.pipe";
import {NzTabComponent, NzTabSetComponent, NzTabsModule} from "ng-zorro-antd/tabs"; import {NzTabSetComponent, NzTabsModule} from "ng-zorro-antd/tabs";
import {NzSpinComponent} from "ng-zorro-antd/spin"; import {NzSpinComponent} from "ng-zorro-antd/spin";
import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline"; import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline";
import {NzResultComponent} from "ng-zorro-antd/result"; import {NzResultComponent} from "ng-zorro-antd/result";
import {DateSelectType, DateUtils} from "../../../utils/dateUtils.service"; import {DateUtils} from "../../../utils/dateUtils.service";
import {NzDatePickerComponent, NzRangePickerComponent} from "ng-zorro-antd/date-picker"; import {NzDatePickerComponent, NzRangePickerComponent} from "ng-zorro-antd/date-picker";
import {NzRadioButtonDirective, NzRadioComponent, NzRadioGroupComponent} from "ng-zorro-antd/radio"; import {NzRadioButtonDirective, NzRadioComponent, NzRadioGroupComponent} from "ng-zorro-antd/radio";
import {PayTypePipe} from "../../../pipes/goods/pay-type.pipe"; import {PayTypePipe} from "../../../pipes/goods/pay-type.pipe";
@ -44,8 +44,7 @@ import {OrderChildStatusPipe} from "../../../pipes/goods/order-child-status.pipe
import {DATA} from "../../../data/login/localStorage.namespace"; import {DATA} from "../../../data/login/localStorage.namespace";
import {BrowserStorageService} from "../../../utils/localStorage.service"; import {BrowserStorageService} from "../../../utils/localStorage.service";
import {MerService} from "../../../services/merchant/mer.service"; import {MerService} from "../../../services/merchant/mer.service";
import EventEmitter from "node:events";
import {Subject} from "rxjs";
import {CommunicationService} from "../../../services/common/communication.service"; import {CommunicationService} from "../../../services/common/communication.service";
@Component({ @Component({
@ -123,12 +122,9 @@ export class GoodsListComponent {
nodesBrand = []; nodesBrand = [];
orderGoodsData: any; orderGoodsData: any;
orderDetailModal = false; orderDetailModal = false;
isVisible = false;
orderDetailModalChild = false; orderDetailModalChild = false;
orderDetailModalLoading = false; orderDetailModalLoading = false;
logisticsNo: any;
logisticsTraceDetails: any; logisticsTraceDetails: any;
goodsOrderId: any;
deliveryAddress: any; deliveryAddress: any;
// 更多查询条件 // 更多查询条件
isCollapse = false; isCollapse = false;
@ -164,9 +160,11 @@ export class GoodsListComponent {
userPhone: [''], userPhone: [''],
goodsSpecsName: [''], goodsSpecsName: [''],
createTimeArray: [[]], createTimeArray: [[]],
createTimeSelect: ['1'], finishTimeArray: [[]],
createTimeS: [''], createTimeS: [''],
createTimeE: [''], createTimeE: [''],
finishTimeS: [''],
finishTimeE: [''],
goodsName: [''], goodsName: [''],
status: [''], status: [''],
payType: [''], payType: [''],
@ -203,6 +201,14 @@ export class GoodsListComponent {
this.searchForm.controls['createTimeS'].setValue(null) this.searchForm.controls['createTimeS'].setValue(null)
this.searchForm.controls['createTimeE'].setValue(null) this.searchForm.controls['createTimeE'].setValue(null)
} }
if (this.searchForm.controls['finishTimeArray'].value != null
&& this.searchForm.controls['finishTimeArray'].value.length > 0) {
this.searchForm.controls['finishTimeS'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['finishTimeArray'].value[0]) , 1).getTime());
this.searchForm.controls['finishTimeE'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['finishTimeArray'].value[1]) , 2).getTime());
} else {
this.searchForm.controls['finishTimeS'].setValue(null)
this.searchForm.controls['finishTimeE'].setValue(null)
}
this.tableData.loading = true; this.tableData.loading = true;
if (reset) { if (reset) {

@ -38,6 +38,7 @@ import {OrderChildStatusPipe} from "../../../pipes/goods/order-child-status.pipe
import {MerService} from "../../../services/merchant/mer.service"; import {MerService} from "../../../services/merchant/mer.service";
import {DATA} from "../../../data/login/localStorage.namespace"; import {DATA} from "../../../data/login/localStorage.namespace";
import {BrowserStorageService} from "../../../utils/localStorage.service"; import {BrowserStorageService} from "../../../utils/localStorage.service";
import {ActivatedRoute, Router} from "@angular/router";
@Component({ @Component({
selector: 'app-goods-logistics-list', selector: 'app-goods-logistics-list',
@ -125,6 +126,7 @@ export class GoodsLogisticsListComponent {
isCollapse = false; isCollapse = false;
merData: any; merData: any;
objectType: any; objectType: any;
logisticsStatusS: any;
protected readonly fallbackImg = fallbackImg; protected readonly fallbackImg = fallbackImg;
protected readonly orderPayType = orderPayType; protected readonly orderPayType = orderPayType;
protected readonly logisticsStatus = logisticsStatus; protected readonly logisticsStatus = logisticsStatus;
@ -134,11 +136,10 @@ export class GoodsLogisticsListComponent {
private storage: BrowserStorageService, private storage: BrowserStorageService,
private merService: MerService, private merService: MerService,
private iconService: IconService, private iconService: IconService,
private route: ActivatedRoute,
private orderGoodsService: OrderGoodsService, private orderGoodsService: OrderGoodsService,
private goodsService: GoodsService) { private goodsService: GoodsService) {
// 初始化搜索框 // 初始化搜索框
this.searchForm = this.fb.group({ this.searchForm = this.fb.group({
logisticsNo: [''], logisticsNo: [''],
@ -156,8 +157,9 @@ export class GoodsLogisticsListComponent {
goodsName: [''], goodsName: [''],
payType: [''], payType: [''],
status: [''], status: [''],
logisticsStatus: [''], logisticsStatus: ['待发货'],
}); });
this.getRequest(); this.getRequest();
this.getGoodsTypeNode(); this.getGoodsTypeNode();
this.getGoodsBrandNode(); this.getGoodsBrandNode();

@ -0,0 +1,181 @@
<form nz-form [formGroup]="searchForm" class="search_form" [nzLayout]="'vertical'">
<div nz-row [nzGutter]="24">
<div nz-col [nzSpan]="6">
<nz-form-item>
<nz-form-label>订单号</nz-form-label>
<nz-form-control>
<input nzSize="large" nz-input formControlName="orderNo" placeholder="请输入" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6">
<nz-form-item>
<nz-form-label>完成时间</nz-form-label>
<nz-form-control>
<nz-range-picker nzSize="large" formControlName="finishTimeArray" [nzFormat]="'yyyy/MM/dd'"></nz-range-picker>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6">
<nz-form-item>
<nz-form-label>创建时间</nz-form-label>
<nz-form-control>
<nz-range-picker nzSize="large" formControlName="createTimeArray" [nzFormat]="'yyyy/MM/dd'"></nz-range-picker>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6">
<nz-form-item>
<nz-form-label>支付状态</nz-form-label>
<nz-form-control>
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="status">
<nz-option *ngFor="let item of orderGoodsChild" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6" [hidden]="!isCollapse">
<nz-form-item>
<nz-form-label>商品名称</nz-form-label>
<nz-form-control>
<input nzSize="large" nz-input formControlName="goodsName" placeholder="请输入" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6" [hidden]="!isCollapse">
<nz-form-item>
<nz-form-label>子订单号</nz-form-label>
<nz-form-control>
<input nzSize="large" nz-input formControlName="childOrderNo" placeholder="请输入" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6" [hidden]="!isCollapse">
<nz-form-item>
<nz-form-label>用户手机号</nz-form-label>
<nz-form-control>
<input nzSize="large" nz-input formControlName="userPhone" placeholder="请输入" />
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6" [hidden]="!isCollapse">
<nz-form-item>
<nz-form-label>支付类型</nz-form-label>
<nz-form-control>
<nz-select nzSize="large" nzShowSearch nzAllowClear nzPlaceHolder="请选择" formControlName="payType">
<nz-option *ngFor="let item of orderPayType" nzLabel="{{item['name']}}" nzValue="{{item['key']}}"></nz-option>
</nz-select>
</nz-form-control>
</nz-form-item>
</div>
<div nz-col [nzSpan]="6" >
<a class="collapse" (click)="isCollapse = !isCollapse">
{{isCollapse ? '收起至简洁查询' : '更多查询条件'}}
<i nz-icon [nzType]="!isCollapse ? 'down' : 'up'"></i>
</a>
</div>
<div nz-col [nzSpan]="24" class="search-area">
<button nz-button [nzType]="'primary'" (click)="getRequest()">查询</button>
<button nz-button (click)="reset()">重置</button>
<!-- <button nz-button [nzType]="'primary'" (click)="getExport()">导出交易明细</button>-->
</div>
</div>
</form>
<nz-table #basicTable
[nzScroll]="{ x: '1980px' }"
[nzBordered]="true"
[nzFrontPagination]="false"
[nzShowQuickJumper]="true"
[nzShowTotal]="totalTemplate"
[(nzPageIndex)]="tablePageNum"
(nzPageIndexChange)="getRequest(false)"
[nzTotal]="tableData.total"
[nzData]="tableData.list" >
<thead>
<tr>
<th nzWidth="200px">商品名称</th>
<th nzWidth="100px">用户手机号</th>
<th nzWidth="100px">订单号</th>
<th nzWidth="100px">子订单号</th>
<th nzWidth="100px">商品价格</th>
<th nzWidth="100px">服务费</th>
<th nzWidth="100px">支付金额</th>
<th nzWidth="70px">创建时间</th>
<th nzWidth="70px">更新时间</th>
<th nzWidth="70px">完成时间</th>
<th nzRight nzWidth="70px">支付类型</th>
<th nzRight nzWidth="70px">支付状态</th>
<th nzRight nzWidth="90px">操作</th>
</tr>
</thead>
<tbody>
<tr *ngFor="let data of basicTable.data">
<td>{{data.goodsName}}</td>
<td>{{data.userPhone}}</td>
<td>{{data.orderNo}}</td>
<td>{{data.childOrderNo}}</td>
<td>¥{{data.tradeAmount}}</td>
<td>¥{{data.servicePrice}}</td>
<td>¥{{data.payRealPrice}}</td>
<td>{{ data.createTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td>{{ data.updateTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td>{{ data.finishTime | date: 'yyyy-MM-dd HH:mm'}}</td>
<td nzRight>
<span style="font-size: 30px;" nz-icon [nzIconfont]="data.payType | payType"></span>
</td>
<td nzRight>
{{data.status | orderChildStatus}}
</td>
<td nzRight>
<a (click)="showDetail(data)">详情</a>
</tr>
</tbody>
<ng-template #totalTemplate let-total>总计 {{ total }} 条</ng-template>
<nz-modal [nzWidth]="1400" [(nzVisible)]="orderDetailModal" nzTitle="订单详情" (nzOnCancel)="orderDetailModal = false" (nzOnOk)="orderDetailModal = false">
<ng-container *nzModalContent>
<nz-tabset nzType="card">
<nz-tab nzTitle="订单信息">
<nz-descriptions nzTitle="订单信息" nzBordered>
<nz-descriptions-item nzTitle="商品名称">
<p [innerHTML]="orderGoodsData.goodsName"></p>
</nz-descriptions-item>
<nz-descriptions-item nzTitle="用户手机号">{{ orderGoodsData?.userPhone }}</nz-descriptions-item>//.
<nz-descriptions-item nzTitle="订单状态">{{ orderGoodsData?.status | orderChildStatus }}</nz-descriptions-item>//.
</nz-descriptions>
</nz-tab>
<nz-tab nzTitle="支付信息">
<nz-descriptions nzTitle="支付信息" nzBordered>
<nz-descriptions-item nzTitle="订单号">{{ orderGoodsData?.orderNo }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="子订单号" [nzSpan]="2">{{ orderGoodsData?.childOrderNo }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="支付流水号" [nzSpan]="3">{{ orderGoodsData?.paySerialNo }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="商品总金额" [nzSpan]="3">{{ orderGoodsData?.totalPrice }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="优惠券优惠金额" [nzSpan]="3">{{ orderGoodsData?.couponDiscountPrice }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="积分抵扣优惠金额" [nzSpan]="3">{{ orderGoodsData?.integralDiscountPrice }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="总优惠金额(优惠券优惠金额 + 积分抵扣)" [nzSpan]="3">{{ orderGoodsData?.totalDeductionPrice }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="商品金额" [nzSpan]="3">{{ orderGoodsData?.tradeAmount }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="商品服务费" [nzSpan]="3">{{ orderGoodsData?.servicePrice }}</nz-descriptions-item>
<nz-descriptions-item nzTitle="实付金额" [nzSpan]="3">{{ orderGoodsData?.payRealPrice }}</nz-descriptions-item>
</nz-descriptions>
</nz-tab>
<nz-tab nzTitle="订单时间">
<nz-descriptions nzTitle="订单时间" nzBordered>
<nz-descriptions-item *ngIf="orderGoodsData?.createTime != null" nzTitle="创建时间">{{ orderGoodsData?.createTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
<nz-descriptions-item *ngIf="orderGoodsData?.payTime != null" nzTitle="支付时间">{{ orderGoodsData?.payTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
<nz-descriptions-item *ngIf="orderGoodsData?.cancelTime != null" nzTitle="取消时间">{{ orderGoodsData?.cancelTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
<nz-descriptions-item *ngIf="orderGoodsData?.refundTime != null" nzTitle="退款时间">{{ orderGoodsData?.refundTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
<nz-descriptions-item *ngIf="orderGoodsData?.finishTime != null" nzTitle="完成时间">{{ orderGoodsData?.finishTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
<nz-descriptions-item *ngIf="orderGoodsData?.updateTime != null" nzTitle="更新时间">{{ orderGoodsData?.updateTime | date: 'yyyy-MM-dd HH:mm' }}</nz-descriptions-item>
</nz-descriptions>
</nz-tab>
</nz-tabset>
</ng-container>
</nz-modal>

@ -0,0 +1,207 @@
import {
fallbackImg,
logisticsStatus,
orderCinemaStatus,
orderGoodsChild,
orderPayType
} from '../../../data/goods/goods.namespace';
import {NzTabSetComponent, NzTabsModule} from "ng-zorro-antd/tabs";
import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid";
import {NzFormDirective, NzFormModule} from "ng-zorro-antd/form";
import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule} from "@angular/forms";
import {NzTreeSelectComponent} from "ng-zorro-antd/tree-select";
import {NzInputDirective} from "ng-zorro-antd/input";
import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select";
import {NzButtonComponent} from "ng-zorro-antd/button";
import {NzTableComponent, NzTableModule, NzThMeasureDirective} from "ng-zorro-antd/table";
import {NzImageDirective, NzImageModule} from "ng-zorro-antd/image";
import {NzModalModule} from "ng-zorro-antd/modal";
import {DatePipe, NgClass, NgForOf, NgIf} from "@angular/common";
import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown";
import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu";
import {NzDescriptionsModule} from "ng-zorro-antd/descriptions";
import {NzPopconfirmDirective} from "ng-zorro-antd/popconfirm";
import {NzDividerComponent} from "ng-zorro-antd/divider";
import {NzIconDirective} from "ng-zorro-antd/icon";
import {NzBadgeComponent} from "ng-zorro-antd/badge";
import {NzSpinComponent} from "ng-zorro-antd/spin";
import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline";
import {NzResultComponent} from "ng-zorro-antd/result";
import {NzDatePickerComponent, NzRangePickerComponent} from "ng-zorro-antd/date-picker";
import {NzRadioButtonDirective, NzRadioComponent, NzRadioGroupComponent} from "ng-zorro-antd/radio";
import {Component} from "@angular/core";
import {PayTypePipe} from "../../../pipes/goods/pay-type.pipe";
import {OrderChildStatusPipe} from "../../../pipes/goods/order-child-status.pipe";
import {NzMessageService} from "ng-zorro-antd/message";
import {BrowserStorageService} from "../../../utils/localStorage.service";
import {MerService} from "../../../services/merchant/mer.service";
import {IconService} from "../../../services/common/icon.service";
import {MeituanService} from "../../../services/trade/meituan.service";
import {DateUtils} from "../../../utils/dateUtils.service";
import {CommunicationService} from "../../../services/common/communication.service";
import {OrderCinemaStatusPipe} from "../../../pipes/goods/order-cinema-status.pipe";
import {OrderGoodsData} from "../../../model/order.interface";
@Component({
selector: 'app-meituan-list',
standalone: true,
imports: [
NzColDirective,
NzRowDirective,
NzFormDirective,
ReactiveFormsModule,
NzTreeSelectComponent,
NzInputDirective,
NzSelectComponent,
NzOptionComponent,
NzButtonComponent,
NzTableComponent,
NzImageModule,
NzModalModule,
NzTableModule,
NzFormModule,
NzThMeasureDirective,
NgForOf,
NzImageDirective,
DatePipe,
NzDropdownMenuComponent,
NgIf,
NzMenuDirective,
NzDescriptionsModule,
NzMenuItemComponent,
NzPopconfirmDirective,
NzDividerComponent,
NzDropDownADirective,
NzDropDownDirective,
NzTabsModule,
NzIconDirective,
NzBadgeComponent,
NzTabSetComponent,
FormsModule,
NzSpinComponent,
NzTimelineItemComponent,
NgClass,
NzResultComponent,
NzTimelineComponent,
NzDatePickerComponent,
NzRadioButtonDirective,
NzRadioComponent,
NzRadioGroupComponent,
NzRangePickerComponent,
PayTypePipe,
OrderChildStatusPipe,
OrderCinemaStatusPipe,
],
templateUrl: './meituan-list.component.html',
styleUrl: './meituan-list.component.less'
})
export class MeituanListComponent {
// 表单页数
tablePageNum = 1;
// 表单数据
tableData: any = {
total: 0,
loading: false,
list: [],
};
// 搜索表单
searchForm: FormGroup;
orderDetailModal = false;
// 更多查询条件
isCollapse = false;
orderGoodsData: any;
protected readonly orderGoodsChild = orderGoodsChild;
protected readonly orderPayType = orderPayType;
constructor(private fb: NonNullableFormBuilder,
private msg: NzMessageService,
private iconService: IconService,
private communicationService: CommunicationService,
private meiTuanService: MeituanService,) {
// 初始化搜索框
this.searchForm = this.fb.group({
orderNo: [''],
childOrderNo: [''],
userPhone: [''],
createTimeArray: [[]],
finishTimeArray: [[]],
createTimeS: [''],
createTimeE: [''],
finishTimeS: [''],
finishTimeE: [''],
goodsName: [''],
status: [''],
payType: [''],
});
this.getRequest();
}
// 查询列表
public getRequest(reset: boolean = false) {
if (this.searchForm.controls['createTimeArray'].value != null
&& this.searchForm.controls['createTimeArray'].value.length > 0) {
this.searchForm.controls['createTimeS'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['createTimeArray'].value[0]) , 1).getTime());
this.searchForm.controls['createTimeE'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['createTimeArray'].value[1]) , 2).getTime());
} else {
this.searchForm.controls['createTimeS'].setValue(null)
this.searchForm.controls['createTimeE'].setValue(null)
}
if (this.searchForm.controls['finishTimeArray'].value != null
&& this.searchForm.controls['finishTimeArray'].value.length > 0) {
this.searchForm.controls['finishTimeS'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['finishTimeArray'].value[0]) , 1).getTime());
this.searchForm.controls['finishTimeE'].setValue(DateUtils.getDateHMS(new Date(this.searchForm.controls['finishTimeArray'].value[1]) , 2).getTime());
} else {
this.searchForm.controls['finishTimeS'].setValue(null)
this.searchForm.controls['finishTimeE'].setValue(null)
}
this.tableData.loading = true;
if (reset) {
this.tablePageNum = 1;
}
this.searchForm.value.pageNum = this.tablePageNum;
this.searchForm.value.pageSize = 10;
this.searchForm.value.time = new Date().getTime();
this.meiTuanService.getListMeiTuan(this.searchForm.value , (data: any) => {
if (data['return_code'] == '000000') {
this.tableData = data['return_data'];
} else {
this.msg.error(data['return_msg']);
}
this.tableData.loading = false;
});
}
// 重制
public reset() {
this.searchForm.reset();
this.getRequest();
}
// 订单导出
public getExport() {
this.searchForm.value.time = new Date().getTime();
this.meiTuanService.exportMeiTuanOrder(this.searchForm.value , (data: any) => {
if (data['return_code'] == '000000') {
this.communicationService.sendMessage(data['return_data']);
} else {
this.msg.error(data['return_msg']);
}
this.tableData.loading = false;
});
}
showDetail(data: OrderGoodsData): void {
this.orderGoodsData = data;
this.orderDetailModal = true;
}
}

@ -6,6 +6,7 @@ import {OrderRefundComponent} from "./order-refund/order-refund.component";
import {OrderCinemaComponent} from "./order-cinema/order-cinema.component"; import {OrderCinemaComponent} from "./order-cinema/order-cinema.component";
import {OrderStarbucksComponent} from "./order-starbucks/order-starbucks.component"; import {OrderStarbucksComponent} from "./order-starbucks/order-starbucks.component";
import {GoodsLogisticsListComponent} from "./goods-logistics-list/goods-logistics-list.component"; import {GoodsLogisticsListComponent} from "./goods-logistics-list/goods-logistics-list.component";
import {MeituanListComponent} from "./meituan/meituan-list.component";
export const TRADE_ROUTES: Routes = [ export const TRADE_ROUTES: Routes = [
{ path: 'goods-list', component: GoodsListComponent }, { path: 'goods-list', component: GoodsListComponent },
@ -15,4 +16,5 @@ export const TRADE_ROUTES: Routes = [
{ path: 'order-cinema', component: OrderCinemaComponent }, { path: 'order-cinema', component: OrderCinemaComponent },
{ path: 'order-starbucks', component: OrderStarbucksComponent }, { path: 'order-starbucks', component: OrderStarbucksComponent },
{ path: 'goods-logistics-list', component: GoodsLogisticsListComponent }, { path: 'goods-logistics-list', component: GoodsLogisticsListComponent },
{ path: 'meituan-list', component: MeituanListComponent },
]; ];

@ -43,4 +43,16 @@ export class OrderGoodsService {
callBack(data); callBack(data);
}); });
} }
/**
*
* @param callBack
*/
public goodsOrderCount(callBack:any) {
this.http.get(environment.orderUrl + 'orderGoods/goodsOrderCount?time=' + new Date().getTime()).subscribe(data => {
callBack(data);
});
}
} }

@ -4,10 +4,10 @@
export const environment = { export const environment = {
production: false, production: false,
baseUrl: 'https://phgcs.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址) baseUrl: 'https://phg.dctpay.com/brest/', // 测试环境服务器地址(请求数据地址)
orderUrl: 'https://phgcs.dctpay.com/order/', // 测试环境服务器地址(请求数据地址) orderUrl: 'https://phg.dctpay.com/order/', // 测试环境服务器地址(请求数据地址)
userUrl: 'https://phgcs.dctpay.com/user/', // 测试环境服务器地址(请求数据地址) userUrl: 'https://phg.dctpay.com/user/', // 测试环境服务器地址(请求数据地址)
imageUrl: 'https://phg-test.obs.cn-southwest-2.myhuaweicloud.com/', imageUrl: 'https://phg.obs.cn-southwest-2.myhuaweicloud.com/',
// //
// baseUrl: 'http://localhost:9702/brest/', // 测试环境服务器地址(请求数据地址) // baseUrl: 'http://localhost:9702/brest/', // 测试环境服务器地址(请求数据地址)
// orderUrl: 'http://localhost:9703/order/', // 测试环境服务器地址(请求数据地址) // orderUrl: 'http://localhost:9703/order/', // 测试环境服务器地址(请求数据地址)

Loading…
Cancel
Save