...
html
<d-button (btnClick)="HuGet()">huzh Get</d-button>
<h5 class="text-muted">Standard: Single Select</h5>
<div class="row">
<div class="col-md-5" style="font-size: 0">
<d-tree-select
placeholder="Standard Input"
[treeData]="data1"
[expandTree]="true"
[(ngModel)]="value1"
(valueChanged)="valueChanged($event)"
(ngModelChange)="showSelected($event)"
style=" 280px"
></d-tree-select>
</div>
</div>
ts
import {Component, OnInit} from '@angular/core';
import {HttpClient} from '@angular/common/http';
import {DValidateRules} from 'ng-devui/form';
import {of} from 'rxjs';
import {delay, map} from 'rxjs/operators';
interface Ihu {
title: string;
id: string;
}
interface IIhu extends Ihu {
title: string;
children: Ihu[];
id: string;
}
interface IIIhu {
data: {
sections: [
{
sectionId: string,
name: string,
items: [
{
id: string,
name: string,
}
]
}
]
};
}
@Component({
selector: 'app-huzh',
templateUrl: './huzh.component.html',
styleUrls: ['./huzh.component.scss']
})
export class HuzhComponent implements OnInit {
ngOnInit() {
console.log('huzh'); // 传入的数据
this.HuGet();
}
Idd: Ihu = {title: '', id: ''};
IIdd: IIhu = {title: '', children: [], id: ''};
data2 = [];
data1 = [];
value1 = {
'title': 'g1s1',
'id': '1'
};
// 固定值,直接推给 data1, 没有问题,测试数据
// data3 = {
// 'data': {
// 'projectId': '089ebe99-6360-41a6-bdfd-847ae77e6c0a',
// 'appId': '7a519829-414d-47c7-82e8-ee3ae0be4690',
// 'name': 'huzh-测试',
// 'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/0_lego.svg',
// 'color': '#00bcd4',
// 'desc': '',
// 'sections': [
// {
// 'sectionId': '11',
// 'name': 'g1',
// 'items': [
// {
// 'id': '22',
// 'name': 'g1s1',
// 'type': 0,
// 'iconUrl': 'https://coopera.xxx.com:443/file/mdpub/customIcon/hr_workbench.svg',
// 'status': 1
// },
// {
// 'id': '33',
// 'name': 'g1s2',
// 'type': 0,
// 'iconUrl': 'https://cooper.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
// 'status': 1
// }
// ]
// },
// {
// 'sectionId': '44',
// 'name': 'g2',
// 'items': [
// {
// 'id': '55',
// 'name': 'g2s1',
// 'type': 0,
// 'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
// 'status': 1
// },
// {
// 'id': 'hu66',
// 'name': 'g2s2',
// 'type': 0,
// 'iconUrl': 'https://coop.xxx.com:443/file/mdpub/customIcon/1_0_home.svg',
// 'status': 1
// }
// ]
// }
// ]
// },
// 'success': true,
// 'error_code': 1
// };
ddd: IIIhu = {
data: {
sections: [
{
sectionId: '',
name: '',
items: [
{
id: '',
name: '',
}
]
}
]
}
};
constructor(private http: HttpClient) {
}
HuGet(): void {
// 先用变量接住http resp,再赋值
// devui的接口需要传定值,http 直接获取的值如果push到 data1中,显示不了数据
// this.http.get<IIIhu> 这种写法可能是必须的,可以直接在resp中使用 '.propertie' 访问,否则报错
// 先定类型,在处理
console.log('hello');
this.http.get<IIIhu>('http://127.0.0.1:4200/api/v1/open/app/get?appKey=b5e55ba6e1&sign=ZjBhMjdjMjM3O假的GI3NGI5ZwZWQwZTI5OTc0NjNkYWNhNjU0ZjAzMGRiMzc5MzZ0MDc5OTE1NA==').subscribe(
(data: IIIhu) => {
this.ddd = {
data: {
sections: [
{
sectionId: '',
name: '',
items: [
{
id: '',
name: '',
}
]
}
]
}
};
this.ddd = data;
console.log('now ddd=>', this.ddd);
//置空否则点击按钮,否则一直增加
this.data1 = [];
this.data2 = [];
this.ddd.data.sections.forEach(
(value, index, array) => {
this.IIdd = {
id: '',
title: '',
children: []
};
this.IIdd.title = value.name;
this.IIdd.id = value.sectionId;
value.items.forEach(
(value2, index1, array1) => {
this.Idd = {id: '', title: ''};
this.Idd.title = value2.name;
this.Idd.id = value2.id;
this.IIdd.children.push(this.Idd);
}
);
this.data2.push(this.IIdd);
}
);
console.log('after');
console.log('last', this.data2);
this.data1 = this.data2;
}
);
}
// 接data3
// HuD(): void {
// this.data1 = [];
// for (const item of this.data3.data.sections) {
// this.IIdd = {
// id: '',
// title: '',
// children: []
// };
// this.IIdd.title = item.name;
// this.IIdd.id = item.sectionId;
// const va = item;
// for (let emm of va.items) {
// this.Idd = {id: '', title: ''};
// const mm = emm;
// console.log('emm===>', mm);
// this.Idd.id = mm.id;
// this.Idd.title = mm.name;
// this.IIdd.children.push(this.Idd);
// }
// this.data1.push(this.IIdd);
// console.log(this.data1);
// }
// }
//
showSelected($event: Event) {
console.log('event emitted: ', $event);
}
valueChanged($event) {
console.log('value changed:', $event);
}
//
}