131 lines
4.0 KiB
TypeScript
131 lines
4.0 KiB
TypeScript
/*
|
|
* @Description :
|
|
* @Version : 1.0
|
|
* @Author : Shiming
|
|
* @Date : 2022-01-10 16:06:17
|
|
* @LastEditors : Shiming
|
|
* @LastEditTime : 2022-04-20 10:00:02
|
|
* @FilePath : \\tms-obc-web\\src\\app\\shared\\components\\dynamic-setting\\dynamic-setting-modal\\dynamic-setting-modal.component.ts
|
|
* Copyright (C) 2022 huzhenhong. All rights reserved.
|
|
*/
|
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/compiler';
|
|
import { Component, Input, OnInit } from '@angular/core';
|
|
import { ModalHelper } from '@delon/theme';
|
|
import { NzModalRef } from 'ng-zorro-antd/modal';
|
|
import { Observable, of } from 'rxjs';
|
|
import { map } from 'rxjs/operators';
|
|
import { BaseService } from 'src/app/shared/services';
|
|
|
|
@Component({
|
|
selector: 'app-dynamic-setting-modal',
|
|
templateUrl: './dynamic-setting-modal.component.html'
|
|
})
|
|
export class DynamicSettingModalComponent implements OnInit {
|
|
tabs: any[] = [];
|
|
selectedTab: any = null;
|
|
configFullKey = 'sys.config';
|
|
configList: any = [];
|
|
|
|
// 配置类型数组重组函数
|
|
@Input()
|
|
formatTypeList = (item: any[]) => {
|
|
return [...item];
|
|
};
|
|
@Input()
|
|
extendType!: string;
|
|
@Input()
|
|
spareBusinessId!: string;
|
|
@Input()
|
|
businessId!: string;
|
|
@Input()
|
|
configvalue!: string;
|
|
@Input()
|
|
labelWidth = 200;
|
|
|
|
constructor(public service: BaseService, private modalHelp: NzModalRef) {}
|
|
|
|
ngOnInit() {
|
|
if (this.configvalue) {
|
|
this.configFullKey = this.configvalue;
|
|
}
|
|
this.getTypeList();
|
|
}
|
|
|
|
getTypeList() {
|
|
this.service
|
|
.request('/api/mdc/pbc/sysConfigItemExtend/getSysConfigExtend', {
|
|
configFullKey: this.configFullKey,
|
|
extendType: this.extendType,
|
|
businessId: this.businessId,
|
|
spareBusinessId: this.spareBusinessId,
|
|
})
|
|
.pipe(
|
|
map((res: Array<any>) => {
|
|
if (res?.length > 0) {
|
|
const typeData = res.find(config => config.configFullKey === this.configFullKey);
|
|
if (typeData) {
|
|
return typeData.children || [];
|
|
}
|
|
}
|
|
return [];
|
|
}),
|
|
map(this.formatTypeList)
|
|
)
|
|
.subscribe((res: Array<any>) => {
|
|
this.tabs = res;
|
|
if (res?.length > 0) {
|
|
this.selectedTab = res[0];
|
|
this.configList = this.formatItems(this.selectedTab.items);
|
|
const hiddenType = this.configList.find((item: any) => item.itemType === 7 || item.itemType === 999);
|
|
this.labelWidth = hiddenType ? 0 : 200;
|
|
}
|
|
});
|
|
}
|
|
|
|
changeType(type: any): void {
|
|
this.selectedTab = type;
|
|
this.configList = this.formatItems(type.items);
|
|
const hiddenType = this.configList.find((item: any) => item.itemType === 7 || item.itemType === 999);
|
|
this.labelWidth = hiddenType ? 0 : 200;
|
|
}
|
|
|
|
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(true);
|
|
}
|
|
});
|
|
}
|
|
|
|
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 ? (item?.itemType !== 8 ? JSON.parse(item?.itemValue) : item?.itemValue) : item?.itemValue
|
|
}));
|
|
}
|
|
return [];
|
|
}
|
|
}
|