feat: 节点下拉框随节点缩放而缩放

This commit is contained in:
shaohuzhang1 2024-06-21 10:58:15 +08:00
parent 0eea4a726e
commit 2f6b725a2d
7 changed files with 34 additions and 17 deletions

View File

@ -94,13 +94,7 @@ class Flow:
f'不存在的下一个节点')
return node_list
def is_valid(self):
"""
校验工作流数据
"""
self.is_valid_start_node()
self.is_valid_base_node()
self.is_valid_work_flow()
def is_valid_work_flow(self, up_node=None):
if up_node is None:

View File

@ -1,5 +1,11 @@
<template>
<el-cascader :options="options" @visible-change="visibleChange" v-bind="$attrs" separator=" > ">
<el-cascader
:teleported="false"
:options="options"
@visible-change="visibleChange"
v-bind="$attrs"
separator=" > "
>
<template #default="{ node, data }">
<span class="flex align-center">
<component :is="iconComponent(`${data.type}-icon`)" class="mr-8" :size="18" />{{

View File

@ -1,6 +1,6 @@
<template>
<div class="workflow-node-container p-16">
<div class="step-container p-16">
<div class="workflow-node-container p-16" style="overflow: visible">
<div class="step-container p-16" style="overflow: visible">
<div v-resize="resizeStepContainer">
<div class="flex-between mb-16">
<div class="flex align-center">
@ -8,7 +8,7 @@
<h4>{{ nodeModel.properties.stepName }}</h4>
</div>
<div @click.stop v-if="showOperate(nodeModel.type)">
<el-dropdown trigger="click">
<el-dropdown :teleported="false" trigger="click">
<el-button text @click.stop>
<el-icon class="color-secondary"><MoreFilled /></el-icon>
</el-button>

View File

@ -75,6 +75,11 @@ class AppNode extends HtmlResize.view {
}
class AppNodeModel extends HtmlResize.model {
getNodeStyle() {
return {
overflow: 'visible'
}
}
getOutlineStyle() {
const style = super.getOutlineStyle()
style.stroke = 'none'

View File

@ -25,6 +25,7 @@
}"
>
<el-select
:teleported="false"
v-model="chat_data.model_id"
placeholder="请选择 AI 模型"
class="w-full"

View File

@ -14,7 +14,7 @@
>
<template v-for="(item, index) in form_data.branch" :key="item.id">
<el-card
v-resize="(wh:any) => resizeCondition(wh, item, index)"
v-resize="(wh: any) => resizeCondition(wh, item, index)"
shadow="never"
class="card-never mb-8"
style="--el-card-padding: 12px"
@ -23,7 +23,12 @@
{{ item.type }}
<div class="info" v-if="item.conditions.length > 1">
<span>符合以下</span>
<el-select v-model="item.condition" size="small" style="width: 60px; margin: 0 8px">
<el-select
:teleported="false"
v-model="item.condition"
size="small"
style="width: 60px; margin: 0 8px"
>
<el-option label="所有" value="and" />
<el-option label="任一" value="or" />
</el-select>
@ -60,7 +65,12 @@
trigger: 'change'
}"
>
<el-select v-model="condition.compare" placeholder="请选择条件" clearable>
<el-select
:teleported="false"
v-model="condition.compare"
placeholder="请选择条件"
clearable
>
<template v-for="(item, index) in compareList" :key="index">
<el-option :label="item.label" :value="item.value" />
</template>
@ -236,14 +246,14 @@ function deleteCondition(index: number, cIndex: number) {
if (list[index]['conditions'].length === 0) {
const delete_edge = list.splice(index, 1)
const delete_target_anchor_id_list = delete_edge.map(
(item:any) => props.nodeModel.id + '_' + item.id + '_right'
(item: any) => props.nodeModel.id + '_' + item.id + '_right'
)
props.nodeModel.graphModel.eventCenter.emit(
'delete_edge',
props.nodeModel.outgoing.edges
.filter((item:any) => delete_target_anchor_id_list.includes(item.sourceAnchorId))
.map((item:any) => item.id)
.filter((item: any) => delete_target_anchor_id_list.includes(item.sourceAnchorId))
.map((item: any) => item.id)
)
refreshBranchAnchor(list, false)
}

View File

@ -25,6 +25,7 @@
}"
>
<el-select
:teleported="false"
v-model="form_data.model_id"
placeholder="请选择 AI 模型"
class="w-full"