mirror of
https://github.com/1Panel-dev/MaxKB.git
synced 2025-12-26 01:33:05 +00:00
perf: Organize translation files
This commit is contained in:
parent
f2266c8d2a
commit
6fd4c1fd31
|
|
@ -229,7 +229,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8" v-if="data.type == WorkflowType.AiChat">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.aiChatNode.think') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.think') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
{{ data.reasoning_content || '-' }}
|
||||
|
|
@ -672,7 +672,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
{{ $t('workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
{{ data.negative_prompt || '-' }}
|
||||
|
|
@ -710,7 +710,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
{{ $t('workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
{{ data.negative_prompt || '-' }}
|
||||
|
|
@ -749,7 +749,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
{{ $t('workflow.nodes.imageGenerateNode.negative_prompt.label') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
{{ data.negative_prompt || '-' }}
|
||||
|
|
@ -757,7 +757,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.imageToVideoGenerate.first_frame.label') }}
|
||||
{{ $t('workflow.nodes.imageToVideoGenerate.first_frame.label') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
<div v-if="typeof data.first_frame_url === 'string'">
|
||||
|
|
@ -786,7 +786,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6 mt-8">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.imageToVideoGenerate.last_frame.label') }}
|
||||
{{ $t('workflow.nodes.imageToVideoGenerate.last_frame.label') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
<div v-if="typeof data.last_frame_url === 'string'">
|
||||
|
|
@ -890,13 +890,13 @@
|
|||
<template v-if="data.type === WorkflowType.VariableAggregationNode">
|
||||
<div class="card-never border-r-6">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.variableAggregationNode.Strategy') }}
|
||||
{{ $t('workflow.nodes.variableAggregationNode.Strategy') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter pre-wrap">
|
||||
{{
|
||||
data.strategy === 'variable_to_json'
|
||||
? t('views.workflow.nodes.variableAggregationNode.placeholder1')
|
||||
: t('views.workflow.nodes.variableAggregationNode.placeholder')
|
||||
? t('workflow.nodes.variableAggregationNode.placeholder1')
|
||||
: t('workflow.nodes.variableAggregationNode.placeholder')
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -921,11 +921,13 @@
|
|||
<h5 class="p-8-12">
|
||||
{{ $t('common.param.outputParam') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div v-for="(f, i) in data.result" :key="i" class="mb-8">
|
||||
<span class="color-secondary">{{ i }}:</span> {{ f }}
|
||||
<el-scrollbar height="200">
|
||||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div v-for="(f, i) in data.result" :key="i" class="mb-8">
|
||||
<span class="color-secondary">{{ i }}:</span> {{ f }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</template>
|
||||
<!-- MCP 节点 -->
|
||||
|
|
@ -943,7 +945,7 @@
|
|||
</div>
|
||||
<div class="card-never border-r-6">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.mcpNode.toolParam') }}
|
||||
{{ $t('workflow.nodes.mcpNode.toolParam') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div v-for="(value, name) in data.tool_params" :key="name" class="mb-8">
|
||||
|
|
@ -965,19 +967,19 @@
|
|||
<!-- 循环 节点 -->
|
||||
<div class="card-never border-r-6" v-if="data.type === WorkflowType.LoopNode">
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.loopNode.loopSetting') }}
|
||||
{{ $t('workflow.nodes.loopNode.loopSetting') }}
|
||||
</h5>
|
||||
|
||||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopNode.loopType.label') }}:</span
|
||||
{{ $t('workflow.nodes.loopNode.loopType.label') }}:</span
|
||||
>
|
||||
{{ data.loop_type || '-' }}
|
||||
</div>
|
||||
<div>
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopNode.loopArray.label') }}:</span
|
||||
{{ $t('workflow.nodes.loopNode.loopArray.label') }}:</span
|
||||
>
|
||||
{{
|
||||
data.loop_type === 'NUMBER'
|
||||
|
|
@ -987,7 +989,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<h5 class="p-8-12">
|
||||
{{ $t('views.workflow.nodes.loopNode.loopDetail') }}
|
||||
{{ $t('workflow.nodes.loopNode.loopDetail') }}
|
||||
</h5>
|
||||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<template v-if="data.type === WorkflowType.LoopNode">
|
||||
|
|
@ -1017,14 +1019,14 @@
|
|||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopStartNode.loopItem') }}:</span
|
||||
{{ $t('workflow.nodes.loopStartNode.loopItem') }}:</span
|
||||
>
|
||||
|
||||
{{ data.current_item }}
|
||||
</div>
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopStartNode.loopIndex') }}:</span
|
||||
{{ $t('workflow.nodes.loopStartNode.loopIndex') }}:</span
|
||||
>
|
||||
|
||||
{{ data.current_index }}
|
||||
|
|
@ -1042,7 +1044,7 @@
|
|||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopContinueNode.isContinue') }}:</span
|
||||
{{ $t('workflow.nodes.loopContinueNode.isContinue') }}:</span
|
||||
>
|
||||
|
||||
{{ data.is_continue }}
|
||||
|
|
@ -1060,7 +1062,7 @@
|
|||
<div class="p-8-12 border-t-dashed lighter">
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary">
|
||||
{{ $t('views.workflow.nodes.loopBreakNode.isBreak') }}:</span
|
||||
{{ $t('workflow.nodes.loopBreakNode.isBreak') }}:</span
|
||||
>
|
||||
|
||||
{{ data.is_break }}
|
||||
|
|
@ -1115,7 +1117,7 @@
|
|||
</div>
|
||||
<div class="mb-8">
|
||||
<span class="color-secondary"
|
||||
>{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.label') }}:</span
|
||||
>{{ $t('workflow.nodes.documentSplitNode.chunk_length.label') }}:</span
|
||||
>
|
||||
{{ data.chunk_size }}
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.default_value"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -78,7 +78,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -137,7 +137,7 @@ const default_ref_variables_value_rule = {
|
|||
validator: (rule: any, value: any, callback: any) => {
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.option_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -150,7 +150,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ const default_ref_variables_value_rule = {
|
|||
console.log(value.length)
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.option_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -159,7 +159,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -192,7 +192,7 @@ const default_ref_variables_value_rule = {
|
|||
console.log(value.length)
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.option_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -150,7 +150,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -182,7 +182,7 @@ const default_ref_variables_value_rule = {
|
|||
console.log(value.length)
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.option_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -150,7 +150,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ const default_ref_variables_value_rule = {
|
|||
console.log(value.length)
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,7 +46,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="model"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="formValue.option_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -149,7 +149,7 @@ const assignment_method_option_list = computed(() => {
|
|||
]
|
||||
if (getModel) {
|
||||
option_list.push({
|
||||
label: t('views.workflow.variable.Referencing'),
|
||||
label: t('workflow.variable.Referencing'),
|
||||
value: 'ref_variables',
|
||||
})
|
||||
}
|
||||
|
|
@ -182,7 +182,7 @@ const default_ref_variables_value_rule = {
|
|||
console.log(value.length)
|
||||
if (!(Array.isArray(value) && value.length > 1)) {
|
||||
callback(
|
||||
t('views.workflow.variable.Referencing') + t('common.required'),
|
||||
t('workflow.variable.Referencing') + t('common.required'),
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<div class="card-never border-r-6 mb-16">
|
||||
<el-checkbox
|
||||
v-model="allCheck"
|
||||
:label="$t('views.document.feishu.allCheck')"
|
||||
:label="$t('common.allCheck')"
|
||||
size="large"
|
||||
class="ml-24"
|
||||
@change="handleAllCheckChange"
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="reasoning">
|
||||
<el-button text @click="showThink = !showThink" class="reasoning-button">
|
||||
{{ $t('views.workflow.nodes.aiChatNode.think') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.think') }}
|
||||
<el-icon class="ml-4" :class="showThink ? 'rotate-180' : ''"><ArrowDownBold /> </el-icon>
|
||||
</el-button>
|
||||
<el-collapse-transition>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
</el-input>
|
||||
</div>
|
||||
|
||||
<el-tab-pane :label="$t('views.workflow.baseComponent')" name="base">
|
||||
<el-tab-pane :label="$t('workflow.baseComponent')" name="base">
|
||||
<el-scrollbar height="400">
|
||||
<div v-if="filter_menu_nodes.length > 0">
|
||||
<template v-for="(node, index) in filter_menu_nodes" :key="index">
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</template>
|
||||
</div>
|
||||
<div v-else class="ml-16 mt-8">
|
||||
<el-text type="info">{{ $t('views.workflow.tip.noData') }}</el-text>
|
||||
<el-text type="info">{{ $t('workflow.tip.noData') }}</el-text>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</el-tab-pane>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
</el-input>
|
||||
</div>
|
||||
|
||||
<el-tab-pane :label="$t('views.workflow.baseComponent')" name="base">
|
||||
<el-tab-pane :label="$t('workflow.baseComponent')" name="base">
|
||||
<el-scrollbar height="400">
|
||||
<div v-if="filter_menu_nodes.length > 0">
|
||||
<template v-for="(node, index) in filter_menu_nodes" :key="index">
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</template>
|
||||
</div>
|
||||
<div v-else class="ml-16 mt-8">
|
||||
<el-text type="info">{{ $t('views.workflow.tip.noData') }}</el-text>
|
||||
<el-text type="info">{{ $t('workflow.tip.noData') }}</el-text>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</el-tab-pane>
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
</el-input>
|
||||
</div>
|
||||
|
||||
<el-tab-pane :label="$t('views.workflow.baseComponent')" name="base">
|
||||
<el-tab-pane :label="$t('workflow.baseComponent')" name="base">
|
||||
<el-scrollbar height="400">
|
||||
<div v-if="filter_menu_nodes.length > 0">
|
||||
<template v-for="(node, index) in filter_menu_nodes" :key="index">
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
</template>
|
||||
</div>
|
||||
<div v-else class="ml-16 mt-8">
|
||||
<el-text type="info">{{ $t('views.workflow.tip.noData') }}</el-text>
|
||||
<el-text type="info">{{ $t('workflow.tip.noData') }}</el-text>
|
||||
</div>
|
||||
</el-scrollbar>
|
||||
</el-tab-pane>
|
||||
|
|
|
|||
|
|
@ -71,6 +71,9 @@ export default {
|
|||
disableSuccess: 'Successful',
|
||||
published: 'Published',
|
||||
unpublished: 'Unpublished',
|
||||
success: 'Successful',
|
||||
fail: 'Failed',
|
||||
all: 'All',
|
||||
},
|
||||
param: {
|
||||
outputParam: 'Output Parameters',
|
||||
|
|
@ -124,4 +127,6 @@ export default {
|
|||
placeholder: 'Please enter prompt',
|
||||
},
|
||||
variable: 'Variable',
|
||||
allCheck: 'Select All',
|
||||
type: 'Type',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import theme from './theme'
|
|||
import common from './common'
|
||||
import dynamicsForm from './dynamics-form'
|
||||
import chat from './ai-chat'
|
||||
import workflow from './workflow'
|
||||
export default {
|
||||
lang: 'English',
|
||||
layout,
|
||||
|
|
@ -15,5 +16,6 @@ export default {
|
|||
en,
|
||||
common,
|
||||
dynamicsForm,
|
||||
chat
|
||||
chat,
|
||||
workflow
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,7 +31,6 @@ export default {
|
|||
|
||||
form: {
|
||||
appName: {
|
||||
label: 'Name',
|
||||
placeholder: 'Please enter the APP name',
|
||||
requiredMessage: 'APP name is required',
|
||||
},
|
||||
|
|
@ -40,7 +39,6 @@ export default {
|
|||
'Describe the APP scenario and use, e.g.: XXX assistant answering user questions about XXX product usage',
|
||||
},
|
||||
appType: {
|
||||
label: 'Type',
|
||||
simplePlaceholder: 'Suitable for beginners to create assistant.',
|
||||
workflowPlaceholder: 'Suitable for advanced users to customize the workflow of assistant',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -203,6 +203,5 @@ export default {
|
|||
selectDocument: 'Select Document',
|
||||
tip1: 'Only documents and tables are supported. Documents will be segmented based on titles, and tables will be converted to Markdown format before segmentation.',
|
||||
tip2: 'Before importing the document, it is recommended to standardize the document segmentation markers.',
|
||||
allCheck: 'Select All',
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import workspace from './workspace'
|
|||
import application from './application'
|
||||
import problem from './problem'
|
||||
import applicationOverview from './application-overview'
|
||||
import workflow from './workflow'
|
||||
import paragraph from './paragraph'
|
||||
import chatLog from './chat-log'
|
||||
import chatUser from './chat-user'
|
||||
|
|
@ -29,7 +28,6 @@ export default {
|
|||
application,
|
||||
problem,
|
||||
applicationOverview,
|
||||
workflow,
|
||||
paragraph,
|
||||
chatLog,
|
||||
chatUser,
|
||||
|
|
|
|||
|
|
@ -1,30 +1,11 @@
|
|||
export default {
|
||||
title: 'Operate Logs',
|
||||
table: {
|
||||
menu: {
|
||||
label: 'Operate menu'
|
||||
},
|
||||
operate: {
|
||||
label: 'Operate'
|
||||
},
|
||||
user: {
|
||||
label: 'Operate user'
|
||||
},
|
||||
status: {
|
||||
label: 'Status',
|
||||
success: 'Successful',
|
||||
fail: 'Failed',
|
||||
all: 'All'
|
||||
},
|
||||
ip_address: {
|
||||
label: 'IP Address'
|
||||
},
|
||||
opt: {
|
||||
label: 'API Details'
|
||||
},
|
||||
operateTime: {
|
||||
label: 'Operate Time'
|
||||
}
|
||||
menu: 'Operate Menu',
|
||||
detail: 'Operate Details',
|
||||
user: 'Operate User',
|
||||
ip_address: 'IP Address',
|
||||
opt: 'API Details',
|
||||
operateTime: 'Operate Time',
|
||||
},
|
||||
close: 'Close'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ export default {
|
|||
authorized_workspace: 'Authorize Workspace',
|
||||
authorized_tip: ' ',
|
||||
select_workspace: 'Select Workspace',
|
||||
allCheck: 'Select All',
|
||||
BLACK_LIST: 'Black List',
|
||||
WHITE_LIST: 'White List',
|
||||
type: 'Type',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -148,7 +148,6 @@ export default {
|
|||
},
|
||||
resource_management: {
|
||||
label: 'Resource Management',
|
||||
type: 'Type',
|
||||
management: 'management',
|
||||
},
|
||||
default_login: 'Default Login Method',
|
||||
|
|
|
|||
|
|
@ -49,13 +49,11 @@ export default {
|
|||
|
||||
form: {
|
||||
toolName: {
|
||||
label: 'Name',
|
||||
name: 'Tool Name',
|
||||
placeholder: 'Please enter the tool name',
|
||||
requiredMessage: 'Please enter the tool name',
|
||||
},
|
||||
mcpName: {
|
||||
label: 'Name',
|
||||
name: 'MCP Name',
|
||||
placeholder: 'Please enter the MCP name',
|
||||
requiredMessage: 'Please enter the MCP name',
|
||||
|
|
|
|||
|
|
@ -82,16 +82,17 @@ export default {
|
|||
nodes: {
|
||||
knowledgeWriteNode: {
|
||||
text: 'Knowledge write',
|
||||
label: 'Knowledge write',
|
||||
label:
|
||||
'Write the input paragraph list into the current knowledge base and complete vectorization processing',
|
||||
},
|
||||
dataSourceWebNode: {
|
||||
label: 'Web Site',
|
||||
text: 'Web Site',
|
||||
text: 'Input the root URL to automatically crawl web data (single link corresponds to a single document), output a list of documents with content',
|
||||
field_label: 'Document list',
|
||||
},
|
||||
dataSourceLocalNode: {
|
||||
label: 'Local File',
|
||||
text: 'Local File',
|
||||
text: 'Upload local documents, output document list (content not parsed, needs to be used with "Document Content Extraction" node to parse)',
|
||||
fileList: 'File List',
|
||||
fileFormat: {
|
||||
label: 'Supported File Formats',
|
||||
|
|
@ -262,12 +263,12 @@ You are a master of problem optimization, adept at accurately inferring user int
|
|||
},
|
||||
documentExtractNode: {
|
||||
label: 'Document Content Extraction',
|
||||
text: 'Extract content from documents',
|
||||
text: 'Parse input documents to output structured document content',
|
||||
content: 'Document Content',
|
||||
},
|
||||
documentSplitNode: {
|
||||
label: 'Document Splitting',
|
||||
text: 'Split document content into smaller segments',
|
||||
text: 'Split input document content according to the segmentation strategy, output a list of segmented texts',
|
||||
paragraphList: 'List of split segments',
|
||||
splitStrategy: {
|
||||
label: 'Splitting Strategy',
|
||||
|
|
@ -534,9 +535,6 @@ You are a master of problem optimization, adept at accurately inferring user int
|
|||
},
|
||||
SystemPromptPlaceholder: 'System Prompt, can reference variables in the system, such as',
|
||||
UserPromptPlaceholder: 'User Prompt, can reference variables in the system, such as',
|
||||
debug: {
|
||||
executionResult: 'Execution Result',
|
||||
executionSuccess: 'Execution Succeeded',
|
||||
executionFailed: 'Execution Failed',
|
||||
},
|
||||
ExecutionRecord: 'Execution Record',
|
||||
debug: {},
|
||||
}
|
||||
|
|
@ -62,7 +62,7 @@ export default {
|
|||
existingExtensionsTip: '文件后缀已存在',
|
||||
localUpload: '本地文件',
|
||||
urlUpload: 'URL 地址',
|
||||
uploadMethodTip: '请选择上传方式'
|
||||
uploadMethodTip: '请选择上传方式',
|
||||
},
|
||||
status: {
|
||||
label: '状态',
|
||||
|
|
@ -73,6 +73,9 @@ export default {
|
|||
disableSuccess: '禁用成功',
|
||||
published: '已发布',
|
||||
unpublished: '未发布',
|
||||
success: '成功',
|
||||
fail: '失败',
|
||||
all: '全部',
|
||||
},
|
||||
param: {
|
||||
outputParam: '输出参数',
|
||||
|
|
@ -125,4 +128,6 @@ export default {
|
|||
placeholder: '请输入提示词',
|
||||
},
|
||||
variable: '变量',
|
||||
allCheck: '全选',
|
||||
type: '类型',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import layout from './layout'
|
|||
import dynamicsForm from './dynamics-form'
|
||||
import common from './common'
|
||||
import chat from './ai-chat'
|
||||
import workflow from './workflow'
|
||||
export default {
|
||||
lang: '简体中文',
|
||||
zhCn,
|
||||
|
|
@ -16,5 +17,5 @@ export default {
|
|||
common,
|
||||
chat,
|
||||
components,
|
||||
|
||||
workflow,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ export default {
|
|||
},
|
||||
form: {
|
||||
appName: {
|
||||
label: '名称',
|
||||
placeholder: '请输入应用名称',
|
||||
requiredMessage: '请输入应用名称',
|
||||
},
|
||||
|
|
@ -38,7 +37,6 @@ export default {
|
|||
placeholder: '描述该应用的应用场景及用途,如:XXX 小助手回答用户提出的 XXX 产品使用问题',
|
||||
},
|
||||
appType: {
|
||||
label: '类型',
|
||||
simplePlaceholder: '适合新手创建小助手',
|
||||
workflowPlaceholder: '适合高级用户自定义小助手的工作流',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -115,13 +115,10 @@ export default {
|
|||
name: '文件名称',
|
||||
char_length: '字符数',
|
||||
paragraph: '分段',
|
||||
all: '全部',
|
||||
updateTime: '更新时间',
|
||||
},
|
||||
fileStatus: {
|
||||
label: '文件状态',
|
||||
SUCCESS: '成功',
|
||||
FAILURE: '失败',
|
||||
EMBEDDING: '索引中',
|
||||
PENDING: '排队中',
|
||||
GENERATE: '生成中',
|
||||
|
|
@ -196,7 +193,6 @@ export default {
|
|||
selectDocument: '选择文档',
|
||||
tip1: '支持文档和表格类型,包含TXT、Markdown、PDF、DOCX、HTML、XLS、XLSX、CSV、ZIP格式;',
|
||||
tip2: '导入文档前,建议规范文档的分段标识。',
|
||||
allCheck: '全选',
|
||||
errorMessage1: '请选择文档',
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,6 @@ import workspace from './workspace'
|
|||
import application from './application'
|
||||
import problem from './problem'
|
||||
import applicationOverview from './application-overview'
|
||||
import workflow from './workflow'
|
||||
import paragraph from './paragraph'
|
||||
import chatLog from './chat-log'
|
||||
import chatUser from './chat-user'
|
||||
|
|
@ -29,7 +28,6 @@ export default {
|
|||
application,
|
||||
problem,
|
||||
applicationOverview,
|
||||
workflow,
|
||||
paragraph,
|
||||
chatLog,
|
||||
chatUser,
|
||||
|
|
|
|||
|
|
@ -1,31 +1,11 @@
|
|||
export default {
|
||||
title: '操作日志',
|
||||
table: {
|
||||
menu: {
|
||||
label: '操作菜单'
|
||||
},
|
||||
operate: {
|
||||
label: '操作',
|
||||
detail: '操作详情'
|
||||
},
|
||||
user: {
|
||||
label: '操作用户'
|
||||
},
|
||||
status: {
|
||||
label: '状态',
|
||||
success: '成功',
|
||||
fail: '失败',
|
||||
all: '全部'
|
||||
},
|
||||
ip_address: {
|
||||
label: 'IP地址'
|
||||
},
|
||||
opt: {
|
||||
label: 'API详情'
|
||||
},
|
||||
operateTime: {
|
||||
label: '操作时间'
|
||||
}
|
||||
menu: '操作菜单',
|
||||
detail: '操作详情',
|
||||
user: '操作用户',
|
||||
ip_address: 'IP地址',
|
||||
opt: 'API详情',
|
||||
operateTime: '操作时间',
|
||||
},
|
||||
close: '关闭'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ export default {
|
|||
authorized_workspace: '授权工作空间',
|
||||
authorized_tip: '被授权的工作空间,可使用当前资源',
|
||||
select_workspace: '选择工作空间',
|
||||
allCheck: '全选',
|
||||
BLACK_LIST: '黑名单',
|
||||
WHITE_LIST: '白名单',
|
||||
type: '类型',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,6 @@ export default {
|
|||
},
|
||||
resource_management: {
|
||||
label: '资源管理',
|
||||
type: '类型',
|
||||
management: '管理',
|
||||
},
|
||||
default_login: '默认登录方式',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
export default {
|
||||
title: '工具',
|
||||
all: '全部',
|
||||
createTool: '创建工具',
|
||||
editTool: '编辑工具',
|
||||
createMcpTool: '创建MCP',
|
||||
|
|
@ -46,13 +45,11 @@ export default {
|
|||
},
|
||||
form: {
|
||||
toolName: {
|
||||
label: '名称',
|
||||
name: '工具名称',
|
||||
placeholder: '请输入工具名称',
|
||||
requiredMessage: '请输入工具名称',
|
||||
},
|
||||
mcpName: {
|
||||
label: '名称',
|
||||
name: 'MCP名称',
|
||||
placeholder: '请输入MCP名称',
|
||||
requiredMessage: '请输入MCP名称',
|
||||
|
|
|
|||
|
|
@ -86,16 +86,16 @@ export default {
|
|||
nodes: {
|
||||
knowledgeWriteNode: {
|
||||
text: '知识库写入',
|
||||
label: '知识库写入',
|
||||
label: '将输入的分段列表写入当前知识库,并完成向量化处理',
|
||||
},
|
||||
dataSourceWebNode: {
|
||||
label: 'Web站点',
|
||||
text: 'Web站点',
|
||||
text: '输入根地址自动抓取 Web 数据(单链接对应单文档),输出含内容的文档列表',
|
||||
field_label: '文档列表',
|
||||
},
|
||||
dataSourceLocalNode: {
|
||||
label: '本地文件',
|
||||
text: '本地文件',
|
||||
text: '上传本地文档,输出文档列表(不解析内容,需配合 “文档内容提取” 节点解析)',
|
||||
fileList: '文件列表',
|
||||
fileFormat: {
|
||||
label: '支持的文件格式',
|
||||
|
|
@ -270,12 +270,12 @@ export default {
|
|||
},
|
||||
documentExtractNode: {
|
||||
label: '文档内容提取',
|
||||
text: '提取文档中的内容',
|
||||
text: '解析输入文档,输出结构化文档内容',
|
||||
content: '文档内容',
|
||||
},
|
||||
documentSplitNode: {
|
||||
label: '文档分段',
|
||||
text: '将文档内容拆分为多个分段',
|
||||
text: '按分段策略拆分输入文档内容,输出分段文本列表',
|
||||
paragraphList: '分段列表',
|
||||
splitStrategy: {
|
||||
label: '分段策略',
|
||||
|
|
@ -536,9 +536,6 @@ export default {
|
|||
},
|
||||
SystemPromptPlaceholder: '系统提示词,可以引用系统中的变量:如',
|
||||
UserPromptPlaceholder: '用户提示词,可以引用系统中的变量:如',
|
||||
debug: {
|
||||
executionResult: '执行结果',
|
||||
executionSuccess: '执行成功',
|
||||
executionFailed: '执行失败',
|
||||
},
|
||||
ExecutionRecord: '执行记录',
|
||||
debug: {},
|
||||
}
|
||||
|
|
@ -60,7 +60,7 @@ export default {
|
|||
existingExtensionsTip: '文件後綴已存在',
|
||||
localUpload: '本地文件',
|
||||
urlUpload: 'URL 地址',
|
||||
uploadMethodTip: '請選擇上傳方式'
|
||||
uploadMethodTip: '請選擇上傳方式',
|
||||
},
|
||||
status: {
|
||||
label: '狀態',
|
||||
|
|
@ -71,6 +71,9 @@ export default {
|
|||
disableSuccess: '停用成功',
|
||||
published: '已發佈',
|
||||
unpublished: '未發佈',
|
||||
success: '成功',
|
||||
fail: '失敗',
|
||||
all: '全部',
|
||||
},
|
||||
param: {
|
||||
outputParam: '輸出參數',
|
||||
|
|
@ -123,4 +126,6 @@ export default {
|
|||
placeholder: '請輸入提示詞',
|
||||
},
|
||||
variable: '變量',
|
||||
allCheck: '全選',
|
||||
type: '類型',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ import theme from './theme'
|
|||
import common from './common'
|
||||
import dynamicsForm from './dynamics-form'
|
||||
import chat from './ai-chat'
|
||||
import workflow from './workflow'
|
||||
export default {
|
||||
lang: '繁體中文',
|
||||
layout,
|
||||
|
|
@ -16,4 +17,5 @@ export default {
|
|||
zhTw,
|
||||
dynamicsForm,
|
||||
chat,
|
||||
workflow
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,6 @@ export default {
|
|||
},
|
||||
form: {
|
||||
appName: {
|
||||
label: '名稱',
|
||||
placeholder: '請輸入應用名稱',
|
||||
requiredMessage: '請輸入應用名稱',
|
||||
},
|
||||
|
|
@ -35,7 +34,6 @@ export default {
|
|||
placeholder: '描述該應用的應用場景及用途,如:XXX 小助手回答用戶提出的 XXX 產品使用問題',
|
||||
},
|
||||
appType: {
|
||||
label: '類型',
|
||||
simplePlaceholder: '適合新手建立小助手',
|
||||
workflowPlaceholder: '適合高階用戶自訂小助手的工作流程',
|
||||
},
|
||||
|
|
|
|||
|
|
@ -116,13 +116,10 @@ export default {
|
|||
name: '文件名稱',
|
||||
char_length: '字符數',
|
||||
paragraph: '分段',
|
||||
all: '全部',
|
||||
updateTime: '更新時間',
|
||||
},
|
||||
fileStatus: {
|
||||
label: '文件狀態',
|
||||
SUCCESS: '成功',
|
||||
FAILURE: '失敗',
|
||||
EMBEDDING: '索引中',
|
||||
PENDING: '排隊中',
|
||||
GENERATE: '生成中',
|
||||
|
|
@ -197,6 +194,5 @@ export default {
|
|||
selectDocument: '選擇文檔',
|
||||
tip1: '僅支持文檔和表格類型,文檔會根據標題分段,表格會轉為Markdown格式後再分段。',
|
||||
tip2: '導入文檔前,建議規範文檔的分段標識。',
|
||||
allCheck: '全選',
|
||||
},
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,7 +12,6 @@ import paragraph from './paragraph'
|
|||
import problem from './problem'
|
||||
import chatLog from './chat-log'
|
||||
import chatUser from './chat-user'
|
||||
import workflow from './workflow'
|
||||
import login from './login'
|
||||
import operateLog from './operate-log'
|
||||
import shared from './shared'
|
||||
|
|
@ -24,7 +23,6 @@ export default {
|
|||
userManage,
|
||||
model,
|
||||
knowledge,
|
||||
workflow,
|
||||
document,
|
||||
paragraph,
|
||||
problem,
|
||||
|
|
|
|||
|
|
@ -1,30 +1,11 @@
|
|||
export default {
|
||||
title: '操作日誌',
|
||||
table: {
|
||||
menu: {
|
||||
label: '操作菜單'
|
||||
},
|
||||
operate: {
|
||||
label: '操作'
|
||||
},
|
||||
user: {
|
||||
label: '操作用戶'
|
||||
},
|
||||
status: {
|
||||
label: '狀態',
|
||||
success: '成功',
|
||||
fail: '失敗',
|
||||
all: '全部'
|
||||
},
|
||||
ip_address: {
|
||||
label: 'IP地址'
|
||||
},
|
||||
opt: {
|
||||
label: 'API詳情'
|
||||
},
|
||||
operateTime: {
|
||||
label: '操作時間'
|
||||
}
|
||||
menu: '操作菜單',
|
||||
detail: '操作詳情',
|
||||
user: '操作用戶',
|
||||
ip_address: 'IP地址',
|
||||
opt: 'API詳情',
|
||||
operateTime: '操作時間',
|
||||
},
|
||||
close: '關閉'
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,8 +7,6 @@ export default {
|
|||
authorized_workspace: '已授權工作空間',
|
||||
authorized_tip: '被授權的工作空間,可以使用該共享資源',
|
||||
select_workspace: '选择工作空間',
|
||||
allCheck: '全选',
|
||||
BLACK_LIST: '黑名单',
|
||||
WHITE_LIST: '白名单',
|
||||
type: '類型',
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,6 @@ export default {
|
|||
},
|
||||
resource_management: {
|
||||
label: '資源管理',
|
||||
type: '類型',
|
||||
management: '管理',
|
||||
},
|
||||
default_login: '預設登入方式',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,5 @@
|
|||
export default {
|
||||
title: '工具',
|
||||
all: '全部',
|
||||
createTool: '创建工具',
|
||||
editTool: '編輯工具',
|
||||
createMcpTool: '建立MCP',
|
||||
|
|
@ -46,13 +45,11 @@ export default {
|
|||
},
|
||||
form: {
|
||||
toolName: {
|
||||
label: '名稱',
|
||||
name: '工具名稱',
|
||||
placeholder: '請輸入工具名稱',
|
||||
requiredMessage: '請輸入工具名稱',
|
||||
},
|
||||
mcpName: {
|
||||
label: '名稱',
|
||||
name: 'MCP名稱',
|
||||
placeholder: '請輸入MCP名稱',
|
||||
requiredMessage: '請輸入MCP名稱',
|
||||
|
|
|
|||
|
|
@ -82,16 +82,16 @@ export default {
|
|||
nodes: {
|
||||
knowledgeWriteNode: {
|
||||
text: '知識庫寫入',
|
||||
label: '知識庫寫入',
|
||||
label: '將輸入的分段列表寫入當前知識庫,並完成向量化處理',
|
||||
},
|
||||
dataSourceWebNode: {
|
||||
label: 'Web網站',
|
||||
text: 'Web網站',
|
||||
text: '輸入根地址自動抓取Web數據(單鏈接對應單文檔),輸出含內容的文檔列表',
|
||||
field_label: '文件列表',
|
||||
},
|
||||
dataSourceLocalNode: {
|
||||
label: '本地文件',
|
||||
text: '本地文件',
|
||||
text: '上傳本地文件,輸出文件列表(不解析內容,需配合 “文檔內容提取” 節點解析)',
|
||||
fileList: '文件列表',
|
||||
fileFormat: {
|
||||
label: '支持的文件格式',
|
||||
|
|
@ -261,12 +261,12 @@ export default {
|
|||
},
|
||||
documentExtractNode: {
|
||||
label: '文檔內容提取',
|
||||
text: '提取文檔中的內容',
|
||||
text: '解析輸入文檔,輸出結構化文檔內容',
|
||||
content: '文檔內容',
|
||||
},
|
||||
documentSplitNode: {
|
||||
label: '文檔拆分',
|
||||
text: '將文檔內容拆分為多個分段',
|
||||
text: '按分段策略拆分輸入文檔內容,輸出分段文本列表',
|
||||
paragraphList: '分段列表',
|
||||
splitStrategy: {
|
||||
label: '分段策略',
|
||||
|
|
@ -519,9 +519,6 @@ export default {
|
|||
},
|
||||
SystemPromptPlaceholder: '系統提示詞,可以引用系統中的變量:如',
|
||||
UserPromptPlaceholder: '用戶提示詞,可以引用系統中的變量:如',
|
||||
debug: {
|
||||
executionResult: '執行結果',
|
||||
executionSuccess: '執行成功',
|
||||
executionFailed: '執行失敗',
|
||||
},
|
||||
ExecutionRecord: '執行記錄',
|
||||
debug: {},
|
||||
}
|
||||
|
|
@ -112,7 +112,7 @@ const DocumentRouter = {
|
|||
path: 'knowledge-workflow-setting',
|
||||
name: 'knowledgeWorkflowSetting',
|
||||
meta: {
|
||||
title: 'views.workflow.workflow',
|
||||
title: 'workflow.workflow',
|
||||
icon: 'app-workflow',
|
||||
activeMenu: '/knowledge',
|
||||
parentPath: '/knowledge/:id/:folderId/:type',
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@
|
|||
</div>
|
||||
|
||||
<h4 class="ellipsis">
|
||||
{{ detail?.name || $t('views.application.form.appName.label') }}
|
||||
{{ detail?.name || $t('common.name') }}
|
||||
</h4>
|
||||
</div>
|
||||
<div class="mr-16">
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="workflow-publish-history border-l white-bg">
|
||||
<h4 class="border-b p-16-24">{{ $t('views.workflow.setting.releaseHistory') }}</h4>
|
||||
<h4 class="border-b p-16-24">{{ $t('workflow.setting.releaseHistory') }}</h4>
|
||||
<div class="list-height pt-0">
|
||||
<el-scrollbar>
|
||||
<div class="p-8 pt-0">
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
@close="closeWrite(row)"
|
||||
/>
|
||||
<el-tag v-if="index === 0" class="default-tag ml-4">{{
|
||||
$t('views.workflow.setting.latestRelease')
|
||||
$t('workflow.setting.latestRelease')
|
||||
}}</el-tag>
|
||||
</h5>
|
||||
<el-text type="info" class="color-secondary flex align-center mt-8">
|
||||
|
|
@ -48,7 +48,7 @@
|
|||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="refreshVersion(row)">
|
||||
<el-icon class="color-secondary"><RefreshLeft /></el-icon>
|
||||
{{ $t('views.workflow.setting.restoreCurrentVersion') }}
|
||||
{{ $t('workflow.setting.restoreCurrentVersion') }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
|
|
@ -126,7 +126,7 @@ function editName(val: string, item: any) {
|
|||
getList()
|
||||
})
|
||||
} else {
|
||||
MsgError(t('views.workflow.tip.nameMessage'))
|
||||
MsgError(t('workflow.tip.nameMessage'))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,18 +6,18 @@
|
|||
<h4 class="ellipsis" style="max-width: 300px" :title="detail?.name">{{ detail?.name }}</h4>
|
||||
<div v-if="showHistory && disablePublic">
|
||||
<el-text type="info" class="ml-16 color-secondary"
|
||||
>{{ $t('views.workflow.info.previewVersion') }}
|
||||
>{{ $t('workflow.info.previewVersion') }}
|
||||
{{ currentVersion.name || datetimeFormat(currentVersion.update_time) }}</el-text
|
||||
>
|
||||
</div>
|
||||
<el-text type="info" class="ml-16 color-secondary" v-else-if="saveTime"
|
||||
>{{ $t('views.workflow.info.saveTime')
|
||||
>{{ $t('workflow.info.saveTime')
|
||||
}}{{ datetimeFormat(saveTime) }}</el-text
|
||||
>
|
||||
</div>
|
||||
<div v-if="showHistory && disablePublic">
|
||||
<el-button type="primary" class="mr-8" @click="refreshVersion()">
|
||||
{{ $t('views.workflow.setting.restoreVersion') }}
|
||||
{{ $t('workflow.setting.restoreVersion') }}
|
||||
</el-button>
|
||||
<el-divider direction="vertical" />
|
||||
<el-button text @click="closeHistory">
|
||||
|
|
@ -29,7 +29,7 @@
|
|||
<div v-else>
|
||||
<el-button @click="showPopover = !showPopover">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4" />
|
||||
{{ $t('views.workflow.setting.addComponent') }}
|
||||
{{ $t('workflow.setting.addComponent') }}
|
||||
</el-button>
|
||||
<el-button @click="clickShowDebug" :disabled="showDebug" v-if="permissionPrecise.debug(id)">
|
||||
<AppIcon iconName="app-debug-outlined" class="mr-4"></AppIcon>
|
||||
|
|
@ -58,11 +58,11 @@
|
|||
|
||||
<el-dropdown-item @click="openHistory">
|
||||
<AppIcon iconName="app-history-outlined" class="color-secondary"></AppIcon>
|
||||
{{ $t('views.workflow.setting.releaseHistory') }}
|
||||
{{ $t('workflow.setting.releaseHistory') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item>
|
||||
<AppIcon iconName="app-save-outlined" class="color-secondary"></AppIcon>
|
||||
{{ $t('views.workflow.setting.autoSave') }}
|
||||
{{ $t('workflow.setting.autoSave') }}
|
||||
<div class="ml-4">
|
||||
<el-switch size="small" v-model="isSave" @change="changeSave" />
|
||||
</div>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
</div>
|
||||
|
||||
<h4 class="ellipsis" style="max-width: 270px" :title="detail?.name">
|
||||
{{ detail?.name || $t('views.application.form.appName.label') }}
|
||||
{{ detail?.name || $t('common.name') }}
|
||||
</h4>
|
||||
</div>
|
||||
<div class="mr-16">
|
||||
|
|
@ -212,9 +212,9 @@ const shareUrl = computed(
|
|||
|
||||
function back() {
|
||||
if (JSON.stringify(cloneWorkFlow.value) !== JSON.stringify(getGraphData())) {
|
||||
MsgConfirm(t('common.tip'), t('views.workflow.tip.saveMessage'), {
|
||||
confirmButtonText: t('views.workflow.setting.exitSave'),
|
||||
cancelButtonText: t('views.workflow.setting.exit'),
|
||||
MsgConfirm(t('common.tip'), t('workflow.tip.saveMessage'), {
|
||||
confirmButtonText: t('workflow.setting.exitSave'),
|
||||
cancelButtonText: t('workflow.setting.exit'),
|
||||
distinguishCancelAndClose: true,
|
||||
})
|
||||
.then(() => {
|
||||
|
|
@ -351,14 +351,14 @@ const publish = () => {
|
|||
if (typeof err_message == 'string') {
|
||||
MsgError(
|
||||
res.node.properties?.stepName +
|
||||
` ${t('views.workflow.node').toLowerCase()} ` +
|
||||
` ${t('workflow.node').toLowerCase()} ` +
|
||||
err_message.toLowerCase(),
|
||||
)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node').toLowerCase()} ` +
|
||||
` ${t('workflow.node').toLowerCase()} ` +
|
||||
err_message[keys[0]]?.[0]?.message.toLowerCase(),
|
||||
)
|
||||
}
|
||||
|
|
@ -369,13 +369,13 @@ const publish = () => {
|
|||
const err_message = res.errMessage
|
||||
if (typeof err_message == 'string') {
|
||||
MsgError(
|
||||
res.node.properties?.stepName + ` ${t('views.workflow.node')},` + err_message,
|
||||
res.node.properties?.stepName + ` ${t('workflow.node')},` + err_message,
|
||||
)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node')},` +
|
||||
` ${t('workflow.node')},` +
|
||||
err_message[keys[0]]?.[0]?.message,
|
||||
)
|
||||
}
|
||||
|
|
@ -407,13 +407,13 @@ const clickShowDebug = () => {
|
|||
const err_message = res.errMessage
|
||||
if (typeof err_message == 'string') {
|
||||
MsgError(
|
||||
res.node.properties?.stepName + ` ${t('views.workflow.node')},` + err_message,
|
||||
res.node.properties?.stepName + ` ${t('workflow.node')},` + err_message,
|
||||
)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node')},` +
|
||||
` ${t('workflow.node')},` +
|
||||
err_message[keys[0]]?.[0]?.message,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@
|
|||
<template #label>
|
||||
<div class="flex-between">
|
||||
<span
|
||||
>{{ $t('views.application.form.appName.label') }}
|
||||
>{{ $t('common.name') }}
|
||||
<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
require-asterisk-position="right"
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item :label="$t('views.application.form.appName.label')" prop="name">
|
||||
<el-form-item :label="$t('common.name')" prop="name">
|
||||
<el-input
|
||||
v-model="applicationForm.name"
|
||||
maxlength="64"
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
require-asterisk-position="right"
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item :label="$t('views.application.form.appName.label')" prop="name">
|
||||
<el-form-item :label="$t('common.name')" prop="name">
|
||||
<el-input
|
||||
v-model="applicationForm.name"
|
||||
maxlength="64"
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
<el-form-item>
|
||||
<el-radio-group v-model="form.mcp_source" @change="mcpSourceChange">
|
||||
<el-radio value="referencing">
|
||||
{{ $t('views.workflow.nodes.mcpNode.reference') }}
|
||||
{{ $t('workflow.nodes.mcpNode.reference') }}
|
||||
</el-radio>
|
||||
<el-radio value="custom">{{ $t('common.custom') }}</el-radio>
|
||||
</el-radio-group>
|
||||
|
|
@ -171,7 +171,7 @@ const submit = () => {
|
|||
try {
|
||||
JSON.parse(form.value.mcp_servers || '{}')
|
||||
} catch (e) {
|
||||
MsgError(t('views.workflow.nodes.mcpNode.mcpServerTip'))
|
||||
MsgError(t('workflow.nodes.mcpNode.mcpServerTip'))
|
||||
return
|
||||
}
|
||||
emit('refresh', form.value)
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@
|
|||
<div class="card-never border-r-6 mb-16">
|
||||
<el-checkbox
|
||||
v-model="allCheck"
|
||||
:label="$t('views.document.feishu.allCheck')"
|
||||
:label="$t('common.allCheck')"
|
||||
size="large"
|
||||
class="ml-24"
|
||||
@change="handleAllCheckChange"
|
||||
|
|
|
|||
|
|
@ -79,9 +79,9 @@ const stateMap: any = {
|
|||
[State.PENDING]: (type: number) => t('views.document.fileStatus.PENDING'),
|
||||
[State.STARTED]: (type: number) => startedMap[type],
|
||||
[State.REVOKE]: (type: number) => t('views.document.fileStatus.REVOKE'),
|
||||
[State.REVOKED]: (type: number) => t('views.document.fileStatus.SUCCESS'),
|
||||
[State.FAILURE]: (type: number) => t('views.document.fileStatus.FAILURE'),
|
||||
[State.SUCCESS]: (type: number) => t('views.document.fileStatus.SUCCESS'),
|
||||
[State.REVOKED]: (type: number) => t('common.status.success'),
|
||||
[State.FAILURE]: (type: number) => t('common.status.fail'),
|
||||
[State.SUCCESS]: (type: number) => t('common.status.success'),
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@
|
|||
@change="search_type_change"
|
||||
>
|
||||
<el-option :label="$t('dynamicsForm.tag.label')" value="tag" />
|
||||
<el-option :label="$t('views.tool.form.toolName.label')" value="name" />
|
||||
<el-option :label="$t('common.name')" value="name" />
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="search_type === 'name'"
|
||||
|
|
@ -211,19 +211,19 @@
|
|||
:class="filterMethod['status'] ? '' : 'is-active'"
|
||||
:command="beforeCommand('status', '')"
|
||||
class="justify-center"
|
||||
>{{ $t('views.document.table.all') }}
|
||||
>{{ $t('common.status.all') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:class="filterMethod['status'] === State.SUCCESS ? 'is-active' : ''"
|
||||
class="justify-center"
|
||||
:command="beforeCommand('status', State.SUCCESS)"
|
||||
>{{ $t('views.document.fileStatus.SUCCESS') }}
|
||||
>{{ $t('common.status.success') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:class="filterMethod['status'] === State.FAILURE ? 'is-active' : ''"
|
||||
class="justify-center"
|
||||
:command="beforeCommand('status', State.FAILURE)"
|
||||
>{{ $t('views.document.fileStatus.FAILURE') }}
|
||||
>{{ $t('common.status.fail') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:class="
|
||||
|
|
@ -303,7 +303,7 @@
|
|||
:class="filterMethod['is_active'] === '' ? 'is-active' : ''"
|
||||
:command="beforeCommand('is_active', '')"
|
||||
class="justify-center"
|
||||
>{{ $t('views.document.table.all') }}
|
||||
>{{ $t('common.status.all') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item
|
||||
:class="filterMethod['is_active'] === true ? 'is-active' : ''"
|
||||
|
|
@ -359,7 +359,7 @@
|
|||
:class="filterMethod['hit_handling_method'] ? '' : 'is-active'"
|
||||
:command="beforeCommand('hit_handling_method', '')"
|
||||
class="justify-center"
|
||||
>{{ $t('views.document.table.all') }}
|
||||
>{{ $t('common.status.all') }}
|
||||
</el-dropdown-item>
|
||||
<template v-for="(value, key) of hitHandlingMethod" :key="key">
|
||||
<el-dropdown-item
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="workflow-publish-history border-l white-bg">
|
||||
<h4 class="border-b p-16-24">{{ $t('views.workflow.setting.releaseHistory') }}</h4>
|
||||
<h4 class="border-b p-16-24">{{ $t('workflow.setting.releaseHistory') }}</h4>
|
||||
<div class="list-height pt-0">
|
||||
<el-scrollbar>
|
||||
<div class="p-8 pt-0">
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
@close="closeWrite(row)"
|
||||
/>
|
||||
<el-tag v-if="index === 0" class="default-tag ml-4">{{
|
||||
$t('views.workflow.setting.latestRelease')
|
||||
$t('workflow.setting.latestRelease')
|
||||
}}</el-tag>
|
||||
</h5>
|
||||
<el-text type="info" class="color-secondary flex align-center mt-8">
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="refreshVersion(row)">
|
||||
<el-icon class="color-secondary"><RefreshLeft /></el-icon>
|
||||
{{ $t('views.workflow.setting.restoreCurrentVersion') }}
|
||||
{{ $t('workflow.setting.restoreCurrentVersion') }}
|
||||
</el-dropdown-item>
|
||||
</el-dropdown-menu>
|
||||
</template>
|
||||
|
|
@ -137,7 +137,7 @@ function editName(val: string, item: any) {
|
|||
getList()
|
||||
})
|
||||
} else {
|
||||
MsgError(t('views.workflow.tip.nameMessage'))
|
||||
MsgError(t('workflow.tip.nameMessage'))
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,26 +1,25 @@
|
|||
<template>
|
||||
<div>
|
||||
<h4 class="title-decoration-1 mb-16 mt-4">
|
||||
{{ $t('views.workflow.debug.executionResult') }}
|
||||
{{ $t('chat.executionDetails.title') }}
|
||||
</h4>
|
||||
<div class="mb-16">
|
||||
<!-- 执行结果 -->
|
||||
<el-alert
|
||||
v-if="state == 'SUCCESS'"
|
||||
:title="$t('views.workflow.debug.executionSuccess')"
|
||||
:title="$t('common.success')"
|
||||
type="success"
|
||||
show-icon
|
||||
:closable="false"
|
||||
/>
|
||||
<el-alert
|
||||
v-if="state == 'FAILURE'"
|
||||
:title="$t('views.workflow.debug.executionFailed')"
|
||||
:title="$t('common.fail')"
|
||||
type="error"
|
||||
show-icon
|
||||
:closable="false"
|
||||
/>
|
||||
</div>
|
||||
<p class="lighter mb-8">{{ $t('chat.executionDetails.title') }}</p>
|
||||
<ExecutionDetailContent :detail="detail" app-type="WORK_FLOW"></ExecutionDetailContent>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -6,17 +6,17 @@
|
|||
<h4 class="ellipsis" style="max-width: 300px" :title="detail?.name">{{ detail?.name }}</h4>
|
||||
<div v-if="showHistory && disablePublic">
|
||||
<el-text type="info" class="ml-16 color-secondary"
|
||||
>{{ $t('views.workflow.info.previewVersion') }}
|
||||
>{{ $t('workflow.info.previewVersion') }}
|
||||
{{ currentVersion.name || datetimeFormat(currentVersion.update_time) }}</el-text
|
||||
>
|
||||
</div>
|
||||
<el-text type="info" class="ml-16 color-secondary" v-else-if="saveTime"
|
||||
>{{ $t('views.workflow.info.saveTime') }}{{ datetimeFormat(saveTime) }}</el-text
|
||||
>{{ $t('workflow.info.saveTime') }}{{ datetimeFormat(saveTime) }}</el-text
|
||||
>
|
||||
</div>
|
||||
<div v-if="showHistory && disablePublic">
|
||||
<el-button type="primary" class="mr-8" @click="refreshVersion()">
|
||||
{{ $t('views.workflow.setting.restoreVersion') }}
|
||||
{{ $t('workflow.setting.restoreVersion') }}
|
||||
</el-button>
|
||||
<el-divider direction="vertical" />
|
||||
<el-button text @click="closeHistory">
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
<div v-else>
|
||||
<el-button @click="showPopover = !showPopover">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4" />
|
||||
{{ $t('views.workflow.setting.addComponent') }}
|
||||
{{ $t('workflow.setting.addComponent') }}
|
||||
</el-button>
|
||||
<el-button @click="clickShowDebug" :disabled="showDebug" v-if="permissionPrecise.debug(id)">
|
||||
<AppIcon iconName="app-debug-outlined" class="mr-4"></AppIcon>
|
||||
|
|
@ -50,7 +50,7 @@
|
|||
<el-dropdown-menu>
|
||||
<el-dropdown-item @click="toImportDoc">
|
||||
<AppIcon iconName="app-import-doc" class="color-secondary"></AppIcon>
|
||||
{{ $t('views.workflow.operation.toImportDoc') }}
|
||||
{{ $t('workflow.operation.toImportDoc') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="openListAction">
|
||||
<AppIcon iconName="app-history-outlined" class="color-secondary"></AppIcon>
|
||||
|
|
@ -58,11 +58,11 @@
|
|||
</el-dropdown-item>
|
||||
<el-dropdown-item @click="openHistory">
|
||||
<AppIcon iconName="app-history-outlined" class="color-secondary"></AppIcon>
|
||||
{{ $t('views.workflow.setting.releaseHistory') }}
|
||||
{{ $t('workflow.setting.releaseHistory') }}
|
||||
</el-dropdown-item>
|
||||
<el-dropdown-item v-if="permissionPrecise.workflow_edit(id)">
|
||||
<AppIcon iconName="app-save-outlined" class="color-secondary"></AppIcon>
|
||||
{{ $t('views.workflow.setting.autoSave') }}
|
||||
{{ $t('workflow.setting.autoSave') }}
|
||||
<div class="ml-4">
|
||||
<el-switch size="small" v-model="isSave" @change="changeSave" />
|
||||
</div>
|
||||
|
|
@ -222,9 +222,9 @@ const shareUrl = computed(
|
|||
|
||||
function back() {
|
||||
if (JSON.stringify(cloneWorkFlow.value) !== JSON.stringify(getGraphData())) {
|
||||
MsgConfirm(t('common.tip'), t('views.workflow.tip.saveMessage'), {
|
||||
confirmButtonText: t('views.workflow.setting.exitSave'),
|
||||
cancelButtonText: t('views.workflow.setting.exit'),
|
||||
MsgConfirm(t('common.tip'), t('workflow.tip.saveMessage'), {
|
||||
confirmButtonText: t('workflow.setting.exitSave'),
|
||||
cancelButtonText: t('workflow.setting.exit'),
|
||||
distinguishCancelAndClose: true,
|
||||
})
|
||||
.then(() => {
|
||||
|
|
@ -339,14 +339,14 @@ const publish = () => {
|
|||
if (typeof err_message == 'string') {
|
||||
MsgError(
|
||||
res.node.properties?.stepName +
|
||||
` ${t('views.workflow.node').toLowerCase()} ` +
|
||||
` ${t('workflow.node').toLowerCase()} ` +
|
||||
err_message.toLowerCase(),
|
||||
)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node').toLowerCase()} ` +
|
||||
` ${t('workflow.node').toLowerCase()} ` +
|
||||
err_message[keys[0]]?.[0]?.message.toLowerCase(),
|
||||
)
|
||||
}
|
||||
|
|
@ -356,12 +356,12 @@ const publish = () => {
|
|||
const node = res.node
|
||||
const err_message = res.errMessage
|
||||
if (typeof err_message == 'string') {
|
||||
MsgError(res.node.properties?.stepName + ` ${t('views.workflow.node')},` + err_message)
|
||||
MsgError(res.node.properties?.stepName + ` ${t('workflow.node')},` + err_message)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node')},` +
|
||||
` ${t('workflow.node')},` +
|
||||
err_message[keys[0]]?.[0]?.message,
|
||||
)
|
||||
}
|
||||
|
|
@ -391,12 +391,12 @@ const clickShowDebug = () => {
|
|||
const node = res.node
|
||||
const err_message = res.errMessage
|
||||
if (typeof err_message == 'string') {
|
||||
MsgError(res.node.properties?.stepName + ` ${t('views.workflow.node')},` + err_message)
|
||||
MsgError(res.node.properties?.stepName + ` ${t('workflow.node')},` + err_message)
|
||||
} else {
|
||||
const keys = Object.keys(err_message)
|
||||
MsgError(
|
||||
node.properties?.stepName +
|
||||
` ${t('views.workflow.node')},` +
|
||||
` ${t('workflow.node')},` +
|
||||
err_message[keys[0]]?.[0]?.message,
|
||||
)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@
|
|||
<el-option :label="$t('common.creator')" value="create_user"/>
|
||||
|
||||
<el-option :label="$t('common.name')" value="name"/>
|
||||
<el-option :label="$t('views.system.resource_management.type')" value="type"/>
|
||||
<el-option :label="$t('common.type')" value="type"/>
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="search_type === 'name'"
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
|
||||
<el-table-column
|
||||
prop="tool_type"
|
||||
:label="$t('views.system.resource_management.type')"
|
||||
:label="$t('common.type')"
|
||||
width="160"
|
||||
>
|
||||
<template #default="scope">
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
>
|
||||
<el-option :label="$t('common.creator')" value="create_user" />
|
||||
<el-option :label="$t('common.name')" value="name" />
|
||||
<el-option :label="$t('views.system.resource_management.type')" value="type" />
|
||||
<el-option :label="$t('common.type')" value="type" />
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="search_type === 'name'"
|
||||
|
|
@ -71,7 +71,7 @@
|
|||
|
||||
<el-table-column
|
||||
prop="tool_type"
|
||||
:label="$t('views.system.resource_management.type')"
|
||||
:label="$t('common.type')"
|
||||
width="110"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@
|
|||
@change="search_type_change"
|
||||
>
|
||||
<el-option :label="$t('common.creator')" value="create_user" />
|
||||
<el-option :label="$t('views.tool.form.toolName.label')" value="name" />
|
||||
<el-option :label="$t('views.system.resource_management.type')" value="tool_type"/>
|
||||
<el-option :label="$t('common.name')" value="name" />
|
||||
<el-option :label="$t('common.type')" value="tool_type"/>
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="search_type === 'name'"
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="tool_type" :label="$t('views.system.resource_management.type')">
|
||||
<el-table-column prop="tool_type" :label="$t('common.type')">
|
||||
<template #default="scope">
|
||||
<span v-if="scope.row.tool_type === 'MCP'"> MCP </span>
|
||||
<span v-else-if="scope.row.tool_type === 'DATA_SOURCE'"> {{ $t('views.tool.dataSource.title') }} </span>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
<el-text class="color-secondary lighter">{{ $t('views.shared.authorized_tip') }}</el-text>
|
||||
</template>
|
||||
|
||||
<p class="mb-8 lighter">{{ $t('views.shared.type') }}</p>
|
||||
<p class="mb-8 lighter">{{ $t('common.type') }}</p>
|
||||
<el-radio-group v-model="listType">
|
||||
<el-radio value="WHITE_LIST">{{ $t('views.shared.WHITE_LIST') }}</el-radio>
|
||||
<el-radio value="BLACK_LIST">{{ $t('views.shared.BLACK_LIST') }}</el-radio>
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
@change="handleCheckAllChange"
|
||||
v-if="!search"
|
||||
>
|
||||
{{ $t('views.shared.allCheck') }}
|
||||
{{ $t('common.allCheck') }}
|
||||
</el-checkbox>
|
||||
<el-scrollbar max-height="205" wrap-class="p-16 pt-0">
|
||||
<el-checkbox-group
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
</el-breadcrumb>
|
||||
<el-divider direction="vertical" />
|
||||
<el-radio-group v-model="toolType" @change="radioChange" class="app-radio-button-group">
|
||||
<el-radio-button value="">{{ $t('views.tool.all') }}</el-radio-button>
|
||||
<el-radio-button value="">{{ $t('common.status.all') }}</el-radio-button>
|
||||
<el-radio-button value="CUSTOM">{{ $t('views.tool.title') }}</el-radio-button>
|
||||
<el-radio-button value="MCP">MCP</el-radio-button>
|
||||
<el-radio-button value="DATA_SOURCE">{{ $t('views.tool.dataSource.title') }}</el-radio-button>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:title="$t('views.operateLog.table.opt.label')"
|
||||
:title="$t('views.operateLog.table.opt')"
|
||||
v-model="dialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<template #footer>
|
||||
<span class="dialog-footer mt-16">
|
||||
<el-button @click.prevent="dialogVisible = false">
|
||||
{{ $t('views.operateLog.close') }}
|
||||
{{ $t('common.close') }}
|
||||
</el-button>
|
||||
</span>
|
||||
</template>
|
||||
|
|
|
|||
|
|
@ -106,10 +106,10 @@
|
|||
@changePage="getList"
|
||||
v-loading="loading"
|
||||
>
|
||||
<el-table-column prop="menu" :label="$t('views.operateLog.table.menu.label')" width="160">
|
||||
<el-table-column prop="menu" :label="$t('views.operateLog.table.menu')" width="160">
|
||||
<template #header>
|
||||
<div>
|
||||
<span>{{ $t('views.operateLog.table.menu.label') }}</span>
|
||||
<span>{{ $t('views.operateLog.table.menu') }}</span>
|
||||
<el-popover :width="200" trigger="click" :visible="popoverVisible">
|
||||
<template #reference>
|
||||
<el-button
|
||||
|
|
@ -154,7 +154,11 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="operate" :label="$t('views.operateLog.table.operate.detail')">
|
||||
<el-table-column
|
||||
prop="operate"
|
||||
:label="$t('views.operateLog.table.detail')"
|
||||
width="160"
|
||||
>
|
||||
<template #default="{ row }">
|
||||
<el-tooltip
|
||||
:content="
|
||||
|
|
@ -176,7 +180,7 @@
|
|||
<el-table-column
|
||||
width="120"
|
||||
prop="user.username"
|
||||
:label="$t('views.operateLog.table.user.label')"
|
||||
:label="$t('views.operateLog.table.user')"
|
||||
/>
|
||||
<el-table-column
|
||||
v-if="user.isEE()"
|
||||
|
|
@ -231,24 +235,18 @@
|
|||
</div>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
:label="$t('views.operateLog.table.status.label')"
|
||||
width="100"
|
||||
>
|
||||
<el-table-column prop="status" :label="$t('common.status.label')" width="100">
|
||||
<template #default="{ row }">
|
||||
<span v-if="row.status === 200">{{
|
||||
$t('views.operateLog.table.status.success')
|
||||
}}</span>
|
||||
<span v-else style="color: red">{{ $t('views.operateLog.table.status.fail') }}</span>
|
||||
<span v-if="row.status === 200">{{ $t('common.status.success') }}</span>
|
||||
<span v-else style="color: red">{{ $t('common.status.fail') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="ip_address"
|
||||
:label="$t('views.operateLog.table.ip_address.label')"
|
||||
:label="$t('views.operateLog.table.ip_address')"
|
||||
width="160"
|
||||
></el-table-column>
|
||||
<el-table-column :label="$t('views.operateLog.table.operateTime.label')" width="180">
|
||||
<el-table-column :label="$t('views.operateLog.table.operateTime')" width="180">
|
||||
<template #default="{ row }">
|
||||
{{ datetimeFormat(row.create_time) }}
|
||||
</template>
|
||||
|
|
@ -258,7 +256,7 @@
|
|||
<span class="mr-4">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.operateLog.table.opt.label')"
|
||||
:content="$t('views.operateLog.table.opt')"
|
||||
placement="top"
|
||||
>
|
||||
<el-button type="primary" text @click.stop="showDetails(row)" class="text-button">
|
||||
|
|
@ -310,10 +308,8 @@ import { t } from '@/locales'
|
|||
import { beforeDay, datetimeFormat, nowDate } from '@/utils/time'
|
||||
import useStore from '@/stores'
|
||||
import WorkspaceApi from '@/api/system/workspace.ts'
|
||||
import { hasPermission } from '@/utils/permission'
|
||||
import { EditionConst, PermissionConst, RoleConst } from '@/utils/permission/data.ts'
|
||||
import { ComplexPermission } from '@/utils/permission/type.ts'
|
||||
import { loadSharedApi } from '@/utils/dynamics-api/shared-api.ts'
|
||||
import { MsgSuccess } from '@/utils/message.ts'
|
||||
|
||||
const { user } = useStore()
|
||||
|
|
@ -365,25 +361,25 @@ const dayOptions = [
|
|||
const filterOptions = [
|
||||
{
|
||||
value: 'user',
|
||||
label: t('views.operateLog.table.user.label'),
|
||||
label: t('views.operateLog.table.user'),
|
||||
},
|
||||
{
|
||||
value: 'status',
|
||||
label: t('views.operateLog.table.status.label'),
|
||||
label: t('common.status.label'),
|
||||
},
|
||||
{
|
||||
value: 'ip_address',
|
||||
label: t('views.operateLog.table.ip_address.label'),
|
||||
label: t('views.operateLog.table.ip_address'),
|
||||
},
|
||||
]
|
||||
const statusOptions = [
|
||||
{
|
||||
value: '200',
|
||||
label: t('views.operateLog.table.status.success'),
|
||||
label: t('common.status.success'),
|
||||
},
|
||||
{
|
||||
value: '500',
|
||||
label: t('views.operateLog.table.status.fail'),
|
||||
label: t('common.status.fail'),
|
||||
},
|
||||
]
|
||||
const operateOptions = ref<any[]>([])
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
v-loading="loading"
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item :label="$t('views.tool.form.toolName.label')" prop="name">
|
||||
<el-form-item :label="$t('common.name')" prop="name">
|
||||
<div class="flex w-full">
|
||||
<div
|
||||
v-if="form.id"
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@
|
|||
v-loading="loading"
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item :label="$t('views.tool.form.mcpName.label')" prop="name">
|
||||
<el-form-item :label="$t('common.name')" prop="name">
|
||||
<div class="flex w-full">
|
||||
<div
|
||||
v-if="form.id"
|
||||
|
|
@ -253,7 +253,7 @@ const submit = async (formEl: FormInstance | undefined) => {
|
|||
throw new Error('Code must be a valid JSON object')
|
||||
}
|
||||
} catch (e) {
|
||||
MsgError(t('views.workflow.nodes.mcpNode.mcpServerTip'))
|
||||
MsgError(t('workflow.nodes.mcpNode.mcpServerTip'))
|
||||
return
|
||||
}
|
||||
loading.value = true
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@
|
|||
v-loading="loading"
|
||||
@submit.prevent
|
||||
>
|
||||
<el-form-item :label="$t('views.tool.form.toolName.label')" prop="name">
|
||||
<el-form-item :label="$t('common.name')" prop="name">
|
||||
<div class="flex w-full">
|
||||
<div
|
||||
v-if="form.id"
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@
|
|||
>
|
||||
<el-option :label="$t('common.creator')" value="create_user" />
|
||||
|
||||
<el-option :label="$t('views.tool.form.toolName.label')" value="name" />
|
||||
<el-option :label="$t('common.name')" value="name" />
|
||||
</el-select>
|
||||
<el-input
|
||||
v-if="search_type === 'name'"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,7 @@
|
|||
<FolderBreadcrumb :folderList="folderList" @click="folderClickHandle" v-else />
|
||||
<el-divider direction="vertical" />
|
||||
<el-radio-group v-model="toolType" @change="radioChange" class="app-radio-button-group">
|
||||
<el-radio-button value="">{{ $t('views.tool.all') }}</el-radio-button>
|
||||
<el-radio-button value="">{{ $t('common.status.all') }}</el-radio-button>
|
||||
<el-radio-button value="CUSTOM">{{ $t('views.tool.title') }}</el-radio-button>
|
||||
<el-radio-button value="MCP">MCP</el-radio-button>
|
||||
<el-radio-button value="DATA_SOURCE">{{ $t('views.tool.dataSource.title') }}</el-radio-button>
|
||||
|
|
|
|||
|
|
@ -62,21 +62,21 @@ function visibleChange(bool: boolean) {
|
|||
const validate = () => {
|
||||
const incomingNodeValue = getOptionsValue()
|
||||
if (!data.value || data.value.length === 0) {
|
||||
return Promise.reject(t('views.workflow.variable.ReferencingRequired'))
|
||||
return Promise.reject(t('workflow.variable.ReferencingRequired'))
|
||||
}
|
||||
if (data.value.length < 2) {
|
||||
return Promise.reject(t('views.workflow.variable.ReferencingError'))
|
||||
return Promise.reject(t('workflow.variable.ReferencingError'))
|
||||
}
|
||||
const node_id = data.value[0]
|
||||
const node_field = data.value[1]
|
||||
const nodeParent = incomingNodeValue.find((item: any) => item.value === node_id)
|
||||
if (!nodeParent) {
|
||||
data.value = []
|
||||
return Promise.reject(t('views.workflow.variable.NoReferencing'))
|
||||
return Promise.reject(t('workflow.variable.NoReferencing'))
|
||||
}
|
||||
if (!nodeParent.children.some((item: any) => item.value === node_field)) {
|
||||
data.value = []
|
||||
return Promise.reject(t('views.workflow.variable.NoReferencing'))
|
||||
return Promise.reject(t('workflow.variable.NoReferencing'))
|
||||
}
|
||||
return Promise.resolve('')
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,14 +42,14 @@
|
|||
</el-button>
|
||||
<template #dropdown>
|
||||
<div style="width: 280px" class="p-12-16">
|
||||
<h5>{{ $t('views.workflow.condition.title') }}</h5>
|
||||
<h5>{{ $t('workflow.condition.title') }}</h5>
|
||||
<p class="mt-8 lighter">
|
||||
<span>{{ $t('views.workflow.condition.front') }}</span>
|
||||
<span>{{ $t('workflow.condition.front') }}</span>
|
||||
<el-select v-model="condition" size="small" style="width: 60px; margin: 0 8px">
|
||||
<el-option :label="$t('views.workflow.condition.AND')" value="AND" />
|
||||
<el-option :label="$t('views.workflow.condition.OR')" value="OR" />
|
||||
<el-option :label="$t('workflow.condition.AND')" value="AND" />
|
||||
<el-option :label="$t('workflow.condition.OR')" value="OR" />
|
||||
</el-select>
|
||||
<span>{{ $t('views.workflow.condition.text') }}</span>
|
||||
<span>{{ $t('workflow.condition.text') }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -81,8 +81,8 @@
|
|||
class="mb-16"
|
||||
:title="
|
||||
props.nodeModel.type === 'application-node'
|
||||
? $t('views.workflow.tip.applicationNodeError')
|
||||
: $t('views.workflow.tip.toolNodeError')
|
||||
? $t('workflow.tip.applicationNodeError')
|
||||
: $t('workflow.tip.toolNodeError')
|
||||
"
|
||||
type="error"
|
||||
show-icon
|
||||
|
|
@ -102,7 +102,7 @@
|
|||
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.setting.copyParam')"
|
||||
:content="$t('workflow.setting.copyParam')"
|
||||
placement="top"
|
||||
v-if="showicon === index"
|
||||
>
|
||||
|
|
@ -134,7 +134,7 @@
|
|||
</el-collapse-transition>
|
||||
|
||||
<el-dialog
|
||||
:title="$t('views.workflow.nodeName')"
|
||||
:title="$t('workflow.nodeName')"
|
||||
v-model="nodeNameDialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
|
@ -257,7 +257,7 @@ const editName = async (formEl: FormInstance | undefined) => {
|
|||
nodeNameDialogVisible.value = false
|
||||
formEl.resetFields()
|
||||
} else {
|
||||
MsgError(t('views.workflow.tip.repeatedNodeError'))
|
||||
MsgError(t('workflow.tip.repeatedNodeError'))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
@ -280,7 +280,7 @@ const copyNode = () => {
|
|||
props.nodeModel.graphModel.toFront(cloneNode.id)
|
||||
}
|
||||
const deleteNode = () => {
|
||||
MsgConfirm(t('common.tip'), t('views.workflow.delete.confirmTitle'), {
|
||||
MsgConfirm(t('common.tip'), t('workflow.delete.confirmTitle'), {
|
||||
confirmButtonText: t('common.confirm'),
|
||||
confirmButtonClass: 'danger',
|
||||
}).then(() => {
|
||||
|
|
@ -352,7 +352,6 @@ function showOperate(type: string) {
|
|||
}
|
||||
|
||||
function showConditionOperate(type: string) {
|
||||
console.log(props.nodeModel)
|
||||
return (
|
||||
![
|
||||
WorkflowType.Start,
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@
|
|||
<el-button link @click="zoomOut" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.zoomOut')"
|
||||
:content="$t('workflow.control.zoomOut')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon :size="16" :title="$t('views.workflow.control.zoomOut')"
|
||||
<el-icon :size="16" :title="$t('workflow.control.zoomOut')"
|
||||
><ZoomOut
|
||||
/></el-icon>
|
||||
</el-tooltip>
|
||||
|
|
@ -29,10 +29,10 @@
|
|||
<el-button link @click="zoomIn" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.zoomIn')"
|
||||
:content="$t('workflow.control.zoomIn')"
|
||||
placement="top"
|
||||
>
|
||||
<el-icon :size="16" :title="$t('views.workflow.control.zoomIn')"
|
||||
<el-icon :size="16" :title="$t('workflow.control.zoomIn')"
|
||||
><ZoomIn
|
||||
/></el-icon>
|
||||
</el-tooltip>
|
||||
|
|
@ -40,12 +40,12 @@
|
|||
<el-button link @click="fitView" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.fitView')"
|
||||
:content="$t('workflow.control.fitView')"
|
||||
placement="top"
|
||||
>
|
||||
<AppIcon
|
||||
iconName="app-fitview"
|
||||
:title="$t('views.workflow.control.fitView')"
|
||||
:title="$t('workflow.control.fitView')"
|
||||
></AppIcon>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
|
|
@ -53,39 +53,39 @@
|
|||
<el-button link @click="retract" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.retract')"
|
||||
:content="$t('workflow.control.retract')"
|
||||
placement="top"
|
||||
>
|
||||
<AppIcon
|
||||
style="font-size: 16px"
|
||||
iconName="app-retract"
|
||||
:title="$t('views.workflow.control.retract')"
|
||||
:title="$t('workflow.control.retract')"
|
||||
></AppIcon>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
<el-button link @click="extend" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.extend')"
|
||||
:content="$t('workflow.control.extend')"
|
||||
placement="top"
|
||||
>
|
||||
<AppIcon
|
||||
style="font-size: 16px"
|
||||
iconName="app-extend"
|
||||
:title="$t('views.workflow.control.extend')"
|
||||
:title="$t('workflow.control.extend')"
|
||||
></AppIcon>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
<el-button link @click="layout" style="border: none">
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.control.beautify')"
|
||||
:content="$t('workflow.control.beautify')"
|
||||
placement="top"
|
||||
>
|
||||
<AppIcon
|
||||
style="font-size: 16px"
|
||||
iconName="app-beautify"
|
||||
:title="$t('views.workflow.control.beautify')"
|
||||
:title="$t('workflow.control.beautify')"
|
||||
></AppIcon>
|
||||
</el-tooltip>
|
||||
</el-button>
|
||||
|
|
|
|||
|
|
@ -66,13 +66,13 @@ class AppNode extends HtmlResize.view {
|
|||
if (this.props.model.type === 'start-node') {
|
||||
result.push({
|
||||
value: 'global',
|
||||
label: t('views.workflow.variable.global'),
|
||||
label: t('workflow.variable.global'),
|
||||
type: 'global',
|
||||
children: this.props.model.properties?.config?.globalFields || [],
|
||||
})
|
||||
result.push({
|
||||
value: 'chat',
|
||||
label: t('views.workflow.variable.chat'),
|
||||
label: t('workflow.variable.chat'),
|
||||
type: 'chat',
|
||||
children: this.props.model.properties?.config?.chatFields || [],
|
||||
})
|
||||
|
|
@ -88,7 +88,7 @@ class AppNode extends HtmlResize.view {
|
|||
|
||||
result.push({
|
||||
value: 'global',
|
||||
label: t('views.workflow.variable.global'),
|
||||
label: t('workflow.variable.global'),
|
||||
type: 'global',
|
||||
children: globalFields,
|
||||
})
|
||||
|
|
@ -405,13 +405,13 @@ class AppNodeModel extends HtmlResize.model {
|
|||
return false
|
||||
}
|
||||
const circleOnlyAsTarget = {
|
||||
message: t('views.workflow.tip.onlyRight'),
|
||||
message: t('workflow.tip.onlyRight'),
|
||||
validate: (sourceNode: any, targetNode: any, sourceAnchor: any) => {
|
||||
return sourceAnchor.type === 'right'
|
||||
},
|
||||
}
|
||||
this.sourceRules.push({
|
||||
message: t('views.workflow.tip.notRecyclable'),
|
||||
message: t('workflow.tip.notRecyclable'),
|
||||
validate: (sourceNode: any, targetNode: any, sourceAnchor: any, targetAnchor: any) => {
|
||||
if (targetNode.id == sourceNode.id) {
|
||||
return false
|
||||
|
|
@ -427,7 +427,7 @@ class AppNodeModel extends HtmlResize.model {
|
|||
|
||||
this.sourceRules.push(circleOnlyAsTarget)
|
||||
this.targetRules.push({
|
||||
message: t('views.workflow.tip.onlyLeft'),
|
||||
message: t('workflow.tip.onlyLeft'),
|
||||
validate: (sourceNode: any, targetNode: any, sourceAnchor: any, targetAnchor: any) => {
|
||||
return targetAnchor.type === 'left'
|
||||
},
|
||||
|
|
|
|||
|
|
@ -9,16 +9,16 @@ export const startNode = {
|
|||
y: 3340,
|
||||
properties: {
|
||||
height: 364,
|
||||
stepName: t('views.workflow.nodes.startNode.label'),
|
||||
stepName: t('workflow.nodes.startNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.startNode.question'),
|
||||
label: t('workflow.nodes.startNode.question'),
|
||||
value: 'question',
|
||||
},
|
||||
],
|
||||
globalFields: [
|
||||
{ label: t('views.workflow.nodes.startNode.currentTime'), value: 'time' },
|
||||
{ label: t('workflow.nodes.startNode.currentTime'), value: 'time' },
|
||||
{
|
||||
label: t('views.application.form.historyRecord.label'),
|
||||
value: 'history_context',
|
||||
|
|
@ -29,8 +29,8 @@ export const startNode = {
|
|||
},
|
||||
],
|
||||
},
|
||||
fields: [{ label: t('views.workflow.nodes.startNode.question'), value: 'question' }],
|
||||
globalFields: [{ label: t('views.workflow.nodes.startNode.currentTime'), value: 'time' }],
|
||||
fields: [{ label: t('workflow.nodes.startNode.question'), value: 'question' }],
|
||||
globalFields: [{ label: t('workflow.nodes.startNode.currentTime'), value: 'time' }],
|
||||
showNode: true,
|
||||
},
|
||||
}
|
||||
|
|
@ -42,7 +42,7 @@ export const baseNode = {
|
|||
text: '',
|
||||
properties: {
|
||||
height: 728.375,
|
||||
stepName: t('views.workflow.nodes.baseNode.label'),
|
||||
stepName: t('workflow.nodes.baseNode.label'),
|
||||
input_field_list: [],
|
||||
node_data: {
|
||||
name: '',
|
||||
|
|
@ -64,7 +64,7 @@ export const knowledgeBaseNode = {
|
|||
text: '',
|
||||
properties: {
|
||||
height: 728.375,
|
||||
stepName: t('views.workflow.nodes.baseNode.label'),
|
||||
stepName: t('workflow.nodes.baseNode.label'),
|
||||
input_field_list: [],
|
||||
node_data: {
|
||||
name: '',
|
||||
|
|
@ -82,17 +82,17 @@ export const dataSourceLocalNode = {
|
|||
type: WorkflowType.DataSourceLocalNode,
|
||||
x: 360,
|
||||
y: 2761.3875,
|
||||
text: t('views.workflow.nodes.dataSourceLocalNode.text'),
|
||||
label: t('views.workflow.nodes.dataSourceLocalNode.label'),
|
||||
text: t('workflow.nodes.dataSourceLocalNode.text'),
|
||||
label: t('workflow.nodes.dataSourceLocalNode.label'),
|
||||
properties: {
|
||||
kind: WorkflowKind.DataSource,
|
||||
height: 728.375,
|
||||
stepName: t('views.workflow.nodes.dataSourceLocalNode.label'),
|
||||
stepName: t('workflow.nodes.dataSourceLocalNode.label'),
|
||||
input_field_list: [],
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.dataSourceLocalNode.fileList'),
|
||||
label: t('workflow.nodes.dataSourceLocalNode.fileList'),
|
||||
value: 'file_list',
|
||||
},
|
||||
],
|
||||
|
|
@ -108,16 +108,16 @@ export const dataSourceWebNode = {
|
|||
type: WorkflowType.DataSourceWebNode,
|
||||
x: 360,
|
||||
y: 2761.3875,
|
||||
text: t('views.workflow.nodes.dataSourceWebNode.text'),
|
||||
label: t('views.workflow.nodes.dataSourceWebNode.label'),
|
||||
text: t('workflow.nodes.dataSourceWebNode.text'),
|
||||
label: t('workflow.nodes.dataSourceWebNode.label'),
|
||||
properties: {
|
||||
kind: WorkflowKind.DataSource,
|
||||
height: 180,
|
||||
stepName: t('views.workflow.nodes.dataSourceWebNode.label'),
|
||||
stepName: t('workflow.nodes.dataSourceWebNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.dataSourceWebNode.field_label'),
|
||||
label: t('workflow.nodes.dataSourceWebNode.field_label'),
|
||||
value: 'document_list',
|
||||
},
|
||||
],
|
||||
|
|
@ -127,11 +127,11 @@ export const dataSourceWebNode = {
|
|||
|
||||
export const knowledgeWriteNode = {
|
||||
type: WorkflowType.KnowledgeWriteNode,
|
||||
text: t('views.workflow.nodes.knowledgeWriteNode.text'),
|
||||
label: t('views.workflow.nodes.knowledgeWriteNode.label'),
|
||||
text: t('workflow.nodes.knowledgeWriteNode.text'),
|
||||
label: t('workflow.nodes.knowledgeWriteNode.label'),
|
||||
height: 100,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.knowledgeWriteNode.label'),
|
||||
stepName: t('workflow.nodes.knowledgeWriteNode.label'),
|
||||
config: {
|
||||
fields: [],
|
||||
},
|
||||
|
|
@ -148,23 +148,23 @@ export const baseNodes = [baseNode, startNode]
|
|||
*/
|
||||
export const aiChatNode = {
|
||||
type: WorkflowType.AiChat,
|
||||
text: t('views.workflow.nodes.aiChatNode.text'),
|
||||
label: t('views.workflow.nodes.aiChatNode.label'),
|
||||
text: t('workflow.nodes.aiChatNode.text'),
|
||||
label: t('workflow.nodes.aiChatNode.label'),
|
||||
height: 340,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.aiChatNode.label'),
|
||||
stepName: t('workflow.nodes.aiChatNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.aiChatNode.answer'),
|
||||
label: t('workflow.nodes.aiChatNode.answer'),
|
||||
value: 'answer',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.aiChatNode.think'),
|
||||
label: t('workflow.nodes.aiChatNode.think'),
|
||||
value: 'reasoning_content',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.aiChatNode.historyMessage'),
|
||||
label: t('workflow.nodes.aiChatNode.historyMessage'),
|
||||
value: 'history_message',
|
||||
},
|
||||
],
|
||||
|
|
@ -176,27 +176,27 @@ export const aiChatNode = {
|
|||
*/
|
||||
export const searchKnowledgeNode = {
|
||||
type: WorkflowType.SearchKnowledge,
|
||||
text: t('views.workflow.nodes.searchKnowledgeNode.text'),
|
||||
label: t('views.workflow.nodes.searchKnowledgeNode.label'),
|
||||
text: t('workflow.nodes.searchKnowledgeNode.text'),
|
||||
label: t('workflow.nodes.searchKnowledgeNode.label'),
|
||||
height: 355,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.searchKnowledgeNode.label'),
|
||||
stepName: t('workflow.nodes.searchKnowledgeNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.searchKnowledgeNode.paragraph_list'),
|
||||
label: t('workflow.nodes.searchKnowledgeNode.paragraph_list'),
|
||||
value: 'paragraph_list',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.searchKnowledgeNode.is_hit_handling_method_list'),
|
||||
label: t('workflow.nodes.searchKnowledgeNode.is_hit_handling_method_list'),
|
||||
value: 'is_hit_handling_method_list',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.searchKnowledgeNode.result'),
|
||||
label: t('workflow.nodes.searchKnowledgeNode.result'),
|
||||
value: 'data',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.searchKnowledgeNode.directly_return'),
|
||||
label: t('workflow.nodes.searchKnowledgeNode.directly_return'),
|
||||
value: 'directly_return',
|
||||
},
|
||||
],
|
||||
|
|
@ -209,20 +209,20 @@ export const searchKnowledgeNode = {
|
|||
*/
|
||||
export const searchDocumentNode = {
|
||||
type: WorkflowType.SearchDocument,
|
||||
text: t('views.workflow.nodes.searchDocumentNode.text'),
|
||||
label: t('views.workflow.nodes.searchDocumentNode.label'),
|
||||
text: t('workflow.nodes.searchDocumentNode.text'),
|
||||
label: t('workflow.nodes.searchDocumentNode.label'),
|
||||
height: 355,
|
||||
properties: {
|
||||
width: 600,
|
||||
stepName: t('views.workflow.nodes.searchDocumentNode.label'),
|
||||
stepName: t('workflow.nodes.searchDocumentNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.searchDocumentNode.knowledgeList'),
|
||||
label: t('workflow.nodes.searchDocumentNode.knowledgeList'),
|
||||
value: 'knowledge_list',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.searchDocumentNode.documentList'),
|
||||
label: t('workflow.nodes.searchDocumentNode.documentList'),
|
||||
value: 'document_list',
|
||||
},
|
||||
],
|
||||
|
|
@ -232,15 +232,15 @@ export const searchDocumentNode = {
|
|||
|
||||
export const questionNode = {
|
||||
type: WorkflowType.Question,
|
||||
text: t('views.workflow.nodes.questionNode.text'),
|
||||
label: t('views.workflow.nodes.questionNode.label'),
|
||||
text: t('workflow.nodes.questionNode.text'),
|
||||
label: t('workflow.nodes.questionNode.label'),
|
||||
height: 345,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.questionNode.label'),
|
||||
stepName: t('workflow.nodes.questionNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.questionNode.result'),
|
||||
label: t('workflow.nodes.questionNode.result'),
|
||||
value: 'answer',
|
||||
},
|
||||
],
|
||||
|
|
@ -249,11 +249,11 @@ export const questionNode = {
|
|||
}
|
||||
export const variableSplittingNode = {
|
||||
type: WorkflowType.VariableSplittingNode,
|
||||
text: t('views.workflow.nodes.variableSplittingNode.text'),
|
||||
label: t('views.workflow.nodes.variableSplittingNode.label'),
|
||||
text: t('workflow.nodes.variableSplittingNode.text'),
|
||||
label: t('workflow.nodes.variableSplittingNode.label'),
|
||||
height: 345,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.variableSplittingNode.label'),
|
||||
stepName: t('workflow.nodes.variableSplittingNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -267,12 +267,12 @@ export const variableSplittingNode = {
|
|||
|
||||
export const parameterExtractionNode = {
|
||||
type: WorkflowType.ParameterExtractionNode,
|
||||
text: t('views.workflow.nodes.parameterExtractionNode.text'),
|
||||
label: t('views.workflow.nodes.parameterExtractionNode.label'),
|
||||
text: t('workflow.nodes.parameterExtractionNode.text'),
|
||||
label: t('workflow.nodes.parameterExtractionNode.label'),
|
||||
height: 345,
|
||||
properties: {
|
||||
width: 430,
|
||||
stepName: t('views.workflow.nodes.parameterExtractionNode.label'),
|
||||
stepName: t('workflow.nodes.parameterExtractionNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -286,16 +286,16 @@ export const parameterExtractionNode = {
|
|||
|
||||
export const conditionNode = {
|
||||
type: WorkflowType.Condition,
|
||||
text: t('views.workflow.nodes.conditionNode.text'),
|
||||
label: t('views.workflow.nodes.conditionNode.label'),
|
||||
text: t('workflow.nodes.conditionNode.text'),
|
||||
label: t('workflow.nodes.conditionNode.label'),
|
||||
height: 175,
|
||||
properties: {
|
||||
width: 600,
|
||||
stepName: t('views.workflow.nodes.conditionNode.label'),
|
||||
stepName: t('workflow.nodes.conditionNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.conditionNode.branch_name'),
|
||||
label: t('workflow.nodes.conditionNode.branch_name'),
|
||||
value: 'branch_name',
|
||||
},
|
||||
],
|
||||
|
|
@ -304,11 +304,11 @@ export const conditionNode = {
|
|||
}
|
||||
export const replyNode = {
|
||||
type: WorkflowType.Reply,
|
||||
text: t('views.workflow.nodes.replyNode.text'),
|
||||
label: t('views.workflow.nodes.replyNode.label'),
|
||||
text: t('workflow.nodes.replyNode.text'),
|
||||
label: t('workflow.nodes.replyNode.label'),
|
||||
height: 210,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.replyNode.label'),
|
||||
stepName: t('workflow.nodes.replyNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -321,19 +321,19 @@ export const replyNode = {
|
|||
}
|
||||
export const rerankerNode = {
|
||||
type: WorkflowType.RerankerNode,
|
||||
text: t('views.workflow.nodes.rerankerNode.text'),
|
||||
label: t('views.workflow.nodes.rerankerNode.label'),
|
||||
text: t('workflow.nodes.rerankerNode.text'),
|
||||
label: t('workflow.nodes.rerankerNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.rerankerNode.label'),
|
||||
stepName: t('workflow.nodes.rerankerNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.rerankerNode.result_list'),
|
||||
label: t('workflow.nodes.rerankerNode.result_list'),
|
||||
value: 'result_list',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.rerankerNode.result'),
|
||||
label: t('workflow.nodes.rerankerNode.result'),
|
||||
value: 'result',
|
||||
},
|
||||
],
|
||||
|
|
@ -342,23 +342,23 @@ export const rerankerNode = {
|
|||
}
|
||||
export const formNode = {
|
||||
type: WorkflowType.FormNode,
|
||||
text: t('views.workflow.nodes.formNode.text'),
|
||||
label: t('views.workflow.nodes.formNode.label'),
|
||||
text: t('workflow.nodes.formNode.text'),
|
||||
label: t('workflow.nodes.formNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
width: 600,
|
||||
stepName: t('views.workflow.nodes.formNode.label'),
|
||||
stepName: t('workflow.nodes.formNode.label'),
|
||||
node_data: {
|
||||
is_result: true,
|
||||
form_field_list: [],
|
||||
form_content_format: `${t('views.workflow.nodes.formNode.form_content_format1')}
|
||||
form_content_format: `${t('workflow.nodes.formNode.form_content_format1')}
|
||||
{{form}}
|
||||
${t('views.workflow.nodes.formNode.form_content_format2')}`,
|
||||
${t('workflow.nodes.formNode.form_content_format2')}`,
|
||||
},
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.formNode.form_data'),
|
||||
label: t('workflow.nodes.formNode.form_data'),
|
||||
value: 'form_data',
|
||||
},
|
||||
],
|
||||
|
|
@ -367,19 +367,19 @@ ${t('views.workflow.nodes.formNode.form_content_format2')}`,
|
|||
}
|
||||
export const documentExtractNode = {
|
||||
type: WorkflowType.DocumentExtractNode,
|
||||
text: t('views.workflow.nodes.documentExtractNode.text'),
|
||||
label: t('views.workflow.nodes.documentExtractNode.label'),
|
||||
text: t('workflow.nodes.documentExtractNode.text'),
|
||||
label: t('workflow.nodes.documentExtractNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.documentExtractNode.label'),
|
||||
stepName: t('workflow.nodes.documentExtractNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.documentExtractNode.content'),
|
||||
label: t('workflow.nodes.documentExtractNode.content'),
|
||||
value: 'content',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.dataSourceWebNode.field_label'),
|
||||
label: t('workflow.nodes.dataSourceWebNode.field_label'),
|
||||
value: 'document_list',
|
||||
},
|
||||
],
|
||||
|
|
@ -388,16 +388,16 @@ export const documentExtractNode = {
|
|||
}
|
||||
export const documentSplitNode = {
|
||||
type: WorkflowType.DocumentSplitNode,
|
||||
text: t('views.workflow.nodes.documentSplitNode.text'),
|
||||
label: t('views.workflow.nodes.documentSplitNode.label'),
|
||||
text: t('workflow.nodes.documentSplitNode.text'),
|
||||
label: t('workflow.nodes.documentSplitNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
width: 500,
|
||||
stepName: t('views.workflow.nodes.documentSplitNode.label'),
|
||||
stepName: t('workflow.nodes.documentSplitNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.documentSplitNode.paragraphList'),
|
||||
label: t('workflow.nodes.documentSplitNode.paragraphList'),
|
||||
value: 'paragraph_list',
|
||||
},
|
||||
],
|
||||
|
|
@ -406,15 +406,15 @@ export const documentSplitNode = {
|
|||
}
|
||||
export const imageUnderstandNode = {
|
||||
type: WorkflowType.ImageUnderstandNode,
|
||||
text: t('views.workflow.nodes.imageUnderstandNode.text'),
|
||||
label: t('views.workflow.nodes.imageUnderstandNode.label'),
|
||||
text: t('workflow.nodes.imageUnderstandNode.text'),
|
||||
label: t('workflow.nodes.imageUnderstandNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.imageUnderstandNode.label'),
|
||||
stepName: t('workflow.nodes.imageUnderstandNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.imageUnderstandNode.answer'),
|
||||
label: t('workflow.nodes.imageUnderstandNode.answer'),
|
||||
value: 'answer',
|
||||
},
|
||||
],
|
||||
|
|
@ -424,15 +424,15 @@ export const imageUnderstandNode = {
|
|||
|
||||
export const videoUnderstandNode = {
|
||||
type: WorkflowType.VideoUnderstandNode,
|
||||
text: t('views.workflow.nodes.videoUnderstandNode.text'),
|
||||
label: t('views.workflow.nodes.videoUnderstandNode.label'),
|
||||
text: t('workflow.nodes.videoUnderstandNode.text'),
|
||||
label: t('workflow.nodes.videoUnderstandNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.videoUnderstandNode.label'),
|
||||
stepName: t('workflow.nodes.videoUnderstandNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.videoUnderstandNode.answer'),
|
||||
label: t('workflow.nodes.videoUnderstandNode.answer'),
|
||||
value: 'answer',
|
||||
},
|
||||
],
|
||||
|
|
@ -441,11 +441,11 @@ export const videoUnderstandNode = {
|
|||
}
|
||||
export const variableAggregationNode = {
|
||||
type: WorkflowType.VariableAggregationNode,
|
||||
text: t('views.workflow.nodes.variableAggregationNode.text'),
|
||||
label: t('views.workflow.nodes.variableAggregationNode.label'),
|
||||
text: t('workflow.nodes.variableAggregationNode.text'),
|
||||
label: t('workflow.nodes.variableAggregationNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.variableAggregationNode.label'),
|
||||
stepName: t('workflow.nodes.variableAggregationNode.label'),
|
||||
config: {
|
||||
fields: [],
|
||||
},
|
||||
|
|
@ -454,22 +454,22 @@ export const variableAggregationNode = {
|
|||
|
||||
export const variableAssignNode = {
|
||||
type: WorkflowType.VariableAssignNode,
|
||||
text: t('views.workflow.nodes.variableAssignNode.text'),
|
||||
label: t('views.workflow.nodes.variableAssignNode.label'),
|
||||
text: t('workflow.nodes.variableAssignNode.text'),
|
||||
label: t('workflow.nodes.variableAssignNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.variableAssignNode.label'),
|
||||
stepName: t('workflow.nodes.variableAssignNode.label'),
|
||||
config: {},
|
||||
},
|
||||
}
|
||||
|
||||
export const mcpNode = {
|
||||
type: WorkflowType.McpNode,
|
||||
text: t('views.workflow.nodes.mcpNode.text'),
|
||||
label: t('views.workflow.nodes.mcpNode.label'),
|
||||
text: t('workflow.nodes.mcpNode.text'),
|
||||
label: t('workflow.nodes.mcpNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.mcpNode.label'),
|
||||
stepName: t('workflow.nodes.mcpNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -483,15 +483,15 @@ export const mcpNode = {
|
|||
|
||||
export const imageGenerateNode = {
|
||||
type: WorkflowType.ImageGenerateNode,
|
||||
text: t('views.workflow.nodes.imageGenerateNode.text'),
|
||||
label: t('views.workflow.nodes.imageGenerateNode.label'),
|
||||
text: t('workflow.nodes.imageGenerateNode.text'),
|
||||
label: t('workflow.nodes.imageGenerateNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.imageGenerateNode.label'),
|
||||
stepName: t('workflow.nodes.imageGenerateNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.imageGenerateNode.answer'),
|
||||
label: t('workflow.nodes.imageGenerateNode.answer'),
|
||||
value: 'answer',
|
||||
},
|
||||
{
|
||||
|
|
@ -505,11 +505,11 @@ export const imageGenerateNode = {
|
|||
|
||||
export const speechToTextNode = {
|
||||
type: WorkflowType.SpeechToTextNode,
|
||||
text: t('views.workflow.nodes.speechToTextNode.text'),
|
||||
label: t('views.workflow.nodes.speechToTextNode.label'),
|
||||
text: t('workflow.nodes.speechToTextNode.text'),
|
||||
label: t('workflow.nodes.speechToTextNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.speechToTextNode.label'),
|
||||
stepName: t('workflow.nodes.speechToTextNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -522,11 +522,11 @@ export const speechToTextNode = {
|
|||
}
|
||||
export const textToSpeechNode = {
|
||||
type: WorkflowType.TextToSpeechNode,
|
||||
text: t('views.workflow.nodes.textToSpeechNode.text'),
|
||||
label: t('views.workflow.nodes.textToSpeechNode.label'),
|
||||
text: t('workflow.nodes.textToSpeechNode.text'),
|
||||
label: t('workflow.nodes.textToSpeechNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.textToSpeechNode.label'),
|
||||
stepName: t('workflow.nodes.textToSpeechNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -543,11 +543,11 @@ export const textToSpeechNode = {
|
|||
*/
|
||||
export const toolNode = {
|
||||
type: WorkflowType.ToolLibCustom,
|
||||
text: t('views.workflow.nodes.toolNode.text'),
|
||||
label: t('views.workflow.nodes.toolNode.label'),
|
||||
text: t('workflow.nodes.toolNode.text'),
|
||||
label: t('workflow.nodes.toolNode.label'),
|
||||
height: 260,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.toolNode.label'),
|
||||
stepName: t('workflow.nodes.toolNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -561,11 +561,11 @@ export const toolNode = {
|
|||
|
||||
export const intentNode = {
|
||||
type: WorkflowType.IntentNode,
|
||||
text: t('views.workflow.nodes.intentNode.text'),
|
||||
label: t('views.workflow.nodes.intentNode.label'),
|
||||
text: t('workflow.nodes.intentNode.text'),
|
||||
label: t('workflow.nodes.intentNode.label'),
|
||||
height: 260,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.intentNode.label'),
|
||||
stepName: t('workflow.nodes.intentNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -588,15 +588,15 @@ export const loopStartNode = {
|
|||
y: 3340,
|
||||
properties: {
|
||||
height: 364,
|
||||
stepName: t('views.workflow.nodes.loopStartNode.label'),
|
||||
stepName: t('workflow.nodes.loopStartNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
label: t('views.workflow.nodes.loopStartNode.loopIndex'),
|
||||
label: t('workflow.nodes.loopStartNode.loopIndex'),
|
||||
value: 'index',
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.loopStartNode.loopItem'),
|
||||
label: t('workflow.nodes.loopStartNode.loopItem'),
|
||||
value: 'item',
|
||||
},
|
||||
],
|
||||
|
|
@ -609,11 +609,11 @@ export const loopStartNode = {
|
|||
export const loopNode = {
|
||||
type: WorkflowType.LoopNode,
|
||||
visible: false,
|
||||
text: t('views.workflow.nodes.loopNode.text'),
|
||||
label: t('views.workflow.nodes.loopNode.label'),
|
||||
text: t('workflow.nodes.loopNode.text'),
|
||||
label: t('workflow.nodes.loopNode.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.loopNode.label'),
|
||||
stepName: t('workflow.nodes.loopNode.label'),
|
||||
workflow: {
|
||||
edges: [],
|
||||
nodes: [
|
||||
|
|
@ -644,11 +644,11 @@ export const loopNode = {
|
|||
|
||||
export const imageToVideoNode = {
|
||||
type: WorkflowType.ImageToVideoGenerateNode,
|
||||
text: t('views.workflow.nodes.imageToVideoGenerate.text'),
|
||||
label: t('views.workflow.nodes.imageToVideoGenerate.label'),
|
||||
text: t('workflow.nodes.imageToVideoGenerate.text'),
|
||||
label: t('workflow.nodes.imageToVideoGenerate.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.imageToVideoGenerate.label'),
|
||||
stepName: t('workflow.nodes.imageToVideoGenerate.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -662,12 +662,12 @@ export const imageToVideoNode = {
|
|||
|
||||
export const loopBodyNode = {
|
||||
type: WorkflowType.LoopBodyNode,
|
||||
text: t('views.workflow.nodes.loopBodyNode.text'),
|
||||
label: t('views.workflow.nodes.loopBodyNode.label'),
|
||||
text: t('workflow.nodes.loopBodyNode.text'),
|
||||
label: t('workflow.nodes.loopBodyNode.label'),
|
||||
height: 1080,
|
||||
properties: {
|
||||
width: 1920,
|
||||
stepName: t('views.workflow.nodes.loopBodyNode.label'),
|
||||
stepName: t('workflow.nodes.loopBodyNode.label'),
|
||||
config: {
|
||||
fields: [],
|
||||
},
|
||||
|
|
@ -675,12 +675,12 @@ export const loopBodyNode = {
|
|||
}
|
||||
export const loopContinueNode = {
|
||||
type: WorkflowType.LoopContinueNode,
|
||||
text: t('views.workflow.nodes.loopContinueNode.text'),
|
||||
label: t('views.workflow.nodes.loopContinueNode.label'),
|
||||
text: t('workflow.nodes.loopContinueNode.text'),
|
||||
label: t('workflow.nodes.loopContinueNode.label'),
|
||||
height: 100,
|
||||
properties: {
|
||||
width: 600,
|
||||
stepName: t('views.workflow.nodes.loopContinueNode.label'),
|
||||
stepName: t('workflow.nodes.loopContinueNode.label'),
|
||||
config: {
|
||||
fields: [],
|
||||
},
|
||||
|
|
@ -689,11 +689,11 @@ export const loopContinueNode = {
|
|||
|
||||
export const textToVideoNode = {
|
||||
type: WorkflowType.TextToVideoGenerateNode,
|
||||
text: t('views.workflow.nodes.textToVideoGenerate.text'),
|
||||
label: t('views.workflow.nodes.textToVideoGenerate.label'),
|
||||
text: t('workflow.nodes.textToVideoGenerate.text'),
|
||||
label: t('workflow.nodes.textToVideoGenerate.label'),
|
||||
height: 252,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.textToVideoGenerate.label'),
|
||||
stepName: t('workflow.nodes.textToVideoGenerate.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -707,12 +707,12 @@ export const textToVideoNode = {
|
|||
|
||||
export const loopBreakNode = {
|
||||
type: WorkflowType.LoopBreakNode,
|
||||
text: t('views.workflow.nodes.loopBreakNode.text'),
|
||||
label: t('views.workflow.nodes.loopBreakNode.label'),
|
||||
text: t('workflow.nodes.loopBreakNode.text'),
|
||||
label: t('workflow.nodes.loopBreakNode.label'),
|
||||
height: 100,
|
||||
properties: {
|
||||
width: 600,
|
||||
stepName: t('views.workflow.nodes.loopBreakNode.label'),
|
||||
stepName: t('workflow.nodes.loopBreakNode.label'),
|
||||
config: {
|
||||
fields: [],
|
||||
},
|
||||
|
|
@ -729,7 +729,7 @@ export const knowledgeMenuNodes = [
|
|||
list: [documentSplitNode, knowledgeWriteNode, documentExtractNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.aiCapability'),
|
||||
label: t('workflow.nodes.classify.aiCapability'),
|
||||
list: [
|
||||
aiChatNode,
|
||||
intentNode,
|
||||
|
|
@ -745,11 +745,11 @@ export const knowledgeMenuNodes = [
|
|||
},
|
||||
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.businessLogic'),
|
||||
label: t('workflow.nodes.classify.businessLogic'),
|
||||
list: [conditionNode, replyNode, loopNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.dataProcessing'),
|
||||
label: t('workflow.nodes.classify.dataProcessing'),
|
||||
list: [
|
||||
variableAssignNode,
|
||||
variableAggregationNode,
|
||||
|
|
@ -758,14 +758,14 @@ export const knowledgeMenuNodes = [
|
|||
],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.other'),
|
||||
label: t('workflow.nodes.classify.other'),
|
||||
list: [mcpNode, toolNode],
|
||||
},
|
||||
]
|
||||
|
||||
export const menuNodes = [
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.aiCapability'),
|
||||
label: t('workflow.nodes.classify.aiCapability'),
|
||||
list: [
|
||||
aiChatNode,
|
||||
intentNode,
|
||||
|
|
@ -791,11 +791,11 @@ export const menuNodes = [
|
|||
],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.businessLogic'),
|
||||
label: t('workflow.nodes.classify.businessLogic'),
|
||||
list: [conditionNode, formNode, replyNode, loopNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.dataProcessing'),
|
||||
label: t('workflow.nodes.classify.dataProcessing'),
|
||||
list: [
|
||||
variableAssignNode,
|
||||
variableAggregationNode,
|
||||
|
|
@ -804,13 +804,13 @@ export const menuNodes = [
|
|||
],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.other'),
|
||||
label: t('workflow.nodes.classify.other'),
|
||||
list: [mcpNode, toolNode],
|
||||
},
|
||||
]
|
||||
export const applicationLoopMenuNodes = [
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.aiCapability'),
|
||||
label: t('workflow.nodes.classify.aiCapability'),
|
||||
list: [
|
||||
aiChatNode,
|
||||
intentNode,
|
||||
|
|
@ -829,11 +829,11 @@ export const applicationLoopMenuNodes = [
|
|||
list: [searchKnowledgeNode, searchDocumentNode, rerankerNode, documentExtractNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.businessLogic'),
|
||||
label: t('workflow.nodes.classify.businessLogic'),
|
||||
list: [conditionNode, formNode, replyNode, loopContinueNode, loopBreakNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.dataProcessing'),
|
||||
label: t('workflow.nodes.classify.dataProcessing'),
|
||||
list: [
|
||||
variableAssignNode,
|
||||
variableSplittingNode,
|
||||
|
|
@ -842,13 +842,13 @@ export const applicationLoopMenuNodes = [
|
|||
],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.other'),
|
||||
label: t('workflow.nodes.classify.other'),
|
||||
list: [mcpNode, toolNode],
|
||||
},
|
||||
]
|
||||
export const knowledgeLoopMenuNodes = [
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.aiCapability'),
|
||||
label: t('workflow.nodes.classify.aiCapability'),
|
||||
list: [
|
||||
aiChatNode,
|
||||
intentNode,
|
||||
|
|
@ -867,11 +867,11 @@ export const knowledgeLoopMenuNodes = [
|
|||
list: [rerankerNode, documentExtractNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.businessLogic'),
|
||||
label: t('workflow.nodes.classify.businessLogic'),
|
||||
list: [conditionNode, replyNode, loopContinueNode, loopBreakNode],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.dataProcessing'),
|
||||
label: t('workflow.nodes.classify.dataProcessing'),
|
||||
list: [
|
||||
variableAssignNode,
|
||||
variableSplittingNode,
|
||||
|
|
@ -880,7 +880,7 @@ export const knowledgeLoopMenuNodes = [
|
|||
],
|
||||
},
|
||||
{
|
||||
label: t('views.workflow.nodes.classify.other'),
|
||||
label: t('workflow.nodes.classify.other'),
|
||||
list: [mcpNode, toolNode],
|
||||
},
|
||||
]
|
||||
|
|
@ -905,11 +905,11 @@ export const getMenuNodes = (workflowMode: WorkflowMode) => {
|
|||
*/
|
||||
export const toolLibNode = {
|
||||
type: WorkflowType.ToolLib,
|
||||
text: t('views.workflow.nodes.toolNode.text'),
|
||||
label: t('views.workflow.nodes.toolNode.label'),
|
||||
text: t('workflow.nodes.toolNode.text'),
|
||||
label: t('workflow.nodes.toolNode.label'),
|
||||
height: 170,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.toolNode.label'),
|
||||
stepName: t('workflow.nodes.toolNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -923,11 +923,11 @@ export const toolLibNode = {
|
|||
|
||||
export const applicationNode = {
|
||||
type: WorkflowType.Application,
|
||||
text: t('views.workflow.nodes.applicationNode.label'),
|
||||
label: t('views.workflow.nodes.applicationNode.label'),
|
||||
text: t('workflow.nodes.applicationNode.label'),
|
||||
label: t('workflow.nodes.applicationNode.label'),
|
||||
height: 260,
|
||||
properties: {
|
||||
stepName: t('views.workflow.nodes.applicationNode.label'),
|
||||
stepName: t('workflow.nodes.applicationNode.label'),
|
||||
config: {
|
||||
fields: [
|
||||
{
|
||||
|
|
@ -940,22 +940,22 @@ export const applicationNode = {
|
|||
}
|
||||
|
||||
export const compareList = [
|
||||
{ value: 'is_null', label: t('views.workflow.compare.is_null') },
|
||||
{ value: 'is_not_null', label: t('views.workflow.compare.is_not_null') },
|
||||
{ value: 'contain', label: t('views.workflow.compare.contain') },
|
||||
{ value: 'not_contain', label: t('views.workflow.compare.not_contain') },
|
||||
{ value: 'eq', label: t('views.workflow.compare.eq') },
|
||||
{ value: 'ge', label: t('views.workflow.compare.ge') },
|
||||
{ value: 'gt', label: t('views.workflow.compare.gt') },
|
||||
{ value: 'le', label: t('views.workflow.compare.le') },
|
||||
{ value: 'lt', label: t('views.workflow.compare.lt') },
|
||||
{ value: 'len_eq', label: t('views.workflow.compare.len_eq') },
|
||||
{ value: 'len_ge', label: t('views.workflow.compare.len_ge') },
|
||||
{ value: 'len_gt', label: t('views.workflow.compare.len_gt') },
|
||||
{ value: 'len_le', label: t('views.workflow.compare.len_le') },
|
||||
{ value: 'len_lt', label: t('views.workflow.compare.len_lt') },
|
||||
{ value: 'is_true', label: t('views.workflow.compare.is_true') },
|
||||
{ value: 'is_not_true', label: t('views.workflow.compare.is_not_true') },
|
||||
{ value: 'is_null', label: t('workflow.compare.is_null') },
|
||||
{ value: 'is_not_null', label: t('workflow.compare.is_not_null') },
|
||||
{ value: 'contain', label: t('workflow.compare.contain') },
|
||||
{ value: 'not_contain', label: t('workflow.compare.not_contain') },
|
||||
{ value: 'eq', label: t('workflow.compare.eq') },
|
||||
{ value: 'ge', label: t('workflow.compare.ge') },
|
||||
{ value: 'gt', label: t('workflow.compare.gt') },
|
||||
{ value: 'le', label: t('workflow.compare.le') },
|
||||
{ value: 'lt', label: t('workflow.compare.lt') },
|
||||
{ value: 'len_eq', label: t('workflow.compare.len_eq') },
|
||||
{ value: 'len_ge', label: t('workflow.compare.len_ge') },
|
||||
{ value: 'len_gt', label: t('workflow.compare.len_gt') },
|
||||
{ value: 'len_le', label: t('workflow.compare.len_le') },
|
||||
{ value: 'len_lt', label: t('workflow.compare.len_lt') },
|
||||
{ value: 'is_true', label: t('workflow.compare.is_true') },
|
||||
{ value: 'is_not_true', label: t('workflow.compare.is_not_true') },
|
||||
{ value: 'start_with', label: 'startWith' },
|
||||
{ value: 'end_with', label: 'endWith' },
|
||||
]
|
||||
|
|
|
|||
|
|
@ -61,13 +61,13 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
|
|||
(node: any) => node.type === WorkflowType.Start || node.type === WorkflowType.Base,
|
||||
)
|
||||
if (base_nodes.length > 0) {
|
||||
MsgError(base_nodes[0]?.properties?.stepName + t('views.workflow.tip.cannotCopy'))
|
||||
MsgError(base_nodes[0]?.properties?.stepName + t('workflow.tip.cannotCopy'))
|
||||
return
|
||||
}
|
||||
selected = cloneDeep(elements)
|
||||
selected.nodes.forEach((node: any) => translationNodeData(node, TRANSLATION_DISTANCE))
|
||||
selected.edges.forEach((edge: any) => translationEdgeData(edge, TRANSLATION_DISTANCE))
|
||||
MsgSuccess(t('views.workflow.tip.copyError'))
|
||||
MsgSuccess(t('workflow.tip.copyError'))
|
||||
return false
|
||||
}
|
||||
const paste_node = () => {
|
||||
|
|
@ -102,11 +102,11 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
|
|||
)
|
||||
if (nodes.length > 0) {
|
||||
MsgError(
|
||||
`${nodes[0].properties?.stepName}${t('views.workflow.delete.deleteMessage')}`,
|
||||
`${nodes[0].properties?.stepName}${t('workflow.delete.deleteMessage')}`,
|
||||
)
|
||||
return
|
||||
}
|
||||
MsgConfirm(t('common.tip'), t('views.workflow.delete.confirmTitle'), {
|
||||
MsgConfirm(t('common.tip'), t('workflow.delete.confirmTitle'), {
|
||||
confirmButtonText: t('common.confirm'),
|
||||
confirmButtonClass: 'danger',
|
||||
}).then(() => {
|
||||
|
|
|
|||
|
|
@ -69,9 +69,9 @@ export class WorkFlowInstance {
|
|||
[WorkflowType.Start, WorkflowType.LoopStartNode].includes(item.id),
|
||||
)
|
||||
if (start_node_list.length == 0) {
|
||||
throw t('views.workflow.validate.startNodeRequired')
|
||||
throw t('workflow.validate.startNodeRequired')
|
||||
} else if (start_node_list.length > 1) {
|
||||
throw t('views.workflow.validate.startNodeOnly')
|
||||
throw t('workflow.validate.startNodeOnly')
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -81,9 +81,9 @@ export class WorkFlowInstance {
|
|||
is_valid_base_node() {
|
||||
const start_node_list = this.nodes.filter((item) => item.id === WorkflowType.Base)
|
||||
if (start_node_list.length == 0) {
|
||||
throw t('views.workflow.validate.baseNodeRequired')
|
||||
throw t('workflow.validate.baseNodeRequired')
|
||||
} else if (start_node_list.length > 1) {
|
||||
throw t('views.workflow.validate.baseNodeOnly')
|
||||
throw t('workflow.validate.baseNodeOnly')
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -150,7 +150,7 @@ export class WorkFlowInstance {
|
|||
.filter((node: any) => node.id !== WorkflowType.Start && node.id !== WorkflowType.Base)
|
||||
.filter((node) => !this.workFlowNodes.includes(node))
|
||||
if (notInWorkFlowNodes.length > 0) {
|
||||
throw `${t('views.workflow.validate.notInWorkFlowNode')}:${notInWorkFlowNodes.map((node) => node.properties.stepName).join(',')}`
|
||||
throw `${t('workflow.validate.notInWorkFlowNode')}:${notInWorkFlowNodes.map((node) => node.properties.stepName).join(',')}`
|
||||
}
|
||||
this.workFlowNodes = []
|
||||
}
|
||||
|
|
@ -167,7 +167,7 @@ export class WorkFlowInstance {
|
|||
.reduce((x, y) => [...x, ...y], [])
|
||||
const end = end_nodes_dict[this.workflowModel]
|
||||
if (node_list.length == 0 && !end.includes(node.type)) {
|
||||
throw t('views.workflow.validate.noNextNode')
|
||||
throw t('workflow.validate.noNextNode')
|
||||
}
|
||||
return node_list
|
||||
}
|
||||
|
|
@ -180,7 +180,7 @@ export class WorkFlowInstance {
|
|||
node.type !== WorkflowType.LoopStartNode
|
||||
) {
|
||||
if (!this.edges.some((edge) => edge.targetNodeId === node.id)) {
|
||||
throw `${t('views.workflow.validate.notInWorkFlowNode')}:${node.properties.stepName}`
|
||||
throw `${t('workflow.validate.notInWorkFlowNode')}:${node.properties.stepName}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -192,7 +192,7 @@ export class WorkFlowInstance {
|
|||
*/
|
||||
is_valid_node(node: any) {
|
||||
if (node.properties.status && node.properties.status === 500) {
|
||||
throw `${node.properties.stepName} ${t('views.workflow.validate.nodeUnavailable')}`
|
||||
throw `${node.properties.stepName} ${t('workflow.validate.nodeUnavailable')}`
|
||||
}
|
||||
if (node.type === WorkflowType.Condition) {
|
||||
const branch_list = node.properties.node_data.branch
|
||||
|
|
@ -200,18 +200,18 @@ export class WorkFlowInstance {
|
|||
const source_anchor_id = `${node.id}_${branch.id}_right`
|
||||
const edge_list = this.edges.filter((edge) => edge.sourceAnchorId == source_anchor_id)
|
||||
if (edge_list.length == 0) {
|
||||
throw `${node.properties.stepName} ${t('views.workflow.validate.needConnect1')}${branch.type}${t('views.workflow.validate.needConnect2')}`
|
||||
throw `${node.properties.stepName} ${t('workflow.validate.needConnect1')}${branch.type}${t('workflow.validate.needConnect2')}`
|
||||
}
|
||||
}
|
||||
} else {
|
||||
const edge_list = this.edges.filter((edge) => edge.sourceNodeId == node.id)
|
||||
const end = end_nodes_dict[this.workflowModel]
|
||||
if (edge_list.length == 0 && !end.includes(node.type)) {
|
||||
throw `${node.properties.stepName} ${t('views.workflow.validate.cannotEndNode')}`
|
||||
throw `${node.properties.stepName} ${t('workflow.validate.cannotEndNode')}`
|
||||
}
|
||||
}
|
||||
if (node.properties.status && node.properties.status !== 200) {
|
||||
throw `${node.properties.stepName} ${t('views.workflow.validate.nodeUnavailable')}`
|
||||
throw `${node.properties.stepName} ${t('workflow.validate.nodeUnavailable')}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -222,7 +222,7 @@ export class KnowledgeWorkFlowInstance extends WorkFlowInstance {
|
|||
(item) => item.properties.kind === WorkflowKind.DataSource,
|
||||
)
|
||||
if (start_node_list.length == 0) {
|
||||
throw t('views.workflow.validate.startNodeRequired')
|
||||
throw t('workflow.validate.startNodeRequired')
|
||||
}
|
||||
}
|
||||
/**
|
||||
|
|
@ -231,9 +231,9 @@ export class KnowledgeWorkFlowInstance extends WorkFlowInstance {
|
|||
is_valid_base_node() {
|
||||
const base_node_list = this.nodes.filter((item) => item.id === WorkflowType.KnowledgeBase)
|
||||
if (base_node_list.length == 0) {
|
||||
throw t('views.workflow.validate.baseNodeRequired')
|
||||
throw t('workflow.validate.baseNodeRequired')
|
||||
} else if (base_node_list.length > 1) {
|
||||
throw t('views.workflow.validate.baseNodeOnly')
|
||||
throw t('workflow.validate.baseNodeOnly')
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -254,7 +254,7 @@ export class KnowledgeWorkFlowInstance extends WorkFlowInstance {
|
|||
)
|
||||
.filter((node) => !this.workFlowNodes.includes(node))
|
||||
if (notInWorkFlowNodes.length > 0) {
|
||||
throw `${t('views.workflow.validate.notInWorkFlowNode')}:${notInWorkFlowNodes.map((node) => node.properties.stepName).join(',')}`
|
||||
throw `${t('workflow.validate.notInWorkFlowNode')}:${notInWorkFlowNodes.map((node) => node.properties.stepName).join(',')}`
|
||||
}
|
||||
this.workFlowNodes = []
|
||||
}
|
||||
|
|
@ -266,7 +266,7 @@ export class KnowledgeWorkFlowInstance extends WorkFlowInstance {
|
|||
node.properties.kind !== WorkflowKind.DataSource
|
||||
) {
|
||||
if (!this.edges.some((edge) => edge.targetNodeId === node.id)) {
|
||||
throw `${t('views.workflow.validate.notInWorkFlowNode')}:${node.properties.stepName}`
|
||||
throw `${t('workflow.validate.notInWorkFlowNode')}:${node.properties.stepName}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never" style="--el-card-padding: 12px">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -82,7 +82,7 @@
|
|||
v-model="chat_data.system"
|
||||
style="height: 100px"
|
||||
@submitDialog="submitSystemDialog"
|
||||
:placeholder="`${t('views.workflow.SystemPromptPlaceholder')}{{${t('views.workflow.nodes.startNode.label')}.question}}`"
|
||||
:placeholder="`${t('workflow.SystemPromptPlaceholder')}{{${t('workflow.nodes.startNode.label')}.question}}`"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
|
|
@ -114,7 +114,7 @@
|
|||
v-model="chat_data.prompt"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitDialog"
|
||||
:placeholder="`${t('views.workflow.UserPromptPlaceholder')}{{${t('views.workflow.nodes.startNode.label')}.question}}`"
|
||||
:placeholder="`${t('workflow.UserPromptPlaceholder')}{{${t('workflow.nodes.startNode.label')}.question}}`"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('views.application.form.historyRecord.label')">
|
||||
|
|
@ -122,8 +122,8 @@
|
|||
<div class="flex-between">
|
||||
<div>{{ $t('views.application.form.historyRecord.label') }}</div>
|
||||
<el-select v-model="chat_data.dialogue_type" type="small" style="width: 100px">
|
||||
<el-option :label="$t('views.workflow.node')" value="NODE" />
|
||||
<el-option :label="$t('views.workflow.workflow')" value="WORKFLOW" />
|
||||
<el-option :label="$t('workflow.node')" value="NODE" />
|
||||
<el-option :label="$t('workflow.workflow')" value="WORKFLOW" />
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -294,11 +294,11 @@
|
|||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{ $t('views.workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -379,10 +379,10 @@ const model_change = (model_id?: string) => {
|
|||
}
|
||||
}
|
||||
|
||||
const defaultPrompt = `${t('views.workflow.nodes.aiChatNode.defaultPrompt')}:
|
||||
{{${t('views.workflow.nodes.searchKnowledgeNode.label')}.data}}
|
||||
const defaultPrompt = `${t('workflow.nodes.aiChatNode.defaultPrompt')}:
|
||||
{{${t('workflow.nodes.searchKnowledgeNode.label')}.data}}
|
||||
${t('views.problem.title')}:
|
||||
{{${t('views.workflow.nodes.startNode.label')}.question}}`
|
||||
{{${t('workflow.nodes.startNode.label')}.question}}`
|
||||
|
||||
const form = {
|
||||
model_id: '',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -11,11 +11,11 @@
|
|||
ref="applicationNodeFormRef"
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.startNode.question')"
|
||||
:label="$t('workflow.nodes.startNode.question')"
|
||||
prop="question_reference_address"
|
||||
:rules="{
|
||||
message: $t(
|
||||
'views.workflow.nodes.searchKnowledgeNode.searchQuestion.requiredMessage',
|
||||
'workflow.nodes.searchKnowledgeNode.searchQuestion.requiredMessage',
|
||||
),
|
||||
trigger: 'blur',
|
||||
required: true,
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
$t('workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
"
|
||||
v-model="form_data.question_reference_address"
|
||||
/>
|
||||
|
|
@ -53,11 +53,11 @@
|
|||
|
||||
<el-form-item
|
||||
v-if="form_data.hasOwnProperty('image_list') || 'image_list' in form_data"
|
||||
:label="$t('views.workflow.nodes.imageUnderstandNode.image.label')"
|
||||
:label="$t('workflow.nodes.imageUnderstandNode.image.label')"
|
||||
prop="image_list"
|
||||
:rules="{
|
||||
message: $t(
|
||||
'views.workflow.nodes.imageUnderstandNode.image.requiredMessage',
|
||||
'workflow.nodes.imageUnderstandNode.image.requiredMessage',
|
||||
),
|
||||
trigger: 'blur',
|
||||
required: false,
|
||||
|
|
@ -68,7 +68,7 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.imageUnderstandNode.image.requiredMessage')
|
||||
$t('workflow.nodes.imageUnderstandNode.image.requiredMessage')
|
||||
"
|
||||
v-model="form_data.image_list"
|
||||
/>
|
||||
|
|
@ -76,10 +76,10 @@
|
|||
|
||||
<el-form-item
|
||||
v-if="form_data.hasOwnProperty('audio_list') || 'audio_list' in form_data"
|
||||
:label="$t('views.workflow.nodes.speechToTextNode.audio.label')"
|
||||
:label="$t('workflow.nodes.speechToTextNode.audio.label')"
|
||||
prop="audio_list"
|
||||
:rules="{
|
||||
message: $t('views.workflow.nodes.speechToTextNode.audio.placeholder'),
|
||||
message: $t('workflow.nodes.speechToTextNode.audio.placeholder'),
|
||||
trigger: 'blur',
|
||||
required: false,
|
||||
}"
|
||||
|
|
@ -88,17 +88,17 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.nodes.speechToTextNode.audio.placeholder')"
|
||||
:placeholder="$t('workflow.nodes.speechToTextNode.audio.placeholder')"
|
||||
v-model="form_data.audio_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
v-if="form_data.hasOwnProperty('video_list') || 'video_list' in form_data"
|
||||
:label="$t('views.workflow.nodes.videoUnderstandNode.video.label')"
|
||||
:label="$t('workflow.nodes.videoUnderstandNode.video.label')"
|
||||
prop="video_list"
|
||||
:rules="{
|
||||
message: $t(
|
||||
'views.workflow.nodes.videoUnderstandNode.video.requiredMessage',
|
||||
'workflow.nodes.videoUnderstandNode.video.requiredMessage',
|
||||
),
|
||||
trigger: 'blur',
|
||||
required: false,
|
||||
|
|
@ -109,7 +109,7 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.videoUnderstandNode.video.requiredMessage')
|
||||
$t('workflow.nodes.videoUnderstandNode.video.requiredMessage')
|
||||
"
|
||||
v-model="form_data.video_list"
|
||||
/>
|
||||
|
|
@ -131,7 +131,7 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
$t('workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
"
|
||||
v-model="form_data.api_input_field_list[index].value"
|
||||
/>
|
||||
|
|
@ -155,26 +155,26 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
$t('workflow.nodes.searchKnowledgeNode.searchQuestion.placeholder')
|
||||
"
|
||||
v-model="form_data.user_input_field_list[index].value"
|
||||
/>
|
||||
</el-form-item>
|
||||
</div>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.aiChatNode.returnContent.label')"
|
||||
:label="$t('workflow.nodes.aiChatNode.returnContent.label')"
|
||||
@click.prevent
|
||||
>
|
||||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{
|
||||
$t('views.workflow.nodes.aiChatNode.returnContent.label')
|
||||
$t('workflow.nodes.aiChatNode.returnContent.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
|
|||
|
|
@ -92,7 +92,7 @@ function deleteField(index: any) {
|
|||
function refreshFieldList(data: any) {
|
||||
for (let i = 0; i < inputFieldList.value.length; i++) {
|
||||
if (inputFieldList.value[i].variable === data.variable && currentIndex.value !== i) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.variable)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.variable)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
@ -100,7 +100,7 @@ function refreshFieldList(data: any) {
|
|||
const arr = props.nodeModel.properties.user_input_field_list
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
if (arr[i].field === data.variable) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.variable)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.variable)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<template>
|
||||
<div class="flex-between mb-16">
|
||||
<h5 class="break-all ellipsis lighter" style="max-width: 80%">
|
||||
{{ $t('views.workflow.variable.chat') }}
|
||||
{{ $t('workflow.variable.chat') }}
|
||||
</h5>
|
||||
<div>
|
||||
<span class="ml-4">
|
||||
|
|
@ -80,7 +80,7 @@ function deleteField(index: any) {
|
|||
function refreshFieldList(data: any, index: any) {
|
||||
for (let i = 0; i < inputFieldList.value.length; i++) {
|
||||
if (inputFieldList.value[i].field === data.field && index !== i) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.field)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.field)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:title="$t('views.workflow.nodes.baseNode.FileUploadSetting.title')"
|
||||
:title="$t('workflow.nodes.baseNode.FileUploadSetting.title')"
|
||||
v-model="dialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
require-asterisk-position="right"
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.baseNode.FileUploadSetting.maxFiles')"
|
||||
:label="$t('workflow.nodes.baseNode.FileUploadSetting.maxFiles')"
|
||||
>
|
||||
<el-slider
|
||||
v-model="form_data.maxFiles"
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.baseNode.FileUploadSetting.fileLimit')"
|
||||
:label="$t('workflow.nodes.baseNode.FileUploadSetting.fileLimit')"
|
||||
>
|
||||
<el-slider
|
||||
v-model="form_data.fileLimit"
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="
|
||||
$t('views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.label')
|
||||
$t('workflow.nodes.baseNode.FileUploadSetting.fileUploadType.label')
|
||||
"
|
||||
>
|
||||
<el-card
|
||||
|
|
@ -62,7 +62,7 @@
|
|||
<el-text class="color-secondary"
|
||||
>{{
|
||||
$t(
|
||||
'views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.documentText',
|
||||
'workflow.nodes.baseNode.FileUploadSetting.fileUploadType.documentText',
|
||||
)
|
||||
}}
|
||||
</el-text>
|
||||
|
|
@ -92,7 +92,7 @@
|
|||
<el-text class="color-secondary"
|
||||
>{{
|
||||
$t(
|
||||
'views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.imageText',
|
||||
'workflow.nodes.baseNode.FileUploadSetting.fileUploadType.imageText',
|
||||
)
|
||||
}}
|
||||
</el-text>
|
||||
|
|
@ -123,7 +123,7 @@
|
|||
<el-text class="color-secondary"
|
||||
>{{
|
||||
$t(
|
||||
'views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.audioText',
|
||||
'workflow.nodes.baseNode.FileUploadSetting.fileUploadType.audioText',
|
||||
)
|
||||
}}
|
||||
</el-text>
|
||||
|
|
@ -158,7 +158,7 @@
|
|||
<el-text class="color-secondary"
|
||||
>{{
|
||||
$t(
|
||||
'views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.videoText',
|
||||
'workflow.nodes.baseNode.FileUploadSetting.fileUploadType.videoText',
|
||||
)
|
||||
}}
|
||||
</el-text>
|
||||
|
|
@ -188,7 +188,7 @@
|
|||
<el-text class="color-secondary"
|
||||
>{{
|
||||
$t(
|
||||
'views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.otherText',
|
||||
'workflow.nodes.baseNode.FileUploadSetting.fileUploadType.otherText',
|
||||
)
|
||||
}}
|
||||
</el-text>
|
||||
|
|
@ -232,7 +232,7 @@
|
|||
</el-card>
|
||||
<el-form-item
|
||||
:label="
|
||||
$t('views.workflow.nodes.baseNode.FileUploadSetting.fileUploadType.uploadMethod')
|
||||
$t('workflow.nodes.baseNode.FileUploadSetting.fileUploadType.uploadMethod')
|
||||
">
|
||||
<div class="flex align-center">
|
||||
<el-checkbox
|
||||
|
|
|
|||
|
|
@ -138,7 +138,7 @@ function deleteField(index: any) {
|
|||
function refreshFieldList(data: any, index: any) {
|
||||
for (let i = 0; i < inputFieldList.value.length; i++) {
|
||||
if (inputFieldList.value[i].field === data.field && index !== i) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.field)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.field)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
@ -146,7 +146,7 @@ function refreshFieldList(data: any, index: any) {
|
|||
const arr = props.nodeModel.properties.api_input_field_list
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
if (arr[i].variable === data.field) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.field)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.field)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,7 +10,7 @@
|
|||
ref="baseNodeFormRef"
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.baseNode.appName.label')"
|
||||
:label="$t('workflow.nodes.baseNode.appName.label')"
|
||||
prop="name"
|
||||
:rules="{
|
||||
message: t('views.application.form.appName.requiredMessage'),
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
@blur="form_data.name = form_data.name?.trim()"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('views.workflow.nodes.baseNode.appDescription.label')">
|
||||
<el-form-item :label="$t('workflow.nodes.baseNode.appDescription.label')">
|
||||
<el-input
|
||||
v-model="form_data.desc"
|
||||
:placeholder="$t('views.application.form.appDescription.placeholder')"
|
||||
|
|
@ -50,11 +50,11 @@
|
|||
<div class="flex-between">
|
||||
<div class="flex align-center">
|
||||
<span class="mr-4">{{
|
||||
$t('views.workflow.nodes.baseNode.fileUpload.label')
|
||||
$t('workflow.nodes.baseNode.fileUpload.label')
|
||||
}}</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.nodes.baseNode.fileUpload.tooltip')"
|
||||
:content="$t('workflow.nodes.baseNode.fileUpload.tooltip')"
|
||||
placement="right"
|
||||
>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@
|
|||
</span>
|
||||
<div class="info" v-if="item.conditions.length > 1">
|
||||
<span>{{
|
||||
$t('views.workflow.nodes.conditionNode.conditions.info')
|
||||
$t('workflow.nodes.conditionNode.conditions.info')
|
||||
}}</span>
|
||||
<el-select
|
||||
:teleported="false"
|
||||
|
|
@ -42,11 +42,11 @@
|
|||
size="small"
|
||||
style="width: 60px; margin: 0 8px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('views.workflow.condition.OR')" value="or" />
|
||||
<el-option :label="$t('workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('workflow.condition.OR')" value="or" />
|
||||
</el-select>
|
||||
<span>{{
|
||||
$t('views.workflow.nodes.conditionNode.conditions.label')
|
||||
$t('workflow.nodes.conditionNode.conditions.label')
|
||||
}}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.variable.placeholder'),
|
||||
message: $t('workflow.variable.placeholder'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -67,7 +67,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="condition.field"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -78,7 +78,7 @@
|
|||
:rules="{
|
||||
required: true,
|
||||
message: $t(
|
||||
'views.workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
'workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
),
|
||||
trigger: 'change',
|
||||
}"
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
v-model="condition.compare"
|
||||
:placeholder="
|
||||
$t(
|
||||
'views.workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
'workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
)
|
||||
"
|
||||
clearable
|
||||
|
|
@ -111,14 +111,14 @@
|
|||
:prop="'branch.' + index + '.conditions.' + cIndex + '.value'"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.conditionNode.valueMessage'),
|
||||
message: $t('workflow.nodes.conditionNode.valueMessage'),
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
<el-input
|
||||
v-model="condition.value"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.conditionNode.valueMessage')
|
||||
$t('workflow.nodes.conditionNode.valueMessage')
|
||||
"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -145,14 +145,14 @@
|
|||
v-if="index !== form_data.branch.length - 1"
|
||||
>
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
|
||||
{{ $t('views.workflow.nodes.conditionNode.addCondition') }}
|
||||
{{ $t('workflow.nodes.conditionNode.addCondition') }}
|
||||
</el-button>
|
||||
</el-card>
|
||||
</template>
|
||||
</VueDraggable>
|
||||
<el-button link type="primary" @click="addBranch">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
|
||||
{{ $t('views.workflow.nodes.conditionNode.addBranch') }}
|
||||
{{ $t('workflow.nodes.conditionNode.addBranch') }}
|
||||
</el-button>
|
||||
</el-form>
|
||||
</NodeContainer>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -10,17 +10,17 @@
|
|||
label-width="auto"
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.dataSourceLocalNode.fileFormat.label')"
|
||||
:label="$t('workflow.nodes.dataSourceLocalNode.fileFormat.label')"
|
||||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage'),
|
||||
message: $t('workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
<el-select
|
||||
v-model="form_data.file_type_list"
|
||||
:placeholder="$t('views.workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage')"
|
||||
:placeholder="$t('workflow.nodes.dataSourceLocalNode.fileFormat.requiredMessage')"
|
||||
class="w-240"
|
||||
clearable
|
||||
multiple
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.dataSourceLocalNode.maxFileNumber.label')"
|
||||
:label="$t('workflow.nodes.dataSourceLocalNode.maxFileNumber.label')"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('common.inputPlaceholder'),
|
||||
|
|
@ -59,7 +59,7 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.dataSourceLocalNode.maxFileCountNumber.label')"
|
||||
:label="$t('workflow.nodes.dataSourceLocalNode.maxFileCountNumber.label')"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('common.inputPlaceholder'),
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<span class="lighter">{{ $t('common.noData') }}</span>
|
||||
</el-card>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
ref="aiChatNodeFormRef"
|
||||
|
|
@ -28,16 +28,16 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.documentSplitNode.splitStrategy.label')"
|
||||
:label="$t('workflow.nodes.documentSplitNode.splitStrategy.label')"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.documentSplitNode.splitStrategy.requiredMessage'),
|
||||
message: $t('workflow.nodes.documentSplitNode.splitStrategy.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
<el-select
|
||||
v-model="form_data.split_strategy"
|
||||
:placeholder="$t('views.workflow.nodes.documentSplitNode.splitStrategy.placeholder')"
|
||||
:placeholder="$t('workflow.nodes.documentSplitNode.splitStrategy.placeholder')"
|
||||
>
|
||||
<el-option :label="$t('views.document.setRules.intelligent.label')" value="auto" />
|
||||
<el-option :label="$t('views.document.setRules.advanced.label')" value="custom" />
|
||||
|
|
@ -48,18 +48,18 @@
|
|||
<template #label>
|
||||
<div class="flex-between">
|
||||
<span class="flex align-center">
|
||||
<span>{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.documentSplitNode.chunk_length.label') }}</span>
|
||||
<el-tooltip effect="dark" placement="right">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip1') }}<br />
|
||||
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip2') }}<br />
|
||||
{{ $t('views.workflow.nodes.documentSplitNode.chunk_length.tooltip3') }}
|
||||
{{ $t('workflow.nodes.documentSplitNode.chunk_length.tooltip1') }}<br />
|
||||
{{ $t('workflow.nodes.documentSplitNode.chunk_length.tooltip2') }}<br />
|
||||
{{ $t('workflow.nodes.documentSplitNode.chunk_length.tooltip3') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
</span>
|
||||
<el-select v-model="form_data.chunk_size_type" size="small" style="width: 85px">
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
@ -106,7 +106,7 @@
|
|||
size="small"
|
||||
style="width: 85px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
@ -145,7 +145,7 @@
|
|||
{{ $t('views.document.setRules.limit.label') }}
|
||||
</span>
|
||||
<el-select v-model="form_data.limit_type" size="small" style="width: 85px">
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
@ -186,7 +186,7 @@
|
|||
</el-tooltip>
|
||||
</div>
|
||||
<el-select v-model="form_data.limit_type" size="small" style="width: 85px">
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
@ -208,13 +208,13 @@
|
|||
<el-form-item v-if="form_data.split_strategy !== 'qa'">
|
||||
<template #label>
|
||||
<div class="flex-between">
|
||||
<span> {{ $t('views.workflow.nodes.documentSplitNode.title1') }}</span>
|
||||
<span> {{ $t('workflow.nodes.documentSplitNode.title1') }}</span>
|
||||
<el-select
|
||||
v-model="form_data.paragraph_title_relate_problem_type"
|
||||
size="small"
|
||||
style="width: 85px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
@ -236,13 +236,13 @@
|
|||
<el-form-item>
|
||||
<template #label>
|
||||
<div class="flex-between">
|
||||
<span>{{ $t('views.workflow.nodes.documentSplitNode.title2') }}</span>
|
||||
<span>{{ $t('workflow.nodes.documentSplitNode.title2') }}</span>
|
||||
<el-select
|
||||
v-model="form_data.document_name_relate_problem_type"
|
||||
size="small"
|
||||
style="width: 85px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('workflow.variable.Referencing')" value="referencing" />
|
||||
<el-option :label="$t('common.custom')" value="custom" />
|
||||
</el-select>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never" style="--el-card-padding: 12px">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -12,11 +12,11 @@
|
|||
hide-required-asterisk
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.formNode.formContent.label')"
|
||||
:label="$t('workflow.nodes.formNode.formContent.label')"
|
||||
prop="form_content_format"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.formNode.formContent.requiredMessage'),
|
||||
message: $t('workflow.nodes.formNode.formContent.requiredMessage'),
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
|
|
@ -24,14 +24,14 @@
|
|||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.formNode.formContent.label')
|
||||
>{{ $t('workflow.nodes.formNode.formContent.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{
|
||||
$t('views.workflow.nodes.formNode.formContent.tooltip', {
|
||||
$t('workflow.nodes.formNode.formContent.tooltip', {
|
||||
form: '{ form }',
|
||||
})
|
||||
}}
|
||||
|
|
@ -41,20 +41,20 @@
|
|||
</div>
|
||||
</template>
|
||||
<MdEditorMagnify
|
||||
:title="$t('views.workflow.nodes.formNode.formContent.label')"
|
||||
:title="$t('workflow.nodes.formNode.formContent.label')"
|
||||
v-model="form_data.form_content_format"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitDialog"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.formNode.formSetting')"
|
||||
:label="$t('workflow.nodes.formNode.formSetting')"
|
||||
@click.prevent
|
||||
>
|
||||
<template #label>
|
||||
<div class="flex-between">
|
||||
<h5 class="lighter">
|
||||
{{ $t('views.workflow.nodes.formNode.formSetting') }}
|
||||
{{ $t('workflow.nodes.formNode.formSetting') }}
|
||||
</h5>
|
||||
<el-button link type="primary" @click="openAddFormCollect()">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
|
||||
|
|
@ -167,7 +167,7 @@ const editFormField = (form_field_data: any, field_index: number) => {
|
|||
}
|
||||
const addFormField = (form_field_data: any) => {
|
||||
if (form_data.value.form_field_list.some((field: any) => field.field === form_field_data.field)) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + form_field_data.field)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + form_field_data.field)
|
||||
return
|
||||
}
|
||||
form_data.value.form_field_list = cloneDeep([...form_data.value.form_field_list, form_field_data])
|
||||
|
|
@ -176,7 +176,7 @@ const addFormField = (form_field_data: any) => {
|
|||
const sync_form_field_list = () => {
|
||||
const fields = [
|
||||
{
|
||||
label: t('views.workflow.nodes.formNode.formAllContent'),
|
||||
label: t('workflow.nodes.formNode.formAllContent'),
|
||||
value: 'form_data',
|
||||
},
|
||||
...form_data.value.form_field_list.map((item: any) => ({
|
||||
|
|
@ -204,9 +204,9 @@ const deleteField = (form_field_data: any) => {
|
|||
}
|
||||
const form = ref<any>({
|
||||
is_result: true,
|
||||
form_content_format: `${t('views.workflow.nodes.formNode.form_content_format1')}
|
||||
form_content_format: `${t('workflow.nodes.formNode.form_content_format1')}
|
||||
{{form}}
|
||||
${t('views.workflow.nodes.formNode.form_content_format2')}`,
|
||||
${t('workflow.nodes.formNode.form_content_format2')}`,
|
||||
form_field_list: [],
|
||||
})
|
||||
const form_data = computed({
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :node-model="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -12,11 +12,11 @@
|
|||
hide-required-asterisk
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageGenerateNode.model.label')"
|
||||
:label="$t('workflow.nodes.imageGenerateNode.model.label')"
|
||||
prop="model_id"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.imageGenerateNode.model.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageGenerateNode.model.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<div class="flex-between w-full">
|
||||
<div>
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.imageGenerateNode.model.label')
|
||||
>{{ $t('workflow.nodes.imageGenerateNode.model.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
@wheel="wheel"
|
||||
:teleported="false"
|
||||
v-model="form_data.model_id"
|
||||
:placeholder="$t('views.workflow.nodes.imageGenerateNode.model.requiredMessage')"
|
||||
:placeholder="$t('workflow.nodes.imageGenerateNode.model.requiredMessage')"
|
||||
:options="modelOptions"
|
||||
showFooter
|
||||
@focus="getSelectModel"
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageGenerateNode.prompt.label')"
|
||||
:label="$t('workflow.nodes.imageGenerateNode.prompt.label')"
|
||||
prop="prompt"
|
||||
:rules="{
|
||||
required: true,
|
||||
|
|
@ -66,13 +66,13 @@
|
|||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.imageGenerateNode.prompt.label')
|
||||
>{{ $t('workflow.nodes.imageGenerateNode.prompt.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content
|
||||
>{{ $t('views.workflow.nodes.imageGenerateNode.prompt.tooltip') }}
|
||||
>{{ $t('workflow.nodes.imageGenerateNode.prompt.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -80,14 +80,14 @@
|
|||
</template>
|
||||
<MdEditorMagnify
|
||||
@wheel="wheel"
|
||||
:title="$t('views.workflow.nodes.imageGenerateNode.prompt.label')"
|
||||
:title="$t('workflow.nodes.imageGenerateNode.prompt.label')"
|
||||
v-model="form_data.prompt"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitDialog"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageGenerateNode.negative_prompt.label')"
|
||||
:label="$t('workflow.nodes.imageGenerateNode.negative_prompt.label')"
|
||||
prop="prompt"
|
||||
:rules="{
|
||||
required: false,
|
||||
|
|
@ -99,12 +99,12 @@
|
|||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{
|
||||
$t('views.workflow.nodes.imageGenerateNode.negative_prompt.label')
|
||||
$t('workflow.nodes.imageGenerateNode.negative_prompt.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content
|
||||
>{{ $t('views.workflow.nodes.imageGenerateNode.negative_prompt.tooltip') }}
|
||||
>{{ $t('workflow.nodes.imageGenerateNode.negative_prompt.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -112,26 +112,26 @@
|
|||
</template>
|
||||
<MdEditorMagnify
|
||||
@wheel="wheel"
|
||||
:title="$t('views.workflow.nodes.imageGenerateNode.negative_prompt.label')"
|
||||
:title="$t('workflow.nodes.imageGenerateNode.negative_prompt.label')"
|
||||
v-model="form_data.negative_prompt"
|
||||
:placeholder="$t('views.workflow.nodes.imageGenerateNode.negative_prompt.placeholder')"
|
||||
:placeholder="$t('workflow.nodes.imageGenerateNode.negative_prompt.placeholder')"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitNegativeDialog"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.aiChatNode.returnContent.label')"
|
||||
:label="$t('workflow.nodes.aiChatNode.returnContent.label')"
|
||||
@click.prevent
|
||||
v-if="[WorkflowMode.Application, WorkflowMode.ApplicationLoop].includes(workflowMode)"
|
||||
>
|
||||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{ $t('views.workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -192,7 +192,7 @@ const wheel = (e: any) => {
|
|||
}
|
||||
}
|
||||
|
||||
const defaultPrompt = `{{${t('views.workflow.nodes.startNode.label')}.question}}`
|
||||
const defaultPrompt = `{{${t('workflow.nodes.startNode.label')}.question}}`
|
||||
|
||||
const form = {
|
||||
model_id: '',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :node-model="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -12,11 +12,11 @@
|
|||
hide-required-asterisk
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageToVideoGenerate.model.label')"
|
||||
:label="$t('workflow.nodes.imageToVideoGenerate.model.label')"
|
||||
prop="model_id"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.imageToVideoGenerate.model.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageToVideoGenerate.model.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<div class="flex-between w-full">
|
||||
<div>
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.model.label')
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.model.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
:teleported="false"
|
||||
v-model="form_data.model_id"
|
||||
@focus="getSelectModel"
|
||||
:placeholder="$t('views.workflow.nodes.imageToVideoGenerate.model.requiredMessage')"
|
||||
:placeholder="$t('workflow.nodes.imageToVideoGenerate.model.requiredMessage')"
|
||||
:options="modelOptions"
|
||||
showFooter
|
||||
:model-type="'ITV'"
|
||||
|
|
@ -54,7 +54,7 @@
|
|||
</el-form-item>
|
||||
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageToVideoGenerate.prompt.label')"
|
||||
:label="$t('workflow.nodes.imageToVideoGenerate.prompt.label')"
|
||||
prop="prompt"
|
||||
:rules="{
|
||||
required: true,
|
||||
|
|
@ -66,13 +66,13 @@
|
|||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.prompt.label')
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.prompt.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.prompt.tooltip') }}
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.prompt.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -80,14 +80,14 @@
|
|||
</template>
|
||||
<MdEditorMagnify
|
||||
@wheel="wheel"
|
||||
:title="$t('views.workflow.nodes.imageToVideoGenerate.prompt.label')"
|
||||
:title="$t('workflow.nodes.imageToVideoGenerate.prompt.label')"
|
||||
v-model="form_data.prompt"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitDialog"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageToVideoGenerate.negative_prompt.label')"
|
||||
:label="$t('workflow.nodes.imageToVideoGenerate.negative_prompt.label')"
|
||||
prop="prompt"
|
||||
:rules="{
|
||||
required: false,
|
||||
|
|
@ -99,12 +99,12 @@
|
|||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{
|
||||
$t('views.workflow.nodes.imageToVideoGenerate.negative_prompt.label')
|
||||
$t('workflow.nodes.imageToVideoGenerate.negative_prompt.label')
|
||||
}}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.negative_prompt.tooltip') }}
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.negative_prompt.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -112,26 +112,26 @@
|
|||
</template>
|
||||
<MdEditorMagnify
|
||||
@wheel="wheel"
|
||||
:title="$t('views.workflow.nodes.imageToVideoGenerate.negative_prompt.label')"
|
||||
:title="$t('workflow.nodes.imageToVideoGenerate.negative_prompt.label')"
|
||||
v-model="form_data.negative_prompt"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.imageToVideoGenerate.negative_prompt.placeholder')
|
||||
$t('workflow.nodes.imageToVideoGenerate.negative_prompt.placeholder')
|
||||
"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitNegativeDialog"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageToVideoGenerate.first_frame.label')"
|
||||
:label="$t('workflow.nodes.imageToVideoGenerate.first_frame.label')"
|
||||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.imageToVideoGenerate.first_frame.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageToVideoGenerate.first_frame.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
<template #label
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.first_frame.label')
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.first_frame.label')
|
||||
}}<span class="color-danger">*</span></template
|
||||
>
|
||||
<NodeCascader
|
||||
|
|
@ -139,47 +139,47 @@
|
|||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.imageToVideoGenerate.first_frame.requiredMessage')
|
||||
$t('workflow.nodes.imageToVideoGenerate.first_frame.requiredMessage')
|
||||
"
|
||||
v-model="form_data.first_frame_url"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageToVideoGenerate.last_frame.label')"
|
||||
:label="$t('workflow.nodes.imageToVideoGenerate.last_frame.label')"
|
||||
:rules="{
|
||||
type: 'array',
|
||||
required: false,
|
||||
message: $t('views.workflow.nodes.imageToVideoGenerate.last_frame.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageToVideoGenerate.last_frame.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
<template #label
|
||||
>{{ $t('views.workflow.nodes.imageToVideoGenerate.last_frame.label') }}
|
||||
>{{ $t('workflow.nodes.imageToVideoGenerate.last_frame.label') }}
|
||||
</template>
|
||||
<NodeCascader
|
||||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.imageToVideoGenerate.last_frame.requiredMessage')
|
||||
$t('workflow.nodes.imageToVideoGenerate.last_frame.requiredMessage')
|
||||
"
|
||||
clearable
|
||||
v-model="form_data.last_frame_url"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.aiChatNode.returnContent.label')"
|
||||
:label="$t('workflow.nodes.aiChatNode.returnContent.label')"
|
||||
@click.prevent
|
||||
v-if="[WorkflowMode.Application, WorkflowMode.ApplicationLoop].includes(workflowMode)"
|
||||
>
|
||||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{ $t('views.workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -241,7 +241,7 @@ const wheel = (e: any) => {
|
|||
}
|
||||
}
|
||||
|
||||
const defaultPrompt = `{{${t('views.workflow.nodes.startNode.label')}.question}}`
|
||||
const defaultPrompt = `{{${t('workflow.nodes.startNode.label')}.question}}`
|
||||
|
||||
const form = {
|
||||
model_id: '',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :node-model="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -12,11 +12,11 @@
|
|||
hide-required-asterisk
|
||||
>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageUnderstandNode.model.label')"
|
||||
:label="$t('workflow.nodes.imageUnderstandNode.model.label')"
|
||||
prop="model_id"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.imageUnderstandNode.model.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageUnderstandNode.model.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -24,7 +24,7 @@
|
|||
<div class="flex-between w-full">
|
||||
<div>
|
||||
<span
|
||||
>{{ t('views.workflow.nodes.imageUnderstandNode.model.label')
|
||||
>{{ t('workflow.nodes.imageUnderstandNode.model.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
@ -44,7 +44,7 @@
|
|||
@wheel="wheel"
|
||||
:teleported="false"
|
||||
v-model="form_data.model_id"
|
||||
:placeholder="$t('views.workflow.nodes.imageUnderstandNode.model.requiredMessage')"
|
||||
:placeholder="$t('workflow.nodes.imageUnderstandNode.model.requiredMessage')"
|
||||
:options="modelOptions"
|
||||
showFooter
|
||||
:model-type="'IMAGE'"
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
v-model="form_data.system"
|
||||
style="height: 100px"
|
||||
@submitDialog="submitSystemDialog"
|
||||
:placeholder="`${t('views.workflow.SystemPromptPlaceholder')}{{${t('views.workflow.nodes.startNode.label')}.question}}`"
|
||||
:placeholder="`${t('workflow.SystemPromptPlaceholder')}{{${t('workflow.nodes.startNode.label')}.question}}`"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
|
|
@ -111,7 +111,7 @@
|
|||
v-model="form_data.prompt"
|
||||
style="height: 150px"
|
||||
@submitDialog="submitDialog"
|
||||
:placeholder="`${t('views.workflow.UserPromptPlaceholder')}{{${t('views.workflow.nodes.startNode.label')}.question}}`"
|
||||
:placeholder="`${t('workflow.UserPromptPlaceholder')}{{${t('workflow.nodes.startNode.label')}.question}}`"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
|
|
@ -119,8 +119,8 @@
|
|||
<div class="flex-between">
|
||||
<div>{{ $t('views.application.form.historyRecord.label') }}</div>
|
||||
<el-select v-model="form_data.dialogue_type" type="small" style="width: 100px">
|
||||
<el-option :label="$t('views.workflow.node')" value="NODE" />
|
||||
<el-option :label="$t('views.workflow.workflow')" value="WORKFLOW" />
|
||||
<el-option :label="$t('workflow.node')" value="NODE" />
|
||||
<el-option :label="$t('workflow.workflow')" value="WORKFLOW" />
|
||||
</el-select>
|
||||
</div>
|
||||
</template>
|
||||
|
|
@ -135,39 +135,39 @@
|
|||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.imageUnderstandNode.image.label')"
|
||||
:label="$t('workflow.nodes.imageUnderstandNode.image.label')"
|
||||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.imageUnderstandNode.image.requiredMessage'),
|
||||
message: $t('workflow.nodes.imageUnderstandNode.image.requiredMessage'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
<template #label
|
||||
>{{ $t('views.workflow.nodes.imageUnderstandNode.image.label')
|
||||
>{{ $t('workflow.nodes.imageUnderstandNode.image.label')
|
||||
}}<span class="color-danger">*</span></template
|
||||
>
|
||||
<NodeCascader
|
||||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.nodes.imageUnderstandNode.image.requiredMessage')"
|
||||
:placeholder="$t('workflow.nodes.imageUnderstandNode.image.requiredMessage')"
|
||||
v-model="form_data.image_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item
|
||||
:label="$t('views.workflow.nodes.aiChatNode.returnContent.label')"
|
||||
:label="$t('workflow.nodes.aiChatNode.returnContent.label')"
|
||||
@click.prevent
|
||||
v-if="[WorkflowMode.Application, WorkflowMode.ApplicationLoop].includes(workflowMode)"
|
||||
>
|
||||
<template #label>
|
||||
<div class="flex align-center">
|
||||
<div class="mr-4">
|
||||
<span>{{ $t('views.workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.aiChatNode.returnContent.label') }}</span>
|
||||
</div>
|
||||
<el-tooltip effect="dark" placement="right" popper-class="max-w-200">
|
||||
<template #content>
|
||||
{{ $t('views.workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
{{ $t('workflow.nodes.aiChatNode.returnContent.tooltip') }}
|
||||
</template>
|
||||
<AppIcon iconName="app-warning" class="app-warning-icon"></AppIcon>
|
||||
</el-tooltip>
|
||||
|
|
@ -235,7 +235,7 @@ const wheel = (e: any) => {
|
|||
}
|
||||
}
|
||||
|
||||
const defaultPrompt = `{{${t('views.workflow.nodes.startNode.label')}.question}}`
|
||||
const defaultPrompt = `{{${t('workflow.nodes.startNode.label')}.question}}`
|
||||
|
||||
const form = {
|
||||
model_id: '',
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never" style="--el-card-padding: 12px">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -53,9 +53,9 @@
|
|||
</el-form-item>
|
||||
<el-form-item
|
||||
prop="content_list"
|
||||
:label="$t('views.workflow.nodes.intentNode.input.label')"
|
||||
:label="$t('workflow.nodes.intentNode.input.label')"
|
||||
:rules="{
|
||||
message: $t('views.workflow.nodes.textToSpeechNode.content.label'),
|
||||
message: $t('workflow.nodes.textToSpeechNode.content.label'),
|
||||
trigger: 'change',
|
||||
required: true,
|
||||
}"
|
||||
|
|
@ -64,7 +64,7 @@
|
|||
<div class="flex-between">
|
||||
<div>
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.intentNode.input.label')
|
||||
>{{ $t('workflow.nodes.intentNode.input.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
@ -74,7 +74,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.nodes.textToSpeechNode.content.label')"
|
||||
:placeholder="$t('workflow.nodes.textToSpeechNode.content.label')"
|
||||
v-model="form_data.content_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -94,7 +94,7 @@
|
|||
<div class="flex-between">
|
||||
<div>
|
||||
<span
|
||||
>{{ $t('views.workflow.nodes.intentNode.classify.label')
|
||||
>{{ $t('workflow.nodes.intentNode.classify.label')
|
||||
}}<span class="color-danger">*</span></span
|
||||
>
|
||||
</div>
|
||||
|
|
@ -287,7 +287,7 @@ const form = {
|
|||
},
|
||||
{
|
||||
id: randomId(),
|
||||
content: t('views.workflow.nodes.intentNode.other'),
|
||||
content: t('workflow.nodes.intentNode.other'),
|
||||
isOther: true,
|
||||
},
|
||||
],
|
||||
|
|
@ -333,7 +333,7 @@ const validate = () => {
|
|||
form_data.value.branch.length !=
|
||||
new Set(form_data.value.branch.map((item: any) => item.content)).size
|
||||
) {
|
||||
throw t('views.workflow.nodes.intentNode.error2')
|
||||
throw t('workflow.nodes.intentNode.error2')
|
||||
}
|
||||
})
|
||||
.catch((err: any) => {
|
||||
|
|
|
|||
|
|
@ -144,7 +144,7 @@ function deleteField(index: any) {
|
|||
function refreshFieldList(data: any, index: any) {
|
||||
for (let i = 0; i < inputFieldList.value.length; i++) {
|
||||
if (inputFieldList.value[i].field === data.field && index !== i) {
|
||||
MsgError(t('views.workflow.tip.paramErrorMessage') + data.field)
|
||||
MsgError(t('workflow.tip.paramErrorMessage') + data.field)
|
||||
return
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<UserInputFieldTable ref="UserInputFieldTableFef" :node-model="nodeModel" />
|
||||
|
||||
<h5 class="title-decoration-1 mb-8 mt-8">
|
||||
|
|
@ -16,7 +16,7 @@
|
|||
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.setting.copyParam')"
|
||||
:content="$t('workflow.setting.copyParam')"
|
||||
placement="top"
|
||||
v-if="showicon === index"
|
||||
>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<NodeContainer :nodeModel="nodeModel">
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('views.workflow.nodeSetting') }}</h5>
|
||||
<h5 class="title-decoration-1 mb-8">{{ $t('workflow.nodeSetting') }}</h5>
|
||||
<el-card shadow="never" class="card-never">
|
||||
<el-form
|
||||
@submit.prevent
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
prop="document_list"
|
||||
:label="$t('common.inputContent')"
|
||||
:rules="{
|
||||
message: $t('views.workflow.nodes.textToSpeechNode.content.label'),
|
||||
message: $t('workflow.nodes.textToSpeechNode.content.label'),
|
||||
trigger: 'change',
|
||||
required: true,
|
||||
}"
|
||||
|
|
@ -34,7 +34,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.nodes.textToSpeechNode.content.label')"
|
||||
:placeholder="$t('workflow.nodes.textToSpeechNode.content.label')"
|
||||
v-model="form_data.document_list"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@
|
|||
class="mb-16"
|
||||
:title="
|
||||
props.nodeModel.type === 'application-node'
|
||||
? $t('views.workflow.tip.applicationNodeError')
|
||||
: $t('views.workflow.tip.functionNodeError')
|
||||
? $t('workflow.tip.applicationNodeError')
|
||||
: $t('workflow.tip.functionNodeError')
|
||||
"
|
||||
type="error"
|
||||
show-icon
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
|
||||
<el-tooltip
|
||||
effect="dark"
|
||||
:content="$t('views.workflow.setting.copyParam')"
|
||||
:content="$t('workflow.setting.copyParam')"
|
||||
placement="top"
|
||||
v-if="showicon === index"
|
||||
>
|
||||
|
|
@ -75,7 +75,7 @@
|
|||
</div>
|
||||
|
||||
<el-dialog
|
||||
:title="$t('views.workflow.nodeName')"
|
||||
:title="$t('workflow.nodeName')"
|
||||
v-model="nodeNameDialogVisible"
|
||||
:close-on-click-modal="false"
|
||||
:close-on-press-escape="false"
|
||||
|
|
@ -163,7 +163,7 @@ const editName = async (formEl: FormInstance | undefined) => {
|
|||
nodeNameDialogVisible.value = false
|
||||
formEl.resetFields()
|
||||
} else {
|
||||
ElMessage.error(t('views.workflow.tip.repeatedNodeError'))
|
||||
ElMessage.error(t('workflow.tip.repeatedNodeError'))
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ class LoopBodyNodeView extends AppNode {
|
|||
super(props, LoopNode)
|
||||
}
|
||||
getNodeName() {
|
||||
return t('views.workflow.nodes.loopBodyNode.label')
|
||||
return t('workflow.nodes.loopBodyNode.label')
|
||||
}
|
||||
get_up_node_field_list(contain_self: boolean, use_cache: boolean) {
|
||||
const loop_node_id = this.props.model.properties.loop_node_id
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ const validate = () => {
|
|||
if (loop_node.properties.node_data.loop_type == 'LOOP' && !workflow.exist_break_node()) {
|
||||
return Promise.reject({
|
||||
node: loop_node,
|
||||
errMessage: t('views.workflow.validate.loopNodeBreakNodeRequired'),
|
||||
errMessage: t('workflow.validate.loopNodeBreakNodeRequired'),
|
||||
})
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -11,17 +11,17 @@
|
|||
>
|
||||
<div class="handle flex-between lighter mb-8">
|
||||
<div class="info" v-if="form_data.condition_list.length > 1">
|
||||
<span>{{ $t('views.workflow.nodes.conditionNode.conditions.info') }}</span>
|
||||
<span>{{ $t('workflow.nodes.conditionNode.conditions.info') }}</span>
|
||||
<el-select
|
||||
:teleported="false"
|
||||
v-model="form_data.condition"
|
||||
size="small"
|
||||
style="width: 60px; margin: 0 8px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('views.workflow.condition.OR')" value="or" />
|
||||
<el-option :label="$t('workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('workflow.condition.OR')" value="or" />
|
||||
</el-select>
|
||||
<span>{{ $t('views.workflow.nodes.conditionNode.conditions.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.conditionNode.conditions.label') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<template v-for="(condition, index) in form_data.condition_list" :key="index">
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.variable.placeholder'),
|
||||
message: $t('workflow.variable.placeholder'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="condition.field"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
:rules="{
|
||||
required: true,
|
||||
message: $t(
|
||||
'views.workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
'workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
),
|
||||
trigger: 'change',
|
||||
}"
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
:teleported="false"
|
||||
v-model="condition.compare"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.conditionNode.conditions.requiredMessage')
|
||||
$t('workflow.nodes.conditionNode.conditions.requiredMessage')
|
||||
"
|
||||
clearable
|
||||
>
|
||||
|
|
@ -79,13 +79,13 @@
|
|||
:prop="'condition_list.' + index + '.value'"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.conditionNode.valueMessage'),
|
||||
message: $t('workflow.nodes.conditionNode.valueMessage'),
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
<el-input
|
||||
v-model="condition.value"
|
||||
:placeholder="$t('views.workflow.nodes.conditionNode.valueMessage')"
|
||||
:placeholder="$t('workflow.nodes.conditionNode.valueMessage')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
|
||||
<el-button link type="primary" @click="addCondition()">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
|
||||
{{ $t('views.workflow.nodes.conditionNode.addCondition') }}
|
||||
{{ $t('workflow.nodes.conditionNode.addCondition') }}
|
||||
</el-button>
|
||||
</el-card>
|
||||
</NodeContainer>
|
||||
|
|
|
|||
|
|
@ -11,17 +11,17 @@
|
|||
>
|
||||
<div class="handle flex-between lighter mb-8">
|
||||
<div class="info" v-if="form_data.condition_list.length > 1">
|
||||
<span>{{ $t('views.workflow.nodes.conditionNode.conditions.info') }}</span>
|
||||
<span>{{ $t('workflow.nodes.conditionNode.conditions.info') }}</span>
|
||||
<el-select
|
||||
:teleported="false"
|
||||
v-model="form_data.condition"
|
||||
size="small"
|
||||
style="width: 60px; margin: 0 8px"
|
||||
>
|
||||
<el-option :label="$t('views.workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('views.workflow.condition.OR')" value="or" />
|
||||
<el-option :label="$t('workflow.condition.AND')" value="and" />
|
||||
<el-option :label="$t('workflow.condition.OR')" value="or" />
|
||||
</el-select>
|
||||
<span>{{ $t('views.workflow.nodes.conditionNode.conditions.label') }}</span>
|
||||
<span>{{ $t('workflow.nodes.conditionNode.conditions.label') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<template v-for="(condition, index) in form_data.condition_list" :key="index">
|
||||
|
|
@ -32,7 +32,7 @@
|
|||
:rules="{
|
||||
type: 'array',
|
||||
required: true,
|
||||
message: $t('views.workflow.variable.placeholder'),
|
||||
message: $t('workflow.variable.placeholder'),
|
||||
trigger: 'change',
|
||||
}"
|
||||
>
|
||||
|
|
@ -40,7 +40,7 @@
|
|||
ref="nodeCascaderRef"
|
||||
:nodeModel="nodeModel"
|
||||
class="w-full"
|
||||
:placeholder="$t('views.workflow.variable.placeholder')"
|
||||
:placeholder="$t('workflow.variable.placeholder')"
|
||||
v-model="condition.field"
|
||||
/>
|
||||
</el-form-item>
|
||||
|
|
@ -51,7 +51,7 @@
|
|||
:rules="{
|
||||
required: true,
|
||||
message: $t(
|
||||
'views.workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
'workflow.nodes.conditionNode.conditions.requiredMessage',
|
||||
),
|
||||
trigger: 'change',
|
||||
}"
|
||||
|
|
@ -61,7 +61,7 @@
|
|||
:teleported="false"
|
||||
v-model="condition.compare"
|
||||
:placeholder="
|
||||
$t('views.workflow.nodes.conditionNode.conditions.requiredMessage')
|
||||
$t('workflow.nodes.conditionNode.conditions.requiredMessage')
|
||||
"
|
||||
clearable
|
||||
>
|
||||
|
|
@ -79,13 +79,13 @@
|
|||
:prop="'condition_list.' + index + '.value'"
|
||||
:rules="{
|
||||
required: true,
|
||||
message: $t('views.workflow.nodes.conditionNode.valueMessage'),
|
||||
message: $t('workflow.nodes.conditionNode.valueMessage'),
|
||||
trigger: 'blur',
|
||||
}"
|
||||
>
|
||||
<el-input
|
||||
v-model="condition.value"
|
||||
:placeholder="$t('views.workflow.nodes.conditionNode.valueMessage')"
|
||||
:placeholder="$t('workflow.nodes.conditionNode.valueMessage')"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
|
|
@ -100,7 +100,7 @@
|
|||
|
||||
<el-button link type="primary" @click="addCondition()">
|
||||
<AppIcon iconName="app-add-outlined" class="mr-4"></AppIcon>
|
||||
{{ $t('views.workflow.nodes.conditionNode.addCondition') }}
|
||||
{{ $t('workflow.nodes.conditionNode.addCondition') }}
|
||||
</el-button>
|
||||
</el-card>
|
||||
</NodeContainer>
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue