import { Component, OnInit, ViewChild } from '@angular/core'; import { STComponent, STColumn, STChange } from '@delon/abc/st'; import { SFComponent, SFSchema } from '@delon/form'; import { NzModalService } from 'ng-zorro-antd/modal'; import { SystemService } from '../../services/system.service'; import { CartConfigActionModalComponent } from './cart-config-action-modal/cart-config-action-modal.component'; @Component({ selector: 'app-cart-config', templateUrl: './cart-config.component.html', styleUrls: ['./cart-config.component.less'] }) export class CartConfigComponent implements OnInit { @ViewChild('st', { static: true }) st!: STComponent; @ViewChild('sf', { static: false }) sf!: SFComponent; tabs = [ { name: '车型配置', type: 1, isActived: false }, { name: '车长配置', type: 2, isActived: false }, { name: '禁限物品名单', type: 3, isActived: false } ]; tabType = 1; searchSchema: SFSchema = { properties: { tabType: { type: 'number', ui: { hidden: true } }, params1: { title: '车型', type: 'string', ui: { placeholder: '请输入', visibleIf: { tabType: (value: number) => this.tabType === 1 } } }, params2: { title: '车长', type: 'string', ui: { placeholder: '请输入', visibleIf: { tabType: (value: number) => this.tabType === 2 } } }, params3: { title: '物品名称', type: 'string', ui: { placeholder: '请输入', visibleIf: { tabType: (value: number) => this.tabType === 3 } } } } }; columns: STColumn[] = [ { title: '车型', index: 'itemValue', iif: () => this.tabType === 1 }, { title: '车长', index: 'itemValue', iif: () => this.tabType === 2 }, { title: '物品名称', index: 'itemValue', iif: () => this.tabType === 3 }, { title: '启用状态', className: 'text-center', index: 'statePaused', type: 'badge', badge: { false: { text: '启用', color: 'success' }, true: { text: '禁用', color: 'error' } } }, { title: '创建时间', index: 'modifyTime', type: 'date' }, { title: '操作', buttons: [ { text: '编辑', click: item => this.configAction(item) }, { text: '删除', click: item => this.deleteAction(item) } ] } ]; get reqParams() { let params = {}; switch (this.tabType) { case 1: Object.assign(params, { dictKey: 'car:model', itemValue: this.sf?.value.params1 }); break; case 2: Object.assign(params, { dictKey: 'car:length', itemValue: this.sf?.value.params2 }); break; case 3: Object.assign(params, { dictKey: 'ban.goods.name', itemValue: this.sf?.value.params3 }); break; default: break; } return { ...params }; } constructor(public service: SystemService, private nzModalService: NzModalService) {} ngOnInit(): void {} // 切换Tab changeTab(item: any) { this.tabType = item.type; this.sf?.setValue('/tabType', item.type); this.sf?.reset(); setTimeout(() => { this.tabs.forEach(i => (i.isActived = false)); item.isActived = !item.isActived; this.st.load(1); this.st.resetColumns(); }, 500); } configAction(item?: any) { console.log(item) console.log(this.tabType) const modal = this.nzModalService.create({ nzContent: CartConfigActionModalComponent, nzComponentParams: item ? { i: { ...item }, configType: this.tabType } : { i: { id: 0 }, configType: this.tabType }, nzFooter: null }); modal.afterClose.subscribe(res => { if (res) { this.st.load(); } }); } deleteAction(item?: any) { this.nzModalService.error({ nzTitle: '确认删除?', nzClosable: false, nzCancelText: '取消', nzOnOk: () => { this.service.request(this.service.$api_delete_dict_by_ids, [item.id]).subscribe(res => { if (res) { this.service.msgSrv.success('删除配置成功'); this.st.load(); } }); } }); } /** * 重置表单 */ resetSF() { this.sf.reset(); } }