59 lines
1.4 KiB
JavaScript
59 lines
1.4 KiB
JavaScript
// packageF/storeManagement/components/collapse/collapse.js
|
||
Component({
|
||
/**
|
||
* 组件的属性列表
|
||
*/
|
||
properties: {
|
||
active:{
|
||
type:[Array,Number,String],
|
||
value:{}
|
||
}
|
||
},
|
||
relations: {
|
||
'./collapse-item': {
|
||
type: 'child', // 关联的目标节点应为子节点
|
||
linked: function(target) {
|
||
this.data.children.push(target);
|
||
// 每次有custom-li被插入时执行,target是该节点实例对象,触发在该节点attached生命周期之后
|
||
},
|
||
linkChanged: function(target) {
|
||
this.data.children.splice(active.indexOf(target),1);
|
||
// 每次有custom-li被移动后执行,target是该节点实例对象,触发在该节点moved生命周期之后
|
||
},
|
||
unlinked: function(target) {
|
||
// 每次有custom-li被移除时执行,target是该节点实例对象,触发在该节点detached生命周期之后
|
||
}
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 组件的初始数据
|
||
*/
|
||
data: {
|
||
children:[],
|
||
},
|
||
|
||
observers:{
|
||
active(){
|
||
this.data.children.forEach((child) => {
|
||
child.updateExpanded();
|
||
});
|
||
}
|
||
},
|
||
|
||
/**
|
||
* 组件的方法列表
|
||
*/
|
||
methods: {
|
||
switch(name){
|
||
let active = JSON.parse(JSON.stringify(this.data.active));
|
||
if(active.indexOf(name)!=-1){
|
||
active.splice(active.indexOf(name),1);
|
||
}else {
|
||
active.push(name);
|
||
}
|
||
this.triggerEvent("change",active);
|
||
}
|
||
}
|
||
});
|