嗨森逛PC管理端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
high-web/src/app/admin/coupon/sales-code-list/sales-code-list.component.ts

150 lines
5.0 KiB

import {Component, OnInit} from '@angular/core';
import {ActivatedRoute} from '@angular/router';
import {FormBuilder, FormGroup, Validators} from '@angular/forms';
import {NzMessageService, NzModalService, NzUploadChangeParam} from 'ng-zorro-antd';
import {CouponService} from '../../../services/coupon.service';
import {environment} from '../../../../environments/environment';
@Component({
selector: 'app-sales-code-list',
templateUrl: './sales-code-list.component.html',
styleUrls: ['./sales-code-list.component.scss']
})
export class SalesCodeListComponent implements OnInit {
searchForm: FormGroup; // 搜索框
codeForm: FormGroup; // 搜索框
requestData = []; // 列表数据
total: number; // 页码
pageNum = 1; // 页码
pageSize = 10; // 条码
loading = true;
id = null;
name: string;
type: number;
isVisible = false;
WEB_SERVE_URL = environment.baseUrl;
importErrorStudentArray = [];
errorStudentVisible = false;
constructor(
private form: FormBuilder,
private activatedRoute: ActivatedRoute,
private message: NzMessageService,
private modal: NzModalService,
private coupon: CouponService
) {
}
ngOnInit(): void {
this.activatedRoute.queryParams.subscribe(queryParams => {
if (queryParams.couponId != null) {
this.id = queryParams.couponId;
this.name = queryParams.name;
this.type = Number(queryParams.type);
this.searchForm = this.form.group({
status: [null],
salesCode: [null],
});
this.getRequest(true, this.searchForm.value);
}
});
this.codeForm = this.form.group({
salesEndTime: [null, [Validators.required]],
useEndTime: [null, [Validators.required]],
generateNum: [null, [Validators.required]],
});
}
// 查询列表
public getRequest(reset: boolean = false, whereObject: object) {
this.loading = false;
if (reset) {
this.pageNum = 1;
}
whereObject['couponId'] = this.id;
whereObject['pageNum'] = this.pageNum;
whereObject['pageSize'] = this.pageSize;
this.coupon.getCouponCodeList(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();
}
showModal(): void {
this.isVisible = true;
}
handleOk(): void {
// tslint:disable-next-line:forin
for (const i in this.codeForm.controls) {
this.codeForm.controls[i].markAsDirty();
this.codeForm.controls[i].updateValueAndValidity();
if (this.codeForm.controls[i].errors != null) {
this.message.error('必填项不能为空');
return;
}
}
this.codeForm.value['couponId'] = this.id;
this.coupon.writeStock(this.codeForm.value , data => {
if (data['return_code'] === '000000') {
this.getRequest(true, this.searchForm.value);
this.message.success('生成成功');
} else {
this.message.create('error', '生成失败');
}
});
this.isVisible = false;
}
handleCancel(): void {
console.log('Button cancel clicked!');
this.isVisible = false;
}
handleCancelError(): void {
this.errorStudentVisible = false;
}
handleChange(info: NzUploadChangeParam): void {
if (info.file.status === 'done') {
if (info.file.response.return_code === '000000') {
this.loading = false;
if (info.file.response.return_data == null || info.file.response.return_data.errorTotal === 0) {
this.message.success('导入成功');
this.getRequest(true, this.searchForm.value);
} else {
this.modal.warning({
nzTitle: '提示',
nzOkText: '查看失败数据',
nzContent: '只有部分数据导入成功',
nzOnOk: () => this.showErrorStudentModal(info.file.response.return_data)
});
}
} else {
this.loading = false;
this.message.error(info.file.response.return_msg);
}
} else if (info.file.status === 'error') {
this.message.error('上传错误');
}
}
// 打开模态框
showErrorStudentModal(data: []) {
this.getRequest(true, this.searchForm.value);
this.importErrorStudentArray = data['errorData'];
this.errorStudentVisible = true;
}
}