input-tree的层级问题
请问input-tree如何判断层级level,我现在是想不同的层级显示不同页面,但是没法得到tree的层数,他没有level属性,通过tree的name和source里面的value无法判断是哪一层的,举个例子: tree的第一层级显示form1,第二层级显示form2,通过visibleOn="level1"和visibleOn="level2",来控制form的显隐,请问如何操作
tree的数据是后端返回的,可以让后端在生成tree 结构的时候 加上level
tree的数据是后端返回的,可以让后端在生成tree 结构的时候 加上level
您好 怎么取到这个level值呢?请看下我整的demo
问题:如tree接口有level,但是不知道怎么拿到这个值
{ "type": "page", "body": [ { "type": "crud", "visibleOn": "this.level === 1", "api": { "url": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/sample?id=${tree}", "data": { "page": "${page}", "perPage": "${perPage}" } }, "syncLocation": false, "columns": [ { "name": "id", "label": "ID" }, { "name": "engine", "label": "Rendering engine" }, { "name": "browser", "label": "Browser" }, { "name": "platform", "label": "Platform(s)" }, { "name": "version", "label": "Engine version" }, { "name": "grade", "label": "CSS grade" } ] }, { "type": "crud", "visibleOn": "this.level === 2", "api": { "url": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/sample?id=${tree}", "data": { "page": "${page}", "perPage": "${perPage}" } }, "syncLocation": false, "columns": [ { "name": "id2", "label": "ID" }, { "name": "engine2", "label": "Rendering engine" }, { "name": "browser2", "label": "Browser" }, { "name": "platform2", "label": "Platform(s)" }, { "name": "version2", "label": "Engine version" }, { "name": "grade2", "label": "CSS grade" } ] } ], "asideResizor": true, "asideMinWidth": 150, "asideMaxWidth": 400, "aside": [ { "type": "input-tree", "name": "tree", "treeContainerClassName": "border-0", "options": [ { "label": "Folder A", "value": 1, "children": [ { "label": "file A", "value": 2, "level": 2 }, { "label": "Folder B", "value": 3, "children": [ { "label": "file b1", "value": 3.1, "level": 2 }, { "label": "file b2", "value": 3.2, "level": 2 } ], "level": 1 } ], "level": 1 }, { "label": "file C", "value": 4, "level": 1 }, { "label": "file D", "value": 5, "level": 1 } ] } ] }
请问input-tree如何判断层级level,我现在是想不同的层级显示不同页面,但是没法得到tree的层数,他没有level属性,通过tree的name和source里面的value无法判断是哪一层的,举个例子: tree的第一层级显示form1,第二层级显示form2,通过visibleOn="level1"和visibleOn="level2",来控制form的显隐,请问如何操作
请问这个功能实现了吗?我和你的功能一样,求指教 非常感谢
请问input-tree如何判断层级level,我现在是想不同的层级显示不同页面,但是没法得到tree的层数,他没有level属性,通过tree的name和source里面的value无法判断是哪一层的,举个例子: tree的第一层级显示form1,第二层级显示form2,通过visibleOn="level1"和visibleOn="level2",来控制form的显隐,请问如何操作
请问这个功能实现了吗?我和你的功能一样,求指教 非常感谢
解决了,但我不知道是不是官方写法,首先tree不能放到边栏中,要和两个crud一起放到同一个form中,给两个crud分别给name为crud1,crud2,通过tree的autoFill属性将level赋值给crud1和crud2,然后就实现了,下面是我在你原代码的基础上做的修改
{
"type": "page",
"body": [
{
"type": "form",
"body": [
{
"type": "grid",
"columns": [
{
"body": [
{
"type": "input-tree",
"name": "tree",
"treeContainerClassName": "border-0",
"autoFill": {
"crud1": "${level}",
"crud2": "${level}"
},
"options": [
{
"label": "Folder A",
"value": 1,
"children": [
{
"label": "file A",
"value": 2,
"level": 2
},
{
"label": "Folder B",
"value": 3,
"children": [
{
"label": "file b1",
"value": 3.1,
"level": 2
},
{
"label": "file b2",
"value": 3.2,
"level": 2
}
],
"level": 1
}
],
"level": 1
},
{
"label": "file C",
"value": 4,
"level": 1
},
{
"label": "file D",
"value": 5,
"level": 1
}
]
}
],
"md": "auto"
},
{
"body": [
{
"type": "crud",
"name": "crud1",
"visibleOn": "this.crud1 === 1",
"api": {
"url": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/sample?id=${tree}",
"data": {
"page": "${page}",
"perPage": "${perPage}"
}
},
"syncLocation": false,
"columns": [
{
"name": "id",
"label": "ID"
},
{
"name": "engine",
"label": "Rendering engine"
},
{
"name": "browser",
"label": "Browser"
},
{
"name": "platform",
"label": "Platform(s)"
},
{
"name": "version",
"label": "Engine version"
},
{
"name": "grade",
"label": "CSS grade"
}
]
},
{
"type": "crud",
"visibleOn": "this.crud2 === 2",
"api": {
"url": "https://3xsw4ap8wah59.cfc-execute.bj.baidubce.com/api/amis-mock/mock2/sample?id=${tree}",
"data": {
"page": "${page}",
"perPage": "${perPage}"
}
},
"syncLocation": false,
"columns": [
{
"name": "id2",
"label": "ID"
},
{
"name": "engine2",
"label": "Rendering engine"
},
{
"name": "browser2",
"label": "Browser"
},
{
"name": "platform2",
"label": "Platform(s)"
},
{
"name": "version2",
"label": "Engine version"
},
{
"name": "grade2",
"label": "CSS grade"
}
],
"name": "crud2"
}
]
}
]
}
],
"wrapWithPanel": false
}
]
}
你好 上面提供的案例非常有用,非常感谢,现在还有一个问题,期望解答

@jiasijiamn Tree 中 Value 值应该是唯一的 就如同数据表中 id一样
@jiasijiamn Tree 中 Value 值应该是唯一的 就如同数据表中 id一样
好滴,谢谢您