From 2e132a2bdc4de66d21d6eb2f3239330c94b71cf9 Mon Sep 17 00:00:00 2001
From: yuanye <418471657@qq.com>
Date: Wed, 22 May 2024 10:35:18 +0800
Subject: [PATCH] 1
---
src/app/app.routes.ts | 1 -
src/app/data/goods/goods.namespace.ts | 10 +
src/app/model/discount.interface.ts | 6 +-
src/app/model/order.interface.ts | 39 +++
.../goods-list/goods-list.component.html | 214 ++++++++++++++++
.../goods-list/goods-list.component.less | 12 +
.../trade/goods-list/goods-list.component.ts | 242 ++++++++++++++++++
src/app/pages/trade/trade.routes.ts | 2 +
.../pipes/order/order-goods-status.pipe.ts | 32 +++
src/app/services/trade/order-goods.service.ts | 35 +++
10 files changed, 589 insertions(+), 4 deletions(-)
create mode 100644 src/app/model/order.interface.ts
create mode 100644 src/app/pages/trade/goods-list/goods-list.component.html
create mode 100644 src/app/pages/trade/goods-list/goods-list.component.less
create mode 100644 src/app/pages/trade/goods-list/goods-list.component.ts
create mode 100644 src/app/pipes/order/order-goods-status.pipe.ts
create mode 100644 src/app/services/trade/order-goods.service.ts
diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts
index 58649d1..74f2315 100644
--- a/src/app/app.routes.ts
+++ b/src/app/app.routes.ts
@@ -1,7 +1,6 @@
import { Routes } from '@angular/router';
import {IndexComponent} from "./pages/body/index/index.component";
import {InitGuardService} from "./utils/initGuard.service";
-import {AUDIT_ROUTES} from "./pages/audit/audit.routes";
export const routes: Routes = [
{path: '', pathMatch: 'full', redirectTo: 'admin/index'},
{
diff --git a/src/app/data/goods/goods.namespace.ts b/src/app/data/goods/goods.namespace.ts
index c7853d8..74b6a34 100644
--- a/src/app/data/goods/goods.namespace.ts
+++ b/src/app/data/goods/goods.namespace.ts
@@ -1,3 +1,13 @@
export const fallbackImg = 'data:image/png;base64,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';
+export const orderGoodsStatus = [
+ {name: "待发货" , key: 1} ,
+ {name: "已发货" , key: 2},
+ {name: "配送中" , key: 3},
+ {name: "已送达" , key: 4},
+ {name: "已取消" , key: 5},
+ {name: "退货中" , key: 6},
+ {name: "已退货" , key: 7},
+ {name: "待支付" , key: 8}
+];
diff --git a/src/app/model/discount.interface.ts b/src/app/model/discount.interface.ts
index 94295b0..137c62a 100644
--- a/src/app/model/discount.interface.ts
+++ b/src/app/model/discount.interface.ts
@@ -10,14 +10,14 @@ export interface DiscountData {
effectiveNum: number;
createTime: string;
updateTime: string;
- salesEndTime: string,
+ salesEndTime: string;
}
export interface NodesDiscountGoods {
id: number;
discountId: number;
- specsId: String;
- specsName: String;
+ specsId: string;
+ specsName: string;
createTime: string;
goodsName: string;
SpecsName: string;
diff --git a/src/app/model/order.interface.ts b/src/app/model/order.interface.ts
new file mode 100644
index 0000000..30b2c5b
--- /dev/null
+++ b/src/app/model/order.interface.ts
@@ -0,0 +1,39 @@
+
+export interface OrderGoodsData {
+ id: number;
+ logisticsNo: string;
+ freightPrice: string;
+ deliveryAddressId: number;
+ deliveryAddress: string;
+ orderNo: string;
+ childOrderNo: string;
+ merId: number;
+ userId: number;
+ userPhone: string;
+ goodsId: number;
+ img: string;
+ goodsName: string;
+ goodsTypeId: number;
+ goodsTypeName: string,
+ goodsBrandId: number;
+ goodsBrandName: string;
+ goodsSpecsId: number;
+ goodsSpecsName: string;
+ goodsSpecsOriginalPrice: string;
+ goodsCount: string;
+ totalPrice: string;
+ totalDeductionPrice: string;
+ couponDiscountPrice: string;
+ integralDiscountPrice: string;
+ payRealPrice: string;
+ payChannel: string;
+ paySerialNo: string;
+ payType: number;
+ status: number;
+ createTime: string;
+ payTime: string;
+ cancelTime: string;
+ refundTime: string;
+ finishTime: string;
+ updateTime: string;
+}
diff --git a/src/app/pages/trade/goods-list/goods-list.component.html b/src/app/pages/trade/goods-list/goods-list.component.html
new file mode 100644
index 0000000..1f024dc
--- /dev/null
+++ b/src/app/pages/trade/goods-list/goods-list.component.html
@@ -0,0 +1,214 @@
+
+
+
+
+
+ 商品名称 |
+ 商品图片 |
+ 商品分类 |
+ 商品品牌 |
+ 物流单号 |
+ 创建时间 |
+ 更新时间 |
+ 状态 |
+ 操作 |
+
+
+
+
+ {{data.goodsName}} - {{data.goodsSpecsName}} |
+
+
+ |
+ {{data.goodsTypeName}} |
+ {{data.goodsBrandName}} |
+ {{data.logisticsNo}} |
+ {{ data.createTime | date: 'yyyy-MM-dd HH:mm'}} |
+ {{ data.updateTime | date: 'yyyy-MM-dd HH:mm'}} |
+ {{data.status | orderGoodsStatus}} |
+
+ 详情
+
+
+ 更多
+
+
+
+
+
+ |
+
+
+ 总计 {{ total }} 条
+
+
+
+
+
+
+
+ {{orderGoodsData?.goodsName}} - {{orderGoodsData?.goodsSpecsName}}
+ {{ orderGoodsData?.userPhone }}
+ {{ orderGoodsData?.goodsTypeName }}
+ {{ orderGoodsData?.goodsBrandName }}
+ {{ orderGoodsData?.goodsSpecsOriginalPrice }}
+ {{ orderGoodsData?.goodsCount }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ orderGoodsData?.orderNo }}
+ {{ orderGoodsData?.childOrderNo }}
+ {{ orderGoodsData?.paySerialNo }}
+ {{ orderGoodsData?.totalPrice }}
+ {{ orderGoodsData?.couponDiscountPrice }}
+ {{ orderGoodsData?.integralDiscountPrice }}
+ {{ orderGoodsData?.totalDeductionPrice }}
+ {{ orderGoodsData?.payRealPrice }}
+
+
+
+
+ {{ orderGoodsData?.createTime | date: 'yyyy-MM-dd HH:mm' }}
+ {{ orderGoodsData?.payTime | date: 'yyyy-MM-dd HH:mm' }}
+ {{ orderGoodsData?.cancelTime | date: 'yyyy-MM-dd HH:mm' }}
+ {{ orderGoodsData?.refundTime | date: 'yyyy-MM-dd HH:mm' }}
+ {{ orderGoodsData?.finishTime | date: 'yyyy-MM-dd HH:mm' }}
+ {{ orderGoodsData?.updateTime | date: 'yyyy-MM-dd HH:mm' }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{item['desc']}}
+ {{item.time | date : 'yyyy-MM-dd HH:mm:ss'}}
+
+
+
+
+
+
diff --git a/src/app/pages/trade/goods-list/goods-list.component.less b/src/app/pages/trade/goods-list/goods-list.component.less
new file mode 100644
index 0000000..6d5c351
--- /dev/null
+++ b/src/app/pages/trade/goods-list/goods-list.component.less
@@ -0,0 +1,12 @@
+[nz-form-label] {
+ overflow: visible;
+}
+button {
+ margin-left: 8px;
+}
+.submit-btn {
+ width: 150px;
+}
+.search-area {
+ margin-top: 30px;
+}
diff --git a/src/app/pages/trade/goods-list/goods-list.component.ts b/src/app/pages/trade/goods-list/goods-list.component.ts
new file mode 100644
index 0000000..58ed3af
--- /dev/null
+++ b/src/app/pages/trade/goods-list/goods-list.component.ts
@@ -0,0 +1,242 @@
+import { Component } from '@angular/core';
+import {DatePipe, NgClass, NgForOf, NgIf} from "@angular/common";
+import {FormGroup, FormsModule, NonNullableFormBuilder, ReactiveFormsModule} from "@angular/forms";
+import {NzButtonComponent} from "ng-zorro-antd/button";
+import {
+ NzTableComponent, NzTableModule,
+ NzThMeasureDirective
+} from "ng-zorro-antd/table";
+import {NzColDirective, NzRowDirective} from "ng-zorro-antd/grid";
+
+import {NzFormDirective, NzFormModule} from "ng-zorro-antd/form";
+import {NzImageDirective, NzImageModule,} from "ng-zorro-antd/image";
+import {NzInputDirective} from "ng-zorro-antd/input";
+
+import {NzOptionComponent, NzSelectComponent} from "ng-zorro-antd/select";
+import {NzTreeSelectComponent} from "ng-zorro-antd/tree-select";
+
+import {environment} from "../../../../environments/environment";
+import {NzMessageService} from "ng-zorro-antd/message";
+import {GoodsService} from "../../../services/goods/goods.service";
+import {fallbackImg, orderGoodsStatus} from '../../../data/goods/goods.namespace';
+import {GoodsStatusPipe} from "../../../pipes/goods/goods-status.pipe";
+import {NzModalModule} from "ng-zorro-antd/modal";
+import {OrderGoodsService} from "../../../services/trade/order-goods.service";
+import {OrderGoodsStatusPipe} from "../../../pipes/order/order-goods-status.pipe";
+import {NzDropDownADirective, NzDropDownDirective, NzDropdownMenuComponent} from "ng-zorro-antd/dropdown";
+import {NzMenuDirective, NzMenuItemComponent} from "ng-zorro-antd/menu";
+import {NzPopconfirmDirective} from "ng-zorro-antd/popconfirm";
+import {OrderGoodsData} from "../../../model/order.interface";
+import {NzDividerComponent} from "ng-zorro-antd/divider";
+import {NzIconDirective} from "ng-zorro-antd/icon";
+import {NzDescriptionsModule} from "ng-zorro-antd/descriptions";
+import {NzBadgeComponent} from "ng-zorro-antd/badge";
+import {AuditStatusPipe} from "../../../pipes/audit/audit-status.pipe";
+import {NzTabComponent, NzTabSetComponent, NzTabsModule} from "ng-zorro-antd/tabs";
+import {NzSpinComponent} from "ng-zorro-antd/spin";
+import {NzTimelineComponent, NzTimelineItemComponent} from "ng-zorro-antd/timeline";
+import {NzResultComponent} from "ng-zorro-antd/result";
+
+@Component({
+ selector: 'app-goods-list',
+ standalone: true,
+ imports: [
+ NzColDirective,
+ NzRowDirective,
+ NzFormDirective,
+ ReactiveFormsModule,
+ NzTreeSelectComponent,
+ NzInputDirective,
+ NzSelectComponent,
+ NzOptionComponent,
+ NzButtonComponent,
+ NzTableComponent,
+ NzImageModule,
+ NzModalModule,
+ NzTableModule,
+ NzFormModule,
+ NzThMeasureDirective,
+ NgForOf,
+ NzImageDirective,
+ GoodsStatusPipe,
+ DatePipe,
+ OrderGoodsStatusPipe,
+ NzDropdownMenuComponent,
+ NgIf,
+ NzMenuDirective,
+ NzDescriptionsModule,
+ NzMenuItemComponent,
+ NzPopconfirmDirective,
+ NzDividerComponent,
+ NzDropDownADirective,
+ NzDropDownDirective,
+ NzTabsModule,
+ NzIconDirective,
+ NzBadgeComponent,
+ AuditStatusPipe,
+ NzTabSetComponent,
+ FormsModule,
+ NzSpinComponent,
+ NzTimelineItemComponent,
+ NgClass,
+ NzResultComponent,
+ NzTimelineComponent,
+
+ ],
+ templateUrl: './goods-list.component.html',
+ styleUrl: './goods-list.component.less'
+})
+export class GoodsListComponent {
+ // 表单页数
+ tablePageNum = 1;
+ // 表单数据
+ tableData: any = {
+ total: 0,
+ loading: false,
+ list: [],
+ };
+ // 搜索表单
+ searchForm: FormGroup;
+
+ baseUrl = environment.baseUrl;
+ imageUrl = environment.imageUrl;
+
+ // 商品类型数据
+ nodes = [];
+ nodesBrand = [];
+ orderGoodsData: any;
+ orderDetailModal = false;
+ isVisible = false;
+ orderDetailModalChild = false;
+ orderDetailModalLoading = false;
+ logisticsNo: any;
+ logisticsTraceDetails: any;
+ goodsOrderId: any;
+
+ protected readonly fallbackImg = fallbackImg;
+ protected readonly orderGoodsStatus = orderGoodsStatus;
+
+ constructor(private fb: NonNullableFormBuilder,
+ private msg: NzMessageService,
+ private orderGoodsService: OrderGoodsService,
+ private goodsService: GoodsService) {
+
+
+ // 初始化搜索框
+ this.searchForm = this.fb.group({
+ logisticsNo: [''],
+ orderNo: [''],
+ goodsType: [''],
+ goodsBrand: [''],
+ userPhone: [''],
+ goodsSpecsName: [''],
+ goodsName: [''],
+ payType: [''],
+ status: [''],
+ });
+
+
+ this.getRequest();
+ this.getGoodsTypeNode();
+ this.getGoodsBrandNode();
+
+ }
+
+ // 查询列表
+ public getRequest(reset: boolean = false) {
+ 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.orderGoodsService.getListGoods(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;
+ });
+ }
+
+ // 获取商品分类
+ getGoodsTypeNode() {
+ this.goodsService.getList({time: new Date().getTime()}, (data: any) => {
+ if (data['return_code'] === '000000') {
+ this.getNode(data['return_data']);
+ }
+ });
+ }
+
+ // 配置数据
+ getNode(array: any): any {
+ array.forEach((item: any) => {
+ if (item.children) {
+ this.getNode(item.children);
+ }else {
+ item["isLeaf"] = true;
+ }
+ item["key"] = item.id;
+
+ });
+ this.nodes = array;
+ }
+
+ // 获取商品品牌
+ getGoodsBrandNode() {
+ this.goodsService.getListBrandAll( (data: any) => {
+ if (data['return_code'] == '000000') {
+ this.nodesBrand = data['return_data'];
+ }
+ });
+ }
+
+ getLogisticsNo(id: number): void {
+ this.goodsOrderId = id;
+ this.isVisible = true;
+ }
+
+ showDetail(data: OrderGoodsData): void {
+ console.log(data);
+ this.orderGoodsData = data;
+ this.orderDetailModal = true;
+ }
+
+ handleOk(): void {
+ let params = {
+ id: this.goodsOrderId,
+ logisticsNo: this.logisticsNo,
+ time: new Date().getTime()
+ }
+
+ this.orderGoodsService.updateLogisticsNo(params , (data: any) => {
+ if (data['return_code'] == '000000') {
+ this.isVisible = false;
+ this.getRequest(false);
+ this.msg.success("成功")
+ } else {
+ this.msg.error(data['return_msg']);
+ }
+ });
+ }
+
+ showLogisticsNo(id: number): void {
+ let params = {
+ id:id,
+ time: new Date().getTime()
+ }
+
+ this.orderGoodsService.getLogisticsMsg(params , (data: any) => {
+ if (data['return_code'] == '000000') {
+ this.orderDetailModalChild = true;
+ this.logisticsTraceDetails = data['return_data']['logisticsTraceDetails'];
+ } else {
+ this.msg.error(data['return_msg']);
+ }
+ });
+ }
+
+}
diff --git a/src/app/pages/trade/trade.routes.ts b/src/app/pages/trade/trade.routes.ts
index 8ae9ae6..49a63e1 100644
--- a/src/app/pages/trade/trade.routes.ts
+++ b/src/app/pages/trade/trade.routes.ts
@@ -1,8 +1,10 @@
import { Routes } from '@angular/router';
import {CompOrderComponent} from "./comp-order/comp-order.component";
import {OrderAfterSalesComponent} from "./order-after-sales/order-after-sales.component";
+import {GoodsListComponent} from "./goods-list/goods-list.component";
export const TRADE_ROUTES: Routes = [
+ { path: 'goods-list', component: GoodsListComponent },
{ path: 'comp-order', component: CompOrderComponent },
{ path: 'order-after-sales', component: OrderAfterSalesComponent },
];
diff --git a/src/app/pipes/order/order-goods-status.pipe.ts b/src/app/pipes/order/order-goods-status.pipe.ts
new file mode 100644
index 0000000..f543cfa
--- /dev/null
+++ b/src/app/pipes/order/order-goods-status.pipe.ts
@@ -0,0 +1,32 @@
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+ name: 'orderGoodsStatus',
+ standalone: true
+})
+export class OrderGoodsStatusPipe implements PipeTransform {
+
+ transform(value: number): any {
+ switch (value) {
+ case 1:
+ return '待发货';
+ case 2:
+ return '已发货';
+ case 3:
+ return '配送中';
+ case 4:
+ return '已送达';
+ case 5:
+ return '已取消';
+ case 6:
+ return '退货中';
+ case 7:
+ return '已退货';
+ case 8:
+ return '待支付';
+ default:
+ return '未知状态'
+ }
+ }
+
+}
diff --git a/src/app/services/trade/order-goods.service.ts b/src/app/services/trade/order-goods.service.ts
new file mode 100644
index 0000000..1eeee14
--- /dev/null
+++ b/src/app/services/trade/order-goods.service.ts
@@ -0,0 +1,35 @@
+import { Injectable } from '@angular/core';
+import {HttpClient} from "@angular/common/http";
+import {environment} from "../../../environments/environment";
+import {ObjectData} from "../../utils/objectData.service";
+
+@Injectable({
+ providedIn: 'root'
+})
+export class OrderGoodsService {
+
+ constructor(private http: HttpClient) { }
+
+ /**
+ * 查询订单列表
+ * @param param
+ * @param callBack
+ */
+ public getListGoods(param: object, callBack:any) {
+ this.http.get(environment.orderUrl + 'orderGoods/getListGoods?'+ObjectData.objectByString(param)).subscribe(data => {
+ callBack(data);
+ });
+ }
+
+ public updateLogisticsNo(params: object, callBack:any) {
+ this.http.post(environment.orderUrl + 'orderGoods/updateLogisticsNo', params).subscribe(data => {
+ callBack(data);
+ });
+ }
+
+ public getLogisticsMsg(param: object, callBack:any) {
+ this.http.get(environment.orderUrl + 'orderGoods/getLogisticsMsg?'+ObjectData.objectByString(param)).subscribe(data => {
+ callBack(data);
+ });
+ }
+}