commit
3d60914d5c
@ -0,0 +1,162 @@ |
||||
<!-- start 面包屑 --> |
||||
<app-breadcrumb></app-breadcrumb> |
||||
<!-- end 面包屑 --> |
||||
|
||||
<!--条件搜索--> |
||||
<div class="inner-content"> |
||||
<form nz-form [formGroup]="searchForm" (ngSubmit)="getRequest(true , searchForm.value)"> |
||||
<div nz-row> |
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6">产品名称</nz-form-label> |
||||
<nz-form-control [nzSpan]="16"> |
||||
<input nz-input formControlName="name"/> |
||||
</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)="resetForm()"><i nz-icon nzType="reload" |
||||
nzTheme="outline"></i>重置 |
||||
</button> |
||||
</div> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
|
||||
|
||||
<div class="inner-content"> |
||||
<span>共计 {{total}} 条数据</span> |
||||
<div class="operating-button"> |
||||
<button nz-button nzType="primary" class="right-btn" (click)="getEdit()"><i nz-icon nzType="plus" nzTheme="outline"></i>添加</button> |
||||
</div> |
||||
<nz-table |
||||
class="table" |
||||
#ajaxTable |
||||
nzShowSizeChanger |
||||
[nzFrontPagination]="false" |
||||
[nzData]="requestData" |
||||
[nzLoading]="loading" |
||||
[nzTotal]="total" |
||||
[(nzPageIndex)]="pageNum" |
||||
[(nzPageSize)]="pageSize" |
||||
[nzScroll]="{ x: '1200px' }" |
||||
(nzPageIndexChange)="getRequest(false , searchForm.value)" |
||||
(nzPageSizeChange)="getRequest(false , searchForm.value)"> |
||||
<thead nzSingleSort> |
||||
<tr> |
||||
<th nzWidth="60px">编号</th> |
||||
<th nzWidth="90px">产品名称</th> |
||||
<th nzWidth="90px">产品编码</th> |
||||
<th nzWidth="120px">成本价</th> |
||||
<th nzWidth="120px">面值</th> |
||||
<th nzWidth="120px">创建时间</th> |
||||
<th nzRight nzWidth="80px">操作</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<tr *ngFor="let data of ajaxTable.data; let i = index"> |
||||
<td>{{i + 1}}</td> |
||||
<td>{{data.name}}</td> |
||||
<td>{{data.productId}}</td> |
||||
<td>{{data.costPrice + "RMB"}}</td> |
||||
<td>{{data.price + "RMB"}}</td> |
||||
<td>{{data.createTime | date: 'yyyy-MM-dd HH:mm'}}</td> |
||||
<td nzRight 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 nz-menu-item *ngIf="data.status != 1"><a (click)="getEdit(data.id)">编辑</a></li> |
||||
</ul> |
||||
</nz-dropdown-menu> |
||||
</td> |
||||
</tbody> |
||||
</nz-table> |
||||
</div> |
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" nzTitle="会员产品配置" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()"> |
||||
<form nz-form [formGroup]="validateForm" class="login-form"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>产品名称</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入产品名称!"> |
||||
<input nz-input placeholder="请输入产品名称..." [formControlName]="'name'" id="'name'" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>产品编号</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入产品编号!"> |
||||
<input nz-input placeholder="请输入产品编号..." [formControlName]="'productId'" id="'productId'" /> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>产品分类</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请选择产品分类!"> |
||||
<nz-select nzPlaceHolder="请选择产品分类" (ngModelChange)="getBrandByList($event)" [formControlName]="'typeId'"> |
||||
<nz-option *ngFor="let item of goodsTypeData" [nzValue]="item.id" nzLabel="{{item.title}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>产品分类</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请选择产品分类!"> |
||||
<nz-select nzPlaceHolder="请选择品牌" [formControlName]="'brandId'"> |
||||
<nz-option *ngFor="let item of brandData" [nzValue]="item.id" nzLabel="{{item.title}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
|
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>成本价</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入成本价!"> |
||||
<nz-input-number |
||||
style="width: 200px" |
||||
formControlName="costPrice" |
||||
[nzMin]="1" |
||||
[nzMax]="10000" |
||||
[nzStep]="1" |
||||
[nzPrecision]="2" |
||||
nzPrecisionMode="cut" |
||||
nzPlaceHolder="请输入成本价!" |
||||
[nzFormatter]="formatterPercent" |
||||
[nzParser]="parserPercent" |
||||
></nz-input-number> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>面值</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入面值!"> |
||||
<nz-input-number |
||||
style="width: 200px" |
||||
formControlName="price" |
||||
[nzMin]="1" |
||||
[nzMax]="10000" |
||||
[nzStep]="1" |
||||
[nzPrecision]="2" |
||||
nzPrecisionMode="cut" |
||||
nzPlaceHolder="请输入面值!" |
||||
[nzFormatter]="formatterPercent" |
||||
[nzParser]="parserPercent" |
||||
></nz-input-number> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" >排序</nz-form-label> |
||||
<nz-form-control [nzSpan]="16"> |
||||
<nz-input-number |
||||
style="width: 200px" |
||||
formControlName="sort" |
||||
[nzMin]="1" |
||||
[nzMax]="10000" |
||||
[nzStep]="1" |
||||
nzPlaceHolder="请输入排序!" |
||||
></nz-input-number> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</form> |
||||
</nz-modal> |
||||
|
@ -0,0 +1,234 @@ |
||||
import { Component, OnInit } from '@angular/core'; |
||||
import {environment} from '../../../../environments/environment'; |
||||
import {RechargeService} from '../../../services/recharge.service'; |
||||
import {DiscountService} from '../../../services/discount.service'; |
||||
import {CouponService} from '../../../services/coupon.service'; |
||||
import {IconService} from '../../../services/icon.service'; |
||||
import {CommonsService} from '../../../services/commons.service'; |
||||
import {ApiProductService} from '../../../services/api-product.service'; |
||||
import {FormBuilder, FormGroup, Validators} from '_@angular_forms@9.0.7@@angular/forms'; |
||||
import {NzMessageService} from '_ng-zorro-antd@9.3.0@ng-zorro-antd'; |
||||
import {Router} from '_@angular_router@9.0.7@@angular/router'; |
||||
import {ConfigService} from "../../../services/config.service"; |
||||
|
||||
@Component({ |
||||
selector: 'app-member-product', |
||||
templateUrl: './member-product.component.html', |
||||
styleUrls: ['./member-product.component.scss'] |
||||
}) |
||||
export class MemberProductComponent implements OnInit { |
||||
|
||||
|
||||
WEB_SERVE_URL = environment.imageUrl; |
||||
searchForm: FormGroup; // 搜索框
|
||||
validateForm: FormGroup; // 添加框
|
||||
requestData = []; // 列表数据
|
||||
productArray = []; // 价格数据
|
||||
priceTypeArray = []; // 支付类型数据
|
||||
productPlatformArray = []; // 展示平台数据
|
||||
|
||||
total: number; // 页码
|
||||
pageNum = 1; // 页码
|
||||
pageSize = 10; // 条码
|
||||
loading = true; |
||||
isVisible = false; |
||||
isVisibleProduct = false; |
||||
id: number; |
||||
edit = false; |
||||
payPrice; |
||||
isVisibleGoods = false; |
||||
realPrice = 0; |
||||
data = {}; |
||||
goodsTypeData; |
||||
brandData; |
||||
|
||||
formatterPercent = (value: number): string => `${value == null ? 0 : value} RMB`; |
||||
parserPercent = (value: string): string => value.replace(' RMB', ''); |
||||
|
||||
constructor( |
||||
private form: FormBuilder, |
||||
private recharge: RechargeService, |
||||
private discount: DiscountService, |
||||
private coupon: CouponService, |
||||
private iconService: IconService, |
||||
private message: NzMessageService, |
||||
private config: ConfigService, |
||||
private router: Router, |
||||
private common: CommonsService, |
||||
private apiProduct: ApiProductService |
||||
) { |
||||
} |
||||
|
||||
ngOnInit(): void { |
||||
this.init(); |
||||
this.getInitData(); |
||||
} |
||||
|
||||
// 获取初始化数据
|
||||
private getInitData(): void { |
||||
const params = { |
||||
pageNum: 1, |
||||
userService: '会员充值', |
||||
pageSize: 10000 |
||||
}; |
||||
this.config.getListGoodsType(params , data => { |
||||
this.goodsTypeData = data['return_data'].list; |
||||
}); |
||||
|
||||
} |
||||
|
||||
public getBrandByList(e): void { |
||||
|
||||
const params = { |
||||
pageNum: 1, |
||||
pageSize: 10000, |
||||
goodTypeId: e |
||||
}; |
||||
|
||||
this.config.getBrandByList(params , data => { |
||||
this.brandData = data['return_data'].list; |
||||
}); |
||||
} |
||||
|
||||
public init(): void { |
||||
this.searchForm = this.form.group({ |
||||
name: [null], |
||||
}); |
||||
this.validateForm = this.form.group({ |
||||
sort: [null], |
||||
price: [null, [Validators.required]], |
||||
costPrice: [null, [Validators.required]], |
||||
brandId: [null, [Validators.required]], |
||||
productId: [null, [Validators.required]], |
||||
typeId: [null, [Validators.required]], |
||||
name: [null, [Validators.required]], |
||||
}); |
||||
|
||||
|
||||
this.getRequest(true, this.searchForm.value); |
||||
} |
||||
|
||||
// 查询列表
|
||||
public getRequest(reset: boolean = false, whereObject: object) { |
||||
|
||||
this.loading = false; |
||||
if (reset) { |
||||
this.pageNum = 1; |
||||
} |
||||
whereObject['pageNum'] = this.pageNum; |
||||
whereObject['pageSize'] = this.pageSize; |
||||
this.apiProduct.getListApiMemberProduct(whereObject, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.requestData = data['return_data'].list; |
||||
this.total = data['return_data'].total; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
// 重置
|
||||
public resetForm(): void { |
||||
this.searchForm.reset(); |
||||
} |
||||
|
||||
// 修改
|
||||
public getEdit(id?: number): void { |
||||
if (id != null) { |
||||
this.id = id; |
||||
this.edit = true; |
||||
this.apiProduct.findMemberProductById(id, data => { |
||||
this.validateForm.patchValue(data['return_data']); |
||||
this.isVisible = true; |
||||
}); |
||||
} else { |
||||
this.validateForm.reset(); |
||||
this.isVisible = true; |
||||
this.edit = false; |
||||
} |
||||
} |
||||
|
||||
handleOk(): void { |
||||
console.log(this.validateForm.value); |
||||
const wait = this.message.loading('提交中..', { nzDuration: 0 }).messageId; |
||||
// tslint:disable-next-line:forin
|
||||
for (const i in this.validateForm.controls) { |
||||
this.validateForm.controls[i].markAsDirty(); |
||||
this.validateForm.controls[i].updateValueAndValidity(); |
||||
if (this.validateForm.controls[i].errors != null) { |
||||
this.message.error('必填项不能为空'); |
||||
this.message.remove(wait); |
||||
return; |
||||
} |
||||
} |
||||
|
||||
if (this.edit) { |
||||
this.validateForm.value['id'] = this.id; |
||||
this.apiProduct.updateMemberProduct(this.validateForm.value, data => { |
||||
this.message.remove(wait); |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('修改成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
this.validateForm.reset(); |
||||
this.isVisible = false; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} else { |
||||
this.apiProduct.insertMemberProduct(this.validateForm.value, data => { |
||||
this.message.remove(wait); |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('添加成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
this.isVisible = false; |
||||
this.validateForm.reset(); |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
} |
||||
|
||||
handleCancel(): void { |
||||
this.validateForm.reset(); |
||||
this.isVisible = false; |
||||
} |
||||
|
||||
public getForbiddenUserD(idPost): void { |
||||
|
||||
this.common.showConfirm('是否删除', item => { |
||||
if (item) { |
||||
this.recharge.editPriceStatus({ |
||||
id: idPost, |
||||
status: 0 |
||||
}, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('删除成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
// 详情
|
||||
public getDetail(id: number): void { |
||||
this.id = id; |
||||
this.apiProduct.findStarbucksProducts(id, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.data = data['return_data']; |
||||
this.isVisibleProduct = true; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,189 @@ |
||||
<!-- start 面包屑 --> |
||||
<app-breadcrumb></app-breadcrumb> |
||||
<!-- end 面包屑 --> |
||||
|
||||
<!--条件搜索--> |
||||
<div class="inner-content"> |
||||
<form nz-form [formGroup]="searchForm" (ngSubmit)="getRequest(true , searchForm.value)"> |
||||
<div nz-row> |
||||
<div nz-col nzSpan="8"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6">产品名称</nz-form-label> |
||||
<nz-form-control [nzSpan]="16"> |
||||
<input nz-input formControlName="productName"/> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</div> |
||||
<!-- <div nz-col nzSpan="8">--> |
||||
<!-- <nz-form-item>--> |
||||
<!-- <nz-form-label [nzSpan]="6">产品类型</nz-form-label>--> |
||||
<!-- <nz-form-control [nzSpan]="16">--> |
||||
<!-- <nz-select nzShowSearch nzAllowClear formControlName="productType" nzPlaceHolder="请选择价格状态">--> |
||||
<!-- <nz-option nzLabel="星巴克" [nzValue]="1"></nz-option>--> |
||||
<!-- <nz-option nzLabel="肯德基" [nzValue]="2"></nz-option>--> |
||||
<!-- </nz-select>--> |
||||
<!-- </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)="resetForm()"><i nz-icon nzType="reload" |
||||
nzTheme="outline"></i>重置 |
||||
</button> |
||||
</div> |
||||
</div> |
||||
</form> |
||||
</div> |
||||
|
||||
|
||||
<div class="inner-content"> |
||||
<span>共计 {{total}} 条数据</span> |
||||
<div class="operating-button"> |
||||
<button nz-button nzType="primary" class="right-btn" (click)="getEdit()"><i nz-icon nzType="plus" nzTheme="outline"></i>添加</button> |
||||
</div> |
||||
<nz-table |
||||
class="table" |
||||
#ajaxTable |
||||
nzShowSizeChanger |
||||
[nzFrontPagination]="false" |
||||
[nzData]="requestData" |
||||
[nzLoading]="loading" |
||||
[nzTotal]="total" |
||||
[(nzPageIndex)]="pageNum" |
||||
[(nzPageSize)]="pageSize" |
||||
[nzScroll]="{ x: '1200px' }" |
||||
(nzPageIndexChange)="getRequest(false , searchForm.value)" |
||||
(nzPageSizeChange)="getRequest(false , searchForm.value)"> |
||||
<thead nzSingleSort> |
||||
<tr> |
||||
<th nzWidth="60px">编号</th> |
||||
<!-- <th nzWidth="90px">产品类型</th>--> |
||||
<th nzWidth="90px">产品名称</th> |
||||
<th nzWidth="90px">利润比例</th> |
||||
<th nzWidth="120px">积分抵扣比例</th> |
||||
<th nzWidth="100px">支付方式</th> |
||||
<th nzWidth="100px">展示平台</th> |
||||
<th nzWidth="120px">创建时间</th> |
||||
<th nzRight nzWidth="80px">操作</th> |
||||
</tr> |
||||
</thead> |
||||
<tbody> |
||||
<tr *ngFor="let data of ajaxTable.data; let i = index"> |
||||
<td>{{i + 1}}</td> |
||||
<!-- <td>{{data.productType == 1 ? '星巴克' : '肯德基'}}</td>--> |
||||
<td>{{data.productName}}</td> |
||||
<td>{{data.discount + "%"}}</td> |
||||
<td>{{data.integralDiscount + "%"}}</td> |
||||
<td>{{data.productPayTypeString.substring(0 , data.productPayTypeString.length - 1)}}</td> |
||||
<td>{{data.productPlatformString.substring(0 , data.productPlatformString.length - 1)}}</td> |
||||
<td>{{data.createTime | date: 'yyyy-MM-dd HH:mm'}}</td> |
||||
<td nzRight 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 nz-menu-item *ngIf="data.status != 1"><a (click)="getEdit(data.id)">编辑</a></li> |
||||
<!-- <li nz-menu-item *ngIf="data.status != 1"><a (click)="getForbiddenUserD(data.id)">删除</a></li>--> |
||||
</ul> |
||||
</nz-dropdown-menu> |
||||
</td> |
||||
</tbody> |
||||
</nz-table> |
||||
</div> |
||||
|
||||
<nz-modal [(nzVisible)]="isVisible" nzTitle="产品配置" (nzOnCancel)="handleCancel()" (nzOnOk)="handleOk()"> |
||||
<form nz-form [formGroup]="validateForm" class="login-form"> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>产品类型</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请选择产品类型!"> |
||||
<nz-select nzShowSearch nzAllowClear formControlName="productType" nzPlaceHolder="请选择产品类型"> |
||||
<nz-option nzLabel="星巴克" [nzValue]="1"></nz-option> |
||||
<nz-option nzLabel="肯德基" [nzValue]="2"></nz-option> |
||||
<nz-option nzLabel="充值产品" [nzValue]="3"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>展示平台</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请选择展示平台!"> |
||||
<nz-select |
||||
nzMode="multiple" |
||||
formControlName="productPlatform" |
||||
nzPlaceHolder="请选择展示平台" |
||||
> |
||||
<nz-option *ngFor="let item of productPlatformArray" nzValue="{{item.codeValue}}" nzLabel="{{item.codeName}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>支付方式</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请选择支付方式!"> |
||||
<nz-select |
||||
nzMode="multiple" |
||||
formControlName="payType" |
||||
nzPlaceHolder="请选择支付方式" |
||||
> |
||||
<nz-option *ngFor="let item of priceTypeArray" nzValue="{{item.codeValue}}" nzLabel="{{item.codeName}}"></nz-option> |
||||
</nz-select> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>利润比例</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入利润比例!"> |
||||
<nz-input-number |
||||
style="width: 200px" |
||||
formControlName="discount" |
||||
[nzMin]="1" |
||||
[nzMax]="100" |
||||
[nzStep]="1" |
||||
[nzPrecision]="2" |
||||
nzPrecisionMode="cut" |
||||
nzPlaceHolder="请输入利润比例!" |
||||
[nzFormatter]="formatterPercent" |
||||
[nzParser]="parserPercent" |
||||
></nz-input-number> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
<nz-form-item> |
||||
<nz-form-label [nzSpan]="6" nzRequired>积分支付比例</nz-form-label> |
||||
<nz-form-control [nzSpan]="16" nzErrorTip="请输入积分支付比例!"> |
||||
<nz-input-number |
||||
style="width: 200px" |
||||
formControlName="integralDiscount" |
||||
[nzMin]="0" |
||||
[nzMax]="100" |
||||
[nzStep]="1" |
||||
[nzPrecision]="2" |
||||
nzPrecisionMode="cut" |
||||
nzPlaceHolder="请输入积分支付比例!" |
||||
[nzFormatter]="formatterPercent" |
||||
[nzParser]="parserPercent" |
||||
></nz-input-number> |
||||
</nz-form-control> |
||||
</nz-form-item> |
||||
</form> |
||||
</nz-modal> |
||||
|
||||
<nz-modal [(nzVisible)]="isVisibleProduct" nzTitle="商品详情" nzWidth="1200" (nzOnOk)="isVisibleProduct = false" |
||||
(nzOnCancel)="isVisibleProduct = false"> |
||||
<nz-descriptions nzBordered [nzColumn]="{ xxl: 4, xl: 3, lg: 3, md: 3, sm: 2, xs: 1 }"> |
||||
<nz-descriptions-item nzTitle="类别名称">{{data['categoryName']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="商品名称">{{data['name']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="商品图片"><img style="width: 80px;" src="{{data['defaultImage']}}" alt=""></nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="杯型">{{data['cupSize']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="温度">{{data['temperature']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="奶油">{{data['cream']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="浓缩咖啡">{{data['espresso']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="牛奶">{{data['milk']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="奶泡">{{data['milkBubble']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="中杯市场价(元)">¥{{data['marketTallPrice']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="大杯市场价(元)">¥{{data['marketGrandePrice']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="超大杯市场价(元)">¥{{data['marketVentiPrice']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="中杯销售价(元)">¥{{data['salesTallPrice']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="大杯销售价(元)">¥{{data['salesGrandePrice']}}</nz-descriptions-item> |
||||
<nz-descriptions-item nzTitle="超大杯销售价(元)">¥{{data['salesVentiPrice']}}</nz-descriptions-item> |
||||
</nz-descriptions> |
||||
</nz-modal> |
@ -0,0 +1,231 @@ |
||||
import { Component, OnInit } from '@angular/core'; |
||||
import {environment} from '../../../../environments/environment'; |
||||
import {FormBuilder, FormGroup, Validators} from '_@angular_forms@9.0.7@@angular/forms'; |
||||
import {RechargeService} from '../../../services/recharge.service'; |
||||
import {DiscountService} from '../../../services/discount.service'; |
||||
import {CouponService} from '../../../services/coupon.service'; |
||||
import {IconService} from '../../../services/icon.service'; |
||||
import {NzMessageService} from '_ng-zorro-antd@9.3.0@ng-zorro-antd'; |
||||
import {Router} from '_@angular_router@9.0.7@@angular/router'; |
||||
import {CommonsService} from '../../../services/commons.service'; |
||||
import {ApiProductService} from '../../../services/api-product.service'; |
||||
|
||||
@Component({ |
||||
selector: 'app-third-product', |
||||
templateUrl: './third-product.component.html', |
||||
styleUrls: ['./third-product.component.scss'] |
||||
}) |
||||
export class ThirdProductComponent implements OnInit { |
||||
|
||||
WEB_SERVE_URL = environment.imageUrl; |
||||
searchForm: FormGroup; // 搜索框
|
||||
validateForm: FormGroup; // 添加框
|
||||
requestData = []; // 列表数据
|
||||
productArray = []; // 价格数据
|
||||
priceTypeArray = []; // 支付类型数据
|
||||
platformArray = []; // 充值平台数据
|
||||
productPlatformArray = []; // 展示平台数据
|
||||
|
||||
total: number; // 页码
|
||||
pageNum = 1; // 页码
|
||||
pageSize = 10; // 条码
|
||||
loading = true; |
||||
isVisible = false; |
||||
isVisibleProduct = false; |
||||
id: number; |
||||
edit = false; |
||||
payPrice; |
||||
isVisibleGoods = false; |
||||
realPrice = 0; |
||||
data = {}; |
||||
|
||||
array = [{num: 1, productId: 28, cupSize: '中杯', temperature: '特别热', milk: '全脂牛奶', cream: '奶油', espresso: '浓缩', milkBubble: '奶泡'}]; |
||||
hero2 = {num: 2, productId: 28, cupSize: '中杯', temperature: '特别热', milk: '全脂牛奶', cream: '奶油', espresso: '浓缩', milkBubble: '奶泡'}; |
||||
hero3 = {num: 1, productId: 28, cupSize: '超大杯', temperature: '特别热', milk: '全脂牛奶', cream: '奶油', espresso: '浓缩', milkBubble: '奶泡'}; |
||||
|
||||
|
||||
formatterPercent = (value: number): string => `${value == null ? 0 : value} %`; |
||||
parserPercent = (value: string): string => value.replace(' %', ''); |
||||
|
||||
constructor( |
||||
private form: FormBuilder, |
||||
private recharge: RechargeService, |
||||
private discount: DiscountService, |
||||
private coupon: CouponService, |
||||
private iconService: IconService, |
||||
private message: NzMessageService, |
||||
private router: Router, |
||||
private common: CommonsService, |
||||
private apiProduct: ApiProductService |
||||
) { |
||||
} |
||||
|
||||
ngOnInit(): void { |
||||
this.init(); |
||||
this.getInitData(); |
||||
|
||||
} |
||||
|
||||
// 获取初始化数据
|
||||
private getInitData(): void { |
||||
// 获取星巴克数据
|
||||
this.apiProduct.getStarbucksProducts(data => { |
||||
this.productArray = data['return_data']; |
||||
}); |
||||
// 获取支付类型
|
||||
this.common.getDictionary('PAY_TYPE ', data => { |
||||
this.priceTypeArray = data['return_data']; |
||||
}); |
||||
// 获取展示平台
|
||||
this.common.getDictionary('SHOW_PLATFORM ', data => { |
||||
this.productPlatformArray = data['return_data']; |
||||
}); |
||||
|
||||
} |
||||
|
||||
|
||||
public init(): void { |
||||
this.searchForm = this.form.group({ |
||||
productType: [null], |
||||
productName: [null], |
||||
}); |
||||
this.validateForm = this.form.group({ |
||||
discount: [null, [Validators.required]], |
||||
integralDiscount: [0], |
||||
productPlatform: [null, [Validators.required]], |
||||
payType: [null, [Validators.required]], |
||||
productType: [null, [Validators.required]], |
||||
productName: [null], |
||||
}); |
||||
|
||||
|
||||
this.getRequest(true, this.searchForm.value); |
||||
} |
||||
|
||||
// 查询列表
|
||||
public getRequest(reset: boolean = false, whereObject: object) { |
||||
|
||||
this.loading = false; |
||||
if (reset) { |
||||
this.pageNum = 1; |
||||
} |
||||
whereObject['pageNum'] = this.pageNum; |
||||
whereObject['pageSize'] = this.pageSize; |
||||
this.apiProduct.getProductConfig(whereObject, data => { |
||||
if (data['return_code'] === '000000') { |
||||
console.log(data); |
||||
this.requestData = data['return_data'].list; |
||||
this.total = data['return_data'].total; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
// 重置
|
||||
public resetForm(): void { |
||||
this.searchForm.reset(); |
||||
} |
||||
|
||||
// 修改
|
||||
public getEdit(id?: number): void { |
||||
if (id != null) { |
||||
this.id = id; |
||||
this.edit = true; |
||||
this.apiProduct.findProductConfig(id, data => { |
||||
data['return_data']['productPlatform'] = data['return_data']['productPlatformString'].substring(0 , data['return_data']['productPlatformString'].length - 1).split(','); |
||||
data['return_data']['payType'] = data['return_data']['productPayTypeString'].substring(0 , data['return_data']['productPayTypeString'].length - 1).split(','); |
||||
this.validateForm.patchValue(data['return_data']); |
||||
this.isVisible = true; |
||||
}); |
||||
} else { |
||||
this.validateForm.reset(); |
||||
this.isVisible = true; |
||||
this.edit = false; |
||||
} |
||||
} |
||||
|
||||
handleOk(): void { |
||||
console.log(this.validateForm.value); |
||||
const wait = this.message.loading('提交中..', { nzDuration: 0 }).messageId; |
||||
// tslint:disable-next-line:forin
|
||||
for (const i in this.validateForm.controls) { |
||||
this.validateForm.controls[i].markAsDirty(); |
||||
this.validateForm.controls[i].updateValueAndValidity(); |
||||
if (this.validateForm.controls[i].errors != null) { |
||||
this.message.error('必填项不能为空'); |
||||
this.message.remove(wait); |
||||
return; |
||||
} |
||||
} |
||||
|
||||
if (this.edit) { |
||||
this.validateForm.value['id'] = this.id; |
||||
this.apiProduct.updateProductConfig(this.validateForm.value, data => { |
||||
this.message.remove(wait); |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('修改成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
this.validateForm.reset(); |
||||
this.isVisible = false; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} else { |
||||
this.apiProduct.productConfig(this.validateForm.value, data => { |
||||
this.message.remove(wait); |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('添加成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
this.isVisible = false; |
||||
this.validateForm.reset(); |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
} |
||||
|
||||
handleCancel(): void { |
||||
this.validateForm.reset(); |
||||
this.isVisible = false; |
||||
} |
||||
|
||||
public getForbiddenUserD(idPost): void { |
||||
|
||||
this.common.showConfirm('是否删除', item => { |
||||
if (item) { |
||||
this.recharge.editPriceStatus({ |
||||
id: idPost, |
||||
status: 0 |
||||
}, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.message.success('删除成功'); |
||||
this.getRequest(false, this.searchForm.value); |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
// 详情
|
||||
public getDetail(id: number): void { |
||||
this.id = id; |
||||
this.apiProduct.findStarbucksProducts(id, data => { |
||||
if (data['return_code'] === '000000') { |
||||
this.data = data['return_data']; |
||||
this.isVisibleProduct = true; |
||||
} else { |
||||
this.message.error(data['return_msg']); |
||||
} |
||||
}); |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,19 @@ |
||||
import { Pipe, PipeTransform } from '@angular/core'; |
||||
|
||||
@Pipe({ |
||||
name: 'platform' |
||||
}) |
||||
export class PlatformPipe implements PipeTransform { |
||||
|
||||
transform(value: number): string { |
||||
switch (value) { |
||||
case 1: |
||||
return '尖椒'; |
||||
case 2: |
||||
return '龙阅'; |
||||
case 3: |
||||
return '城宇'; |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue