Skip to content

Commit dc7d52f

Browse files
feat: start node
1 parent 54ba666 commit dc7d52f

11 files changed

Lines changed: 57 additions & 46 deletions

File tree

ui/src/components/mk-dynamics-form/constructor/items/MultiRowConstructor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ onMounted(() => {
123123
</el-button>
124124
</div>
125125

126-
<div class="w-full rounded-md bg-N100 p-3">
126+
<div class="w-full mk-gray-card">
127127
<MkFormList v-model="formValue.option_list" :default-item="{ label: '', value: '' }" :show-add-button="false" @remove="handleOptionRemove">
128128
<template #default="{ index, item: option }">
129129
<el-form-item :label="index === 0 ? '标签' : ''" class="flex-1">

ui/src/components/mk-dynamics-form/constructor/items/MultiSelectConstructor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ onMounted(() => {
122122
</el-button>
123123
</div>
124124

125-
<div class="w-full rounded-md bg-N100 p-3">
125+
<div class="w-full mk-gray-card">
126126
<MkFormList v-model="formValue.option_list" :default-item="{ label: '', value: '' }" :show-add-button="false" @remove="handleOptionRemove">
127127
<template #default="{ index, item: option }">
128128
<el-form-item :label="index === 0 ? '标签' : ''" class="flex-1">

ui/src/components/mk-dynamics-form/constructor/items/RadioCardConstructor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ onMounted(() => {
124124
</el-button>
125125
</div>
126126

127-
<div class="w-full rounded-md bg-N100 p-3">
127+
<div class="w-full mk-gray-card">
128128
<MkFormList v-model="formValue.option_list" :default-item="{ label: '', value: '' }" :show-add-button="false" @remove="handleOptionRemove">
129129
<template #default="{ index, item: option }">
130130
<el-form-item :label="index === 0 ? '标签' : ''" class="flex-1">

ui/src/components/mk-dynamics-form/constructor/items/RadioRowConstructor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ onMounted(() => {
124124
</el-button>
125125
</div>
126126

127-
<div class="w-full rounded-md bg-N100 p-3">
127+
<div class="w-full mk-gray-card">
128128
<MkFormList v-model="formValue.option_list" :default-item="{ label: '', value: '' }" :show-add-button="false" @remove="handleOptionRemove">
129129
<template #default="{ index, item: option }">
130130
<el-form-item :label="index === 0 ? '标签' : ''" class="flex-1">

ui/src/components/mk-dynamics-form/constructor/items/SingleSelectConstructor.vue

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ onMounted(() => {
122122
</el-button>
123123
</div>
124124

125-
<div class="w-full rounded-md bg-N100 p-3">
125+
<div class="w-full mk-gray-card">
126126
<MkFormList v-model="formValue.option_list" :default-item="{ label: '', value: '' }" :show-add-button="false" @remove="handleOptionRemove">
127127
<template #default="{ index, item: option }">
128128
<el-form-item :label="index === 0 ? '标签' : ''" class="flex-1">

ui/src/views/system/settings/authentication/components/LoginSetting.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ onMounted(() => {
159159
</el-form-item>
160160

161161
<el-form-item label="账号登录验证码设置" required>
162-
<div class="w-full rounded-md bg-N100 p-4">
162+
<div class="w-full mk-gray-card p-4!">
163163
<div class="flex items-center gap-2">
164164
<span>登录失败</span>
165165
<el-input-number v-model="form.max_attempts" :max="10" :min="-1" :step="1" :value-on-clear="-1" @change="form.max_attempts = normalizeNonZeroNumber($event)" />
@@ -177,7 +177,7 @@ onMounted(() => {
177177
</div>
178178
</el-form-item>
179179
<p class="mb-2">第三方用户默认角色分配</p>
180-
<div class="w-full rounded-md bg-N100 p-4">
180+
<div class="w-full mk-gray-card p-4!">
181181
<el-form-item label="角色" prop="role_id">
182182
<el-select v-model="form.role_id" :loading="roleSettingOptionsLoading" filterable clearable placeholder="请选择角色" @change="handleRoleChange">
183183
<el-option v-for="role in roleOptions" :key="role.id" :label="role.name" :value="role.id" />

ui/src/workflow-canvas/config/node-data.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,12 @@ export const startNode = {
1313
{ label: '当前时间', value: 'time' },
1414
{ label: '历史聊天记录', value: 'history_context' },
1515
{ label: '对话 ID', value: 'aiChat_id' },
16+
{ label: '对话用户 ID', value: 'chat_user_id' },
17+
{ label: '对话用户类型', value: 'chat_user_type' },
18+
{ label: '对话用户组', value: 'chat_user_group' },
19+
{ label: '对话用户', value: 'chat_user' },
1620
],
1721
},
18-
fields: [{ label: '用户问题', value: 'question' }],
19-
globalFields: [{ label: '当前时间', value: 'time' }],
2022
showNode: true,
2123
},
2224
}
@@ -41,8 +43,6 @@ export const baseNode = {
4143
config: {},
4244
showNode: true,
4345
user_input_config: { title: '用户输入' },
44-
api_input_field_list: [],
45-
chat_input_field_list: [],
4646
user_input_field_list: [],
4747
},
4848
}

ui/src/workflow-canvas/core/node-container/index.vue

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ const handleNodeMousedown = (event?: MouseEvent) => {
8585
set(model, 'isHovered', !model.isSelected)
8686
model.graphModel.toFront(model.id)
8787
}
88-
const showicon = ref<number | string | null>(null)
8988
const resizeStepContainer = (nodeHeight: number) => {
9089
if (nodeHeight > 0 && !model.virtual) {
9190
model.setHeight(nodeHeight)
@@ -295,6 +294,8 @@ onBeforeUnmount(() => {
295294
<el-collapse-transition>
296295
<div v-show="showNode" class="mt-4" @pointermove.stop @pointerenter.stop @mousedown.stop @keydown.stop @click.stop>
297296
<slot />
297+
298+
<!-- 输出参数 -->
298299
<template v-if="nodeFields.length > 0">
299300
<div class="flex-between">
300301
<h6 class="mk-title-decoration my-2">{{ output_title }}</h6>
@@ -303,25 +304,25 @@ onBeforeUnmount(() => {
303304
<el-switch v-model="enable_exception" size="small" />
304305
</div>
305306
</div>
306-
<div class="mk-gray-card">
307+
<div class="mk-gray-card space-y-4">
307308
<template v-for="(item, index) in nodeFields" :key="index">
308-
<div class="flex-between my-2" @mouseenter="showicon = index" @mouseleave="showicon = null">
309+
<div class="group flex-between">
309310
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
310-
<el-tooltip effect="dark" content="复制参数" placement="top" v-if="showicon === index">
311-
<el-button class="p-0!" link @click="copyText(item.globeLabel)">
311+
<el-tooltip effect="dark" content="复制参数" placement="top">
312+
<el-button class="group-hover-visible" link @click="copyText(item.globeLabel)">
312313
<MkIcon name="icon_copy_outlined" />
313314
</el-button>
314315
</el-tooltip>
315316
</div>
316317
</template>
317318
</div>
318319

319-
<div v-if="enable_exception" class="mk-gray-card">
320+
<div v-if="enable_exception" class="mk-gray-card space-y-4">
320321
<template v-for="(item, index) in abnormalNodeFields" :key="index">
321-
<div class="flex-between my-2" @mouseenter="showicon = 'abnormal' + index" @mouseleave="showicon = null">
322+
<div class="group flex-between">
322323
<span class="break-all">{{ item.label }} {{ '{' + item.value + '}' }}</span>
323-
<el-tooltip effect="dark" content="复制参数" placement="top" v-if="showicon === 'abnormal' + index">
324-
<el-button class="p-0!" link @click="copyText(item.globeLabel)">
324+
<el-tooltip effect="dark" content="复制参数" placement="top">
325+
<el-button class="group-hover-visible" link @click="copyText(item.globeLabel)">
325326
<MkIcon name="icon_copy_outlined" />
326327
</el-button>
327328
</el-tooltip>

ui/src/workflow-canvas/nodes/ai-chat-node/index.vue

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,15 +43,16 @@ const formData = computed<AiChatNodeForm>({
4343
})
4444
4545
function validate() {
46-
return Promise.all([formData.value.model_id_type === 'reference' ? nodeCascaderRef.value?.validate() : Promise.resolve(), formRef.value?.validate()]).catch((error) =>
47-
Promise.reject({ node: model, errMessage: error }),
48-
)
46+
return Promise.all([
47+
formData.value.model_id_type === 'reference' ? nodeCascaderRef.value?.validate() : Promise.resolve(),
48+
formRef.value?.validate(),
49+
]).catch((error) => Promise.reject({ node: model, errMessage: error }))
4950
}
5051
const store = useWorkflowStore(apiType)
5152
const modelList = ref<Array<ModelItem>>([])
5253
const providerOptions = ref<Array<any>>([])
5354
onMounted(() => {
54-
set(model, 'validate', validate)
55+
model.validate = validate
5556
store.getModelList({ model_type: 'LLM' }).then((data) => {
5657
modelList.value = data
5758
})
@@ -86,7 +87,13 @@ onMounted(() => {
8687
class="w-full"
8788
placeholder="请选择变量"
8889
/>
89-
<ModelSelect v-else placeholder="请输入 AI 模型 ID" :options="modelList" :provider-options="providerOptions" v-model="formData.model_id"></ModelSelect>
90+
<ModelSelect
91+
v-else
92+
placeholder="请输入 AI 模型 ID"
93+
:options="modelList"
94+
:provider-options="providerOptions"
95+
v-model="formData.model_id"
96+
></ModelSelect>
9097
</el-form-item>
9198

9299
<el-form-item label="系统提示词">

ui/src/workflow-canvas/nodes/base-node/index.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ onMounted(() => {
195195
</el-form-item>
196196

197197
<el-form-item label="开场白">
198+
<!-- // TODO Markdown 编辑器 -->
198199
<PrologueEditor v-model="formData.prologue" />
199200
</el-form-item>
200201

0 commit comments

Comments
 (0)