UPDATE: fk

This commit is contained in:
libertyspy
2026-02-08 21:50:56 +08:00
parent af697e9304
commit a5a3c93135
2 changed files with 54 additions and 27 deletions

View File

@@ -27,6 +27,9 @@ export const findOneTreeById = (id: number): Promise<BehaviorTreeDetailsResponse
return req.get(`/system/behaviortree/${id}`); return req.get(`/system/behaviortree/${id}`);
}; };
export const deleteOneTreeById = (id: number): Promise<BehaviorTreeDetailsResponse> => {
return req.delete(`/system/behaviortree/${id}`);
};
export const updateTree = (rt: Partial<BehaviorTree>): Promise<BasicResponse> => { export const updateTree = (rt: Partial<BehaviorTree>): Promise<BasicResponse> => {
return req.postJson(`/system/behaviortree`, rt); return req.postJson(`/system/behaviortree`, rt);
@@ -35,18 +38,3 @@ export const updateTree = (rt: Partial<BehaviorTree>): Promise<BasicResponse> =>
export const createTree = (rt: Partial<BehaviorTree>): Promise<BasicResponse> => { export const createTree = (rt: Partial<BehaviorTree>): Promise<BasicResponse> => {
return req.putJson(`/system/behaviortree`, rt); return req.putJson(`/system/behaviortree`, rt);
}; };
// export const findOneTreeById = (id: number): Promise<TreeModelDetailsResponse> => {
// return req.postJson(`/tree-details`,{
// tree_id: id
// });
// };
//
// export const updateTree = (rt: Partial<TreeModelGraph>): Promise<BasicResponse> => {
// return req.postJson('/update-tree', rt);
// };
//
// export const createTree = (rt: Partial<TreeModelGraph>): Promise<BasicResponse> => {
// return req.postJson('/update-tree', rt);
// };

View File

@@ -8,16 +8,29 @@
<a-input-search size="small" allowClear v-model:value="behaviorTreeQuery.name" placeholder="行为树名称" @search="loadTress" /> <a-input-search size="small" allowClear v-model:value="behaviorTreeQuery.name" placeholder="行为树名称" @search="loadTress" />
</div> </div>
<a-list size="small" :data-source="behaviorTrees || []" style="min-height: 25vh"> <a-list size="small" :data-source="behaviorTrees || []" style="min-height: 25vh">
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<a-list-item>
<a-flex>
<a-tooltip placement="right"> <a-tooltip placement="right">
<template #title> <template #title>
<p>名称: {{ item.name }}</p> <p>名称: {{ item.name }}</p>
<p>说明: {{item.description}}</p> <p>说明: {{item.description}}</p>
</template> </template>
<a-list-item @click="()=> handleSelect(item)"> <span>{{ substring(item.name, 15) }}</span>
{{ substring(item.name, 15) }}
</a-list-item>
</a-tooltip> </a-tooltip>
<a-flex class="ks-tree-actions">
<span style="margin-right: 10px" @click="()=> handleSelect(item)"><EditFilled /></span>
<a-popconfirm
title="确定删除?"
@confirm="()=> handleDelete(item)"
>
<span class="ks-tree-action ks-tree-action-delete"><DeleteOutlined /></span>
</a-popconfirm>
</a-flex>
</a-flex>
</a-list-item>
</template> </template>
</a-list> </a-list>
<a-pagination <a-pagination
@@ -31,15 +44,18 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, onMounted, ref } from 'vue'; import { defineComponent, onMounted, ref } from 'vue';
import { PlusOutlined } from '@ant-design/icons-vue'; import { CheckOutlined, DeleteOutlined, EditFilled, PlusOutlined } from '@ant-design/icons-vue';
import type { BehaviorTree, BehaviorTreeRequest } from './types'; import type { BehaviorTree, BehaviorTreeRequest } from './types';
import { findTreesByQuery } from './api'; import { deleteOneTreeById, findTreesByQuery } from './api';
import { substring } from '@/utils/strings'; import { substring } from '@/utils/strings';
export default defineComponent({ export default defineComponent({
emits: ['select-tree'], emits: ['select-tree'],
components: { components: {
PlusOutlined CheckOutlined,
PlusOutlined,
DeleteOutlined,
EditFilled,
}, },
setup(_props, { emit }) { setup(_props, { emit }) {
const behaviorTrees = ref<BehaviorTree[]>([]); const behaviorTrees = ref<BehaviorTree[]>([]);
@@ -50,6 +66,7 @@ export default defineComponent({
}); });
const activeKey = ref<number>(1) const activeKey = ref<number>(1)
const totalTress = ref<number>(0); const totalTress = ref<number>(0);
const loadTress = () => { const loadTress = () => {
findTreesByQuery(behaviorTreeQuery.value).then(r => { findTreesByQuery(behaviorTreeQuery.value).then(r => {
behaviorTrees.value = r.rows; behaviorTrees.value = r.rows;
@@ -63,6 +80,14 @@ export default defineComponent({
loadTress(); loadTress();
}; };
const handleDelete = (item: BehaviorTree) => {
deleteOneTreeById(item.id).then(r => {
if (r.code === 200) {
loadTress();
}
});
};
const columns = [ const columns = [
{ {
title: '名称', title: '名称',
@@ -97,6 +122,7 @@ export default defineComponent({
customRow, customRow,
handleSelect, handleSelect,
handleChange, handleChange,
handleDelete,
}; };
}, },
}) })
@@ -111,14 +137,27 @@ export default defineComponent({
padding: 4px 15px; padding: 4px 15px;
cursor: pointer; cursor: pointer;
color: rgb(130 196 233); color: rgb(130 196 233);
position: relative;
.ks-tree-actions {
position: absolute;
right: 10px;
display: none;
}
&:hover { &:hover {
background: #0d2d4e; background: #0d2d4e;
.ks-tree-actions {
display: block;
} }
} }
}
} }
&.ks-trees-collapse { &.ks-trees-collapse {
.ant-collapse-content-box { .ant-collapse-content-box {
padding: 0; padding: 0;
height: 40vh; height: 40vh;