Files
bbq/src/app/routes/usercenter/components/freight/enterprise-audit/enterprise-audit.component.ts
Taric Xin bce661246c edit
2021-12-20 15:15:13 +08:00

283 lines
7.7 KiB
TypeScript

import { Component, OnInit, ViewChild } from '@angular/core';
import { ActivatedRoute, Router } from '@angular/router';
import { STChange, STColumn, STComponent, STData } from '@delon/abc/st';
import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
import { NzModalService } from 'ng-zorro-antd/modal';
import { UsermanageService } from '../../../services/usercenter.service';
import { AuditAdminComponent } from './audit-admin/audit-admin.component';
@Component({
selector: 'app-Freight-components-enterprise-audit',
templateUrl: './enterprise-audit.component.html',
styleUrls: ['./enterprise-audit.component.less']
})
export class FreightComponentsEnterpriseAuditComponent implements OnInit {
_$expand = false;
ui: SFUISchema = { '*': { spanLabelFixed: 90, grid: { lg: 8, md: 12, sm: 12, xs: 24 } } };
schema: SFSchema = this.initSF();
enterColumns: STColumn[] = this.initEnterST();
adminColumns: STColumn[] = this.initAdminST();
@ViewChild('st', { static: false }) st!: STComponent;
@ViewChild('sf', { static: false }) sf!: SFComponent;
tabType = 1;
tabs = [
{
name: '企业审核',
type: 1,
isActived: false
},
{
name: '企业管理员审核',
type: 2,
isActived: false
}
];
constructor(public service: UsermanageService, private router: Router, private modal: NzModalService) {}
/**
* 查询参数
*/
get reqParams() {
const params = Object.assign({}, this.sf?.value || {}, {
flag: this.tabType
});
delete params._$expand;
return { ...params, listSource: 2 };
}
/**
* 伸缩查询条件
*/
expandToggle(status: boolean) {
this._$expand = status;
this.sf?.setValue('/expand', this._$expand);
}
/**
* 重置表单
*/
resetSF() {
this.sf.reset();
this._$expand = false;
}
/**
* 程序初始化入口
*/
ngOnInit() {}
/**
* 数据列表状态变化事件
*/
change(e: STChange) {
// console.log(e.checkbox);
}
/**
* 查看详情
*/
ViewAdimin(record: any) {
const modal = this.modal.create({
nzContent: AuditAdminComponent,
nzComponentParams: { i: { ...record } },
nzFooter: [
{
label: '驳回',
type: 'primary',
onClick: instance => {
if (!instance?.sf.value.approvalOpinion) {
this.service.msgSrv.warning('请填写备注');
return false;
}
this.adminAuditUser(
{
id: record.id,
approvalStatus: '30',
approvalOpinion: instance?.sf.value.approvalOpinion
},
modal
);
return;
}
},
{
label: '通过',
type: 'primary',
onClick: () => {
this.adminAuditUser(
{
id: record.id,
approvalStatus: '20'
},
modal
);
}
}
]
});
modal.afterClose.subscribe(res => {
// this.st.load(1);
});
}
View(record: any) {
this.router.navigate([`/usercenter/freight/enterprise/detail/${record.id}`]);
}
// 切换Tab
changeTab(item: any) {
this.tabType = item.type;
this.expandToggle(false);
this.sf?.reset();
this.st.data = this.tabType === 1 ? this.service.$api_get_freight_list : this.service.$api_get_enterprise_admin_list;
setTimeout(() => {
this.st.load(1);
}, 100);
}
private adminAuditUser(params: any, modal: any) {
this.service.request(this.service.$api_audit_enterprise_admin, params).subscribe(res => {
if (res) {
this.service.msgSrv.success('审核成功');
modal.destroy();
this.st.load(1);
}
});
}
exportList() {
const params = this.reqParams;
this.service.downloadFile(this.service.$api_export_enterprise, params);
}
/**
* 初始化数据列表
*/
initEnterST(): STColumn[] {
return [
{ title: '企业名称', className: 'text-center', index: 'enterpriseName' },
{ title: '联系人', className: 'text-center', index: 'contacter' },
{ title: '手机号', className: 'text-center', index: 'mobile' },
{ title: '申请时间', className: 'text-center', index: 'createTime' },
{
title: '审核状态',
className: 'text-center',
index: 'approvalStatus',
type: 'badge',
badge: {
10: { text: '待审核', color: 'processing' },
20: { text: '已成功', color: 'success' },
30: { text: '审核失败', color: 'warning' }
}
},
{
title: '常用服务',
className: 'text-center',
index: 'oftenUsedServices',
type: 'enum',
enum: { 10: '整车发货', 20: '大宗发货' }
},
{ title: '推广业务员', className: 'text-center', index: 'promotersTelephone' },
{
title: '操作',
fixed: 'right',
width: '180px',
className: 'text-center',
buttons: [{ text: '查看', click: _record => this.View(_record) }]
}
];
}
initAdminST(): STColumn[] {
return [
{ title: '企业名称', className: 'text-center', index: 'enterpriseName' },
{ title: '当前管理员', className: 'text-center', index: 'oldAdminName' },
{ title: '当前管理员手机号', className: 'text-center', index: 'oldAdminMobile' },
{ title: '转授对象', className: 'text-center', index: 'newAdminName' },
{ title: '转授对象手机号', className: 'text-center', index: 'newAdminMobile' },
{ title: '申请时间', className: 'text-center', index: 'createTime' },
{
title: '状态',
className: 'text-center',
index: 'approvalStatus',
type: 'badge',
badge: {
10: { text: '待审核', color: 'processing' },
20: { text: '已成功', color: 'success' },
30: { text: '已驳回', color: 'warning' }
}
},
{
title: '操作',
fixed: 'right',
width: '180px',
className: 'text-center',
buttons: [{ text: '审核', click: _record => this.ViewAdimin(_record), iif: (item: any) => item.approvalStatus === 10 }]
}
];
}
/**
* 初始化查询表单
*/
initSF(): SFSchema {
return {
properties: {
expand: { type: 'boolean', ui: { hidden: true } },
enterpriseName: {
title: '企业名称',
type: 'string',
ui: {
placeholder: '请输入'
}
},
contactName: {
title: '联系人',
type: 'string',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => this.tabType === 1
}
}
},
contactName2: {
title: '管理员',
type: 'string',
ui: {
placeholder: '请输入',
visibleIf: {
expand: (value: boolean) => this.tabType !== 1
}
}
},
mobile: {
title: '手机号',
type: 'string',
format: 'mobile',
maxLength: 11,
ui: {
placeholder: '请输入'
}
},
approvalStatus: {
type: 'string',
title: '审核状态',
enum: [
{ label: '全部', value: '' },
{ label: '待审核', value: 10 },
{ label: '已成功', value: 20 },
{ label: '审核失败', value: 30 }
],
default: '',
ui: {
widget: 'select',
visibleIf: {
expand: (value: boolean) => value
}
}
}
}
};
}
}