嗨森逛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/discount/discount-list/discount-list.component.ts

253 lines
6.8 KiB

4 years ago
import { Component, OnInit } from '@angular/core';
import {environment} from '../../../../environments/environment';
import {FormBuilder, FormGroup} from '@angular/forms';
import {AgentService} from '../../../services/agent.service';
import {IconService} from '../../../services/icon.service';
import {NzMessageService} from 'ng-zorro-antd';
import {Router} from '@angular/router';
import {CommonsService} from '../../../services/commons.service';
import {DiscountService} from '../../../services/discount.service';
import {CouponService} from '../../../services/coupon.service';
import {MerchantService} from '../../../services/merchant.service';
@Component({
selector: 'app-discount-list',
templateUrl: './discount-list.component.html',
styleUrls: ['./discount-list.component.scss']
})
export class DiscountListComponent implements OnInit {
WEB_SERVE_URL = environment.imageUrl;
searchForm: FormGroup; // 搜索框
searchFormCoupon: FormGroup; // 搜索框
requestData = []; // 列表数据
couponData = []; // 列表数据
optionList = []; // 列表数据
discountCoupon = []; // 列表数据
total: number; // 页码
pageNum = 1; // 页码
pageSize = 10; // 条码
loading = true;
isVisible = false;
isVisibleList = false;
couponList: any;
requestCouponData = []; // 列表数据
loadingCoupon = true;
loadingDiscountCoupon = true;
discountId: number;
RelByDiscountId: number;
setOfCheckedId = new Set<number>();
checked = false;
indeterminate = false;
updateCheckedSet(id: number, checked: boolean): void {
if (checked) {
this.setOfCheckedId.add(id);
} else {
this.setOfCheckedId.delete(id);
}
}
onItemChecked(id: number, checked: boolean): void {
this.updateCheckedSet(id, checked);
this.refreshCheckedStatus();
}
onAllChecked(value: boolean): void {
this.requestCouponData.forEach(item => this.updateCheckedSet(item.id, value));
this.refreshCheckedStatus();
}
refreshCheckedStatus(): void {
this.checked = this.requestCouponData.every(item => this.setOfCheckedId.has(item.id));
this.indeterminate = this.requestCouponData.some(item => this.setOfCheckedId.has(item.id)) && !this.checked;
}
constructor(
private form: FormBuilder,
private discount: DiscountService,
private iconService: IconService,
private merchant: MerchantService,
private message: NzMessageService,
private router: Router,
private common: CommonsService,
private coupon: CouponService
) {
}
ngOnInit(): void {
this.init();
const whereObject = {};
whereObject['pageNum'] = 1;
whereObject['pageSize'] = 30000;
this.merchant.getMerchantList(whereObject , data => {
if (data['return_code'] === '000000' ) {
this.optionList = data['return_data'].list;
}
});
}
public init(): void {
this.searchForm = this.form.group({
discountKey: [null],
discountName: [null],
discountType: [null],
});
this.searchFormCoupon = this.form.group({
merchantId: [null],
couponName: [null],
couponType: [null],
4 years ago
couponSource: [null],
4 years ago
status: [2],
});
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.discount.getDiscountList(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 getForbiddenUser(id, status: any): void {
const message = (status === 2 ? '是否下架当前优惠券' : '是否上架当前优惠券');
const s = status === 2 ? 3 : 2;
this.common.showConfirm(message, data => {
if (data) {
this.discount.editStatus(id, s , dataUser => {
if (dataUser['return_code'] === '000000') {
this.message.success(dataUser['return_data']);
} else {
this.message.error(dataUser['return_msg']);
}
this.getRequest(false , this.searchForm.value);
});
}
});
}
// 修改
public getEdit(id: number): void {
this.router.navigate(['/admin/discount/discount-detail'], {
queryParams: {
discountId: id
}
}).then(r => console.log(r));
}
// 查看详情
public getDetail(id: number): void {
this.router.navigate(['/admin/company/company-detail'], {
queryParams: {
companyId: id
}
}).then(r => console.log(r));
}
// 绑定卡券
public getCoupon(whereObject: object , id: number): void {
this.isVisible = true;
this.discountId = id;
whereObject['pageNum'] = 1;
whereObject['pageSize'] = 30000;
this.coupon.getCouponList(whereObject, data => {
if (data['return_code'] === '000000') {
this.loadingCoupon = false;
this.requestCouponData = data['return_data'].list;
} else {
this.message.error(data['return_msg']);
}
});
}
handleOk(): void {
const couponIdStr = [];
this.setOfCheckedId.forEach(item => couponIdStr.push(item));
const params = {
discountId : this.discountId,
couponIdStr : couponIdStr.join(',')
};
this.discount.insertDiscountCoupon(params , data => {
if (data['return_code'] === '000000') {
this.message.success(data['return_data']);
} else {
this.message.error(data['return_msg']);
}
});
this.isVisible = false;
}
handleCancel(): void {
this.isVisible = false;
}
// 重置
public resetCouponForm(): void {
this.searchFormCoupon.reset();
}
public getCouponList(id: number): void {
this.RelByDiscountId = id;
this.getRelByDiscount(id);
this.isVisibleList = true;
}
getRelByDiscount(id: number): void {
this.loadingDiscountCoupon = true;
this.discount.getRelByDiscount(id , data => {
if (data['return_code'] === '000000') {
this.loadingDiscountCoupon = false;
this.discountCoupon = data['return_data'];
} else {
this.message.error(data['return_msg']);
}
});
}
handleCancelList(): void {
this.isVisibleList = false;
}
showDeleteConfirmDelete(id: number): void {
this.common.showConfirm('是否确定删除!' , dataR => {
if (dataR) {
this.discount.delete(id, data => {
if (data['return_code'] === '000000') {
this.getRelByDiscount(this.RelByDiscountId);
this.message.success(data['return_data']);
} else {
this.message.error(data['return_msg']);
}
});
}
});
}
}