78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| /*
 | |
|  * @Description  :
 | |
|  * @Version      : 1.0
 | |
|  * @Author       : Shiming
 | |
|  * @Date         : 2022-01-25 13:10:49
 | |
|  * @LastEditors  : Shiming
 | |
|  * @LastEditTime : 2022-01-26 17:45:11
 | |
|  * @FilePath     : \\tms-obc-web\\src\\app\\routes\\sys-setting\\components\\basic-setting\\basic-setting.component.ts
 | |
|  * Copyright (C) 2022 huzhenhong. All rights reserved.
 | |
|  */
 | |
| import { Component, OnInit, ViewChild } from '@angular/core';
 | |
| import { ACLService } from '@delon/acl';
 | |
| import { SFComponent, SFSchema, SFUISchema } from '@delon/form';
 | |
| import { SystemService } from '../../services/system.service';
 | |
| const NOJSONTYPE = new Set([8, 12, 13]);
 | |
| @Component({
 | |
|   selector: 'app-basic-setting',
 | |
|   templateUrl: './basic-setting.component.html',
 | |
|   styleUrls: ['./basic-setting.component.less']
 | |
| })
 | |
| export class BasicSettingComponent implements OnInit {
 | |
|   tabs: any[] = [];
 | |
|   selectedTab: any = null;
 | |
|   labelWidth = 250;
 | |
|   configList: any = [];
 | |
|   isCanSave = false;
 | |
|   constructor(public service: SystemService, private acl: ACLService) {
 | |
|     this.isCanSave = acl.data.full || !!acl.data.abilities?.find(a => a === 'SYSTEM-BASIC_SETTING-save');
 | |
|   }
 | |
| 
 | |
|   ngOnInit() {
 | |
|     this.getTypeList();
 | |
|   }
 | |
| 
 | |
|   getTypeList() {
 | |
|     this.service.request(this.service.$api_get_config_tree, { configFullKey: 'sys.config', extendType: 0 }).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.getConfigList(this.selectedTab);
 | |
|         }
 | |
|       }
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   getConfigList(selectedTab: any) {
 | |
|     this.selectedTab = selectedTab;
 | |
|     this.service.request(this.service.$api_get_config_by_parent_id, { id: selectedTab?.id }).subscribe((res: Array<any>) => {
 | |
|       if (res?.length > 0) {
 | |
|         res = res.map(item => ({
 | |
|           ...item,
 | |
|           remark: item.remark ? JSON.parse(item.remark) : null,
 | |
|           itemValue: item?.itemValue ? (NOJSONTYPE.has(item?.itemType) ? item?.itemValue : JSON.parse(item?.itemValue)) : item?.itemValue,
 | |
|           itemData: item.itemData ? JSON.parse(item.itemData) : item.itemData
 | |
|         }));
 | |
|         const hiddenType = res.find(item => item.itemType === 7 || item.itemType === 999);
 | |
|         this.labelWidth = hiddenType ? 0 : 250;
 | |
|         this.configList = res;
 | |
|       } else {
 | |
|         this.configList = [];
 | |
|       }
 | |
|     });
 | |
|   }
 | |
| 
 | |
|   saveAction(params: any) {
 | |
|     this.service.request(this.service.$api_update_config_batch, params).subscribe(res => {
 | |
|       if (res) {
 | |
|         this.service.msgSrv.success('修改配置成功');
 | |
|         setTimeout(() => {
 | |
|           this.getConfigList(this.selectedTab);
 | |
|         }, 100);
 | |
|       }
 | |
|     });
 | |
|   }
 | |
| }
 |