Files
bbq/src/app/shared/components/dynamic-setting/dynamic-setting-modal/dynamic-setting-modal.component.ts
Taric Xin 976e3a7b9b edit
2022-01-10 15:49:06 +08:00

92 lines
2.6 KiB
TypeScript

import { Component, Input, OnInit } from '@angular/core';
import { ModalHelper } from '@delon/theme';
import { NzModalRef } from 'ng-zorro-antd/modal';
import { BaseService } from 'src/app/shared/services';
@Component({
selector: 'app-dynamic-setting-modal',
templateUrl: './dynamic-setting-modal.component.html',
styleUrls: ['./dynamic-setting-modal.component.less']
})
export class DynamicSettingModalComponent implements OnInit {
tabs: any[] = [];
selectedTab: any = null;
configList: any = [];
@Input()
extendType!: string;
@Input()
businessId!: string;
constructor(public service: BaseService, private modalHelp: NzModalRef) {}
ngOnInit() {
this.getTypeList();
}
getTypeList() {
this.service
.request('/api/mdc/pbc/sysConfigItemExtend/getSysConfigExtend', {
configFullKey: 'sys.config',
extendType: this.extendType,
businessId: this.businessId
})
.subscribe((res: Array<any>) => {
if (res?.length > 0) {
const typeData = res.find(config => config.configFullKey === 'sys.config');
if (typeData) {
this.tabs = typeData.children;
this.selectedTab = typeData.children[0];
this.configList = this.formatItems(this.selectedTab.items);
}
}
});
}
changeType(type: any): void {
this.selectedTab = type;
this.configList = this.formatItems(type.items);
}
saveAction(params: Array<any>) {
const p = params.map(config => ({
businessId: this.businessId,
configId: config.configId,
extendType: this.extendType,
id: config.extendId,
configItemId: config.id,
parentId: config.parentId,
itemData: config.itemData,
itemValue: config.itemValue,
remark: config.remark
}));
this.service.request('/api/mdc/pbc/sysConfigItemExtend/saveBatch', p).subscribe(res => {
if (res) {
this.service.msgSrv.success('修改配置成功');
this.modalHelp.destroy();
}
});
}
private formatItems(items: Array<any>): Array<any> {
if (items?.length > 0) {
return items
.map(item => ({
...item,
itemData: item.extendItemData || item.itemData,
itemValue: item.extendItemValue || item.itemValue
}))
.map(item => ({
...item,
remark: item.remark ? JSON.parse(item.remark) : null,
extend: item.extend ? JSON.parse(item.extend) : [],
// itemData: item.itemData ? JSON.parse(item.itemData) : item.itemData,
itemValue: item.itemValue ? JSON.parse(item.itemValue) : item.itemValue
}));
}
return [];
}
}