Compare commits

...

2 Commits

Author SHA1 Message Date
libertyspy
e12c3c0302 UPDATE: fk 2026-02-08 20:14:46 +08:00
libertyspy
d8c429d000 UPDATE: fk 2026-02-08 20:14:07 +08:00
8 changed files with 102 additions and 6 deletions

View File

@@ -7,6 +7,11 @@ import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import com.solution.common.core.domain.R;
import com.solution.system.domain.NodeTemplateEntity;
import com.solution.system.domain.Nodeparameter;
import com.solution.system.domain.Templateparameterdef;
import com.solution.system.service.INodeparameterService;
import com.solution.system.service.ITemplateparameterdefService;
import com.solution.web.controller.behaviour.vo.NodetemplateDTO;
import com.solution.web.controller.behaviour.vo.NodetemplateVO;
import io.swagger.annotations.Api;
@@ -45,6 +50,12 @@ public class NodetemplateController extends BaseController {
@Autowired
private INodetemplateService nodetemplateService;
@Autowired
private INodeparameterService nodeparameterService;
@Autowired
private ITemplateparameterdefService templateparameterdefService;
/**
* 查询节点模板列表
*/
@@ -56,6 +67,25 @@ public class NodetemplateController extends BaseController {
return getDataTable(list);
}
@ApiOperation("节点模板列表")
@PreAuthorize("@ss.hasPermi('system:nodetemplate:all')")
@GetMapping("/all")
public R<List<NodeTemplateEntity>> all() {
Nodetemplate nodetemplate = new Nodetemplate();
List<Nodetemplate> list = nodetemplateService.selectNodetemplateList(nodetemplate);
if (CollectionUtils.isEmpty(list)) {
return R.ok(null);
}
List<NodeTemplateEntity> entities = new ArrayList<>();
for (Nodetemplate template : list) {
Templateparameterdef def = new Templateparameterdef();
def.setTemplateId(template.getId());
List<Templateparameterdef> parameters = templateparameterdefService.selectTemplateparameterdefList(def);
entities.add(new NodeTemplateEntity(template, parameters));
}
return R.ok(entities);
}
@ApiOperation("节点模板列表")
@PreAuthorize("@ss.hasPermi('system:nodetemplate:list')")
@GetMapping("/listAll")

View File

@@ -0,0 +1,43 @@
package com.solution.system.domain;
/*
* This file is part of the kernelstudio package.
*
* (c) 2014-2026 zlin <admin@kernelstudio.com>
*
* For the full copyright and license information, please view the LICENSE file
* that was distributed with this source code.
*/
import java.util.ArrayList;
import java.util.List;
public class NodeTemplateEntity extends Nodetemplate {
private List<Templateparameterdef> parameters = new ArrayList<>();
public NodeTemplateEntity() {
}
public NodeTemplateEntity(List<Templateparameterdef> parameters) {
this.parameters = parameters;
}
public NodeTemplateEntity(NodeTemplateEntity entity) {
super(entity);
this.parameters = entity.getParameters();
}
public NodeTemplateEntity(Nodetemplate entity, List<Templateparameterdef> parameters) {
super(entity);
this.parameters = parameters;
}
public List<Templateparameterdef> getParameters() {
return parameters;
}
public void setParameters(List<Templateparameterdef> parameters) {
this.parameters = parameters;
}
}

View File

@@ -42,7 +42,20 @@ public class Nodetemplate extends BaseEntity
@Excel(name = "模版类型节点模版或者条件判断例如“node”precondition“")
private String templeteType;
public void setId(Long id)
public Nodetemplate() {
}
public Nodetemplate(Nodetemplate template) {
this.id = template.id;
this.type = template.type;
this.name = template.name;
this.logicHandler = template.logicHandler;
this.description = template.description;
this.englishName = template.englishName;
this.templeteType = template.templeteType;
}
public void setId(Long id)
{
this.id = id;
}

View File

@@ -938,7 +938,7 @@
}
.ant-collapse-content-box {
max-height: 38vh;
max-height: 37vh;
overflow: auto;
}
}

View File

@@ -16,7 +16,7 @@ const req = HttpRequestClient.create<BasicResponse>({
});
export const findNodeTemplates = (): Promise<NodeTemplatesResponse> => {
return req.get('/system/nodetemplate/listAll');
return req.get('/system/nodetemplate/all');
};
export const findTreesByQuery = (query: Partial<BehaviorTree> = {}): Promise<BehaviorTreePageResponse> => {

View File

@@ -81,9 +81,8 @@ export default defineComponent({
const activeKey = ref<number>(1);
const templateData = ref<NodeTemplate[]>([]);
const isDraggingOver = ref(false);
const isDraggingOver = ref<boolean>(false);
const draggedNodeData = ref<NodeTemplate | null>(null);
// 控制节点
const controlTemplates = ref<NodeTemplate[]>([]);
// 条件节点

View File

@@ -12,7 +12,7 @@
<p>说明: {{item.description}}</p>
</template>
<a-list-item @click="()=> handleSelect(item)">
{{ substring(item.name, 25) }}
{{ substring(item.name, 15) }}
</a-list-item>
</a-tooltip>
</template>

View File

@@ -9,6 +9,16 @@
import type { ApiDataResponse, NullableString } from '@/types';
export interface NodeTemplateParameter {
id: number,
templateId: number,
paramKey: NullableString,
dataType: NullableString,
defaultValue: NullableString,
description: NullableString,
templateType: NullableString,
}
export interface NodeTemplate {
id: number;
name: NullableString;
@@ -17,6 +27,7 @@ export interface NodeTemplate {
description: NullableString;
templeteType: NullableString;
englishName: NullableString;
parameters: NodeTemplateParameter[],
}
export interface NodeTemplatesResponse extends ApiDataResponse<NodeTemplate[]> {