|
59 | 59 | <h5 class="title-decoration-1 mb-8"> |
60 | 60 | {{ $t('views.applicationWorkflow.nodes.mcpNode.toolParam') }} |
61 | 61 | </h5> |
62 | | - <div |
63 | | - class="border-r-4 p-8-12 mb-8 layout-bg lighter" |
64 | | - v-if="form_data.tool_params[form_data.params_nested]" |
65 | | - > |
66 | | - <el-form |
67 | | - ref="dynamicsFormRef" |
68 | | - label-position="top" |
69 | | - v-loading="loading" |
70 | | - require-asterisk-position="right" |
71 | | - :hide-required-asterisk="true" |
72 | | - v-if="form_data.mcp_tool" |
73 | | - @submit.prevent |
74 | | - > |
75 | | - <el-form-item |
76 | | - v-for="item in form_data.tool_form_field" :key="item.field" |
77 | | - :required="item.required" |
| 62 | + <template v-if="form_data.tool_params[form_data.params_nested]"> |
| 63 | + <div class="p-8-12" v-if="!form_data.mcp_tool"> |
| 64 | + <el-text type="info">{{ $t('common.noData') }}</el-text> |
| 65 | + </div> |
| 66 | + <div v-else class="border-r-4 p-8-12 mb-8 layout-bg lighter"> |
| 67 | + <el-form |
| 68 | + ref="dynamicsFormRef" |
| 69 | + label-position="top" |
| 70 | + v-loading="loading" |
| 71 | + require-asterisk-position="right" |
| 72 | + :hide-required-asterisk="true" |
| 73 | + v-if="form_data.mcp_tool" |
| 74 | + @submit.prevent |
78 | 75 | > |
79 | | - <template #label> |
80 | | - <div class="flex-between"> |
81 | | - <div> |
82 | | - <TooltipLabel :label="item.label.label" :tooltip="item.label.attrs.tooltip" /> |
83 | | - <span v-if="item.required" class="danger">*</span> |
| 76 | + <el-form-item |
| 77 | + v-for="item in form_data.tool_form_field" |
| 78 | + :key="item.field" |
| 79 | + :required="item.required" |
| 80 | + > |
| 81 | + <template #label> |
| 82 | + <div class="flex-between"> |
| 83 | + <div> |
| 84 | + <TooltipLabel :label="item.label.label" :tooltip="item.label.attrs.tooltip" /> |
| 85 | + <span v-if="item.required" class="danger">*</span> |
| 86 | + </div> |
| 87 | + <el-select |
| 88 | + :teleported="false" |
| 89 | + v-model="item.source" |
| 90 | + size="small" |
| 91 | + style="width: 85px" |
| 92 | + @change="form_data.tool_params[form_data.params_nested] = {}" |
| 93 | + > |
| 94 | + <el-option |
| 95 | + :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')" |
| 96 | + value="referencing" |
| 97 | + /> |
| 98 | + <el-option |
| 99 | + :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')" |
| 100 | + value="custom" |
| 101 | + /> |
| 102 | + </el-select> |
84 | 103 | </div> |
85 | | - <el-select :teleported="false" v-model="item.source" size="small" |
86 | | - style="width: 85px" |
87 | | - @change="form_data.tool_params[form_data.params_nested] = {}"> |
88 | | - <el-option |
89 | | - :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')" |
90 | | - value="referencing" |
91 | | - /> |
92 | | - <el-option |
93 | | - :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')" |
94 | | - value="custom" |
95 | | - /> |
96 | | - </el-select> |
97 | | - </div> |
98 | | - </template> |
99 | | - <el-input |
100 | | - v-if="item.source === 'custom' && item.input_type === 'TextInput'" |
101 | | - v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
102 | | - /> |
103 | | - <el-input-number |
104 | | - v-else-if="item.source === 'custom' && item.input_type === 'NumberInput'" |
105 | | - v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
106 | | - /> |
107 | | - <el-switch |
108 | | - v-else-if="item.source === 'custom' && item.input_type === 'SwitchInput'" |
109 | | - v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
110 | | - /> |
111 | | - <el-input |
112 | | - v-else-if="item.source === 'custom' && item.input_type === 'JsonInput'" |
113 | | - v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
114 | | - type="textarea" |
115 | | - /> |
116 | | - <NodeCascader |
117 | | - v-if="item.source === 'referencing'" |
118 | | - ref="nodeCascaderRef2" |
119 | | - :nodeModel="nodeModel" |
120 | | - class="w-full" |
121 | | - :placeholder="$t('views.applicationWorkflow.variable.placeholder')" |
122 | | - v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
123 | | - /> |
124 | | - </el-form-item> |
125 | | - </el-form> |
126 | | - </div> |
127 | | - <div |
128 | | - v-else |
129 | | - class="border-r-4 p-8-12 mb-8 layout-bg lighter" |
130 | | - > |
131 | | - <el-form |
132 | | - ref="dynamicsFormRef" |
133 | | - label-position="top" |
134 | | - v-loading="loading" |
135 | | - require-asterisk-position="right" |
136 | | - :hide-required-asterisk="true" |
137 | | - v-if="form_data.mcp_tool" |
138 | | - @submit.prevent |
139 | | - > |
140 | | - <el-form-item |
141 | | - v-for="item in form_data.tool_form_field" :key="item.field" |
142 | | - :required="item.required" |
| 104 | + </template> |
| 105 | + <el-input |
| 106 | + v-if="item.source === 'custom' && item.input_type === 'TextInput'" |
| 107 | + v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
| 108 | + /> |
| 109 | + <el-input-number |
| 110 | + v-else-if="item.source === 'custom' && item.input_type === 'NumberInput'" |
| 111 | + v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
| 112 | + /> |
| 113 | + <el-switch |
| 114 | + v-else-if="item.source === 'custom' && item.input_type === 'SwitchInput'" |
| 115 | + v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
| 116 | + /> |
| 117 | + <el-input |
| 118 | + v-else-if="item.source === 'custom' && item.input_type === 'JsonInput'" |
| 119 | + v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
| 120 | + type="textarea" |
| 121 | + /> |
| 122 | + <NodeCascader |
| 123 | + v-if="item.source === 'referencing'" |
| 124 | + ref="nodeCascaderRef2" |
| 125 | + :nodeModel="nodeModel" |
| 126 | + class="w-full" |
| 127 | + :placeholder="$t('views.applicationWorkflow.variable.placeholder')" |
| 128 | + v-model="form_data.tool_params[form_data.params_nested][item.label.label]" |
| 129 | + /> |
| 130 | + </el-form-item> |
| 131 | + </el-form> |
| 132 | + </div> |
| 133 | + </template> |
| 134 | + <template v-else> |
| 135 | + <div class="p-8-12" v-if="!form_data.mcp_tool"> |
| 136 | + <el-text type="info">{{ $t('common.noData') }}</el-text> |
| 137 | + </div> |
| 138 | + <div v-else class="border-r-4 p-8-12 mb-8 layout-bg lighter"> |
| 139 | + <el-form |
| 140 | + ref="dynamicsFormRef" |
| 141 | + label-position="top" |
| 142 | + v-loading="loading" |
| 143 | + require-asterisk-position="right" |
| 144 | + :hide-required-asterisk="true" |
| 145 | + v-if="form_data.mcp_tool" |
| 146 | + @submit.prevent |
143 | 147 | > |
144 | | - <template #label> |
145 | | - <div class="flex-between"> |
146 | | - <div> |
147 | | - <TooltipLabel :label="item.label.label" :tooltip="item.label.attrs.tooltip" /> |
148 | | - <span v-if="item.required" class="danger">*</span> |
| 148 | + <el-form-item |
| 149 | + v-for="item in form_data.tool_form_field" |
| 150 | + :key="item.field" |
| 151 | + :required="item.required" |
| 152 | + > |
| 153 | + <template #label> |
| 154 | + <div class="flex-between"> |
| 155 | + <div> |
| 156 | + <TooltipLabel :label="item.label.label" :tooltip="item.label.attrs.tooltip" /> |
| 157 | + <span v-if="item.required" class="danger">*</span> |
| 158 | + </div> |
| 159 | + <el-select |
| 160 | + :teleported="false" |
| 161 | + v-model="item.source" |
| 162 | + size="small" |
| 163 | + style="width: 85px" |
| 164 | + > |
| 165 | + <el-option |
| 166 | + :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')" |
| 167 | + value="referencing" |
| 168 | + /> |
| 169 | + <el-option |
| 170 | + :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')" |
| 171 | + value="custom" |
| 172 | + /> |
| 173 | + </el-select> |
149 | 174 | </div> |
150 | | - <el-select :teleported="false" v-model="item.source" size="small" |
151 | | - style="width: 85px"> |
152 | | - <el-option |
153 | | - :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.reference')" |
154 | | - value="referencing" |
155 | | - /> |
156 | | - <el-option |
157 | | - :label="$t('views.applicationWorkflow.nodes.replyNode.replyContent.custom')" |
158 | | - value="custom" |
159 | | - /> |
160 | | - </el-select> |
161 | | - </div> |
162 | | - </template> |
163 | | - <el-input |
164 | | - v-if="item.source === 'custom' && item.input_type === 'TextInput'" |
165 | | - v-model="form_data.tool_params[item.label.label]" |
166 | | - /> |
167 | | - <el-input-number |
168 | | - v-else-if="item.source === 'custom' && item.input_type === 'NumberInput'" |
169 | | - v-model="form_data.tool_params[item.label.label]" |
170 | | - /> |
171 | | - <el-switch |
172 | | - v-else-if="item.source === 'custom' && item.input_type === 'SwitchInput'" |
173 | | - v-model="form_data.tool_params[item.label.label]" |
174 | | - /> |
175 | | - <el-input |
176 | | - v-else-if="item.source === 'custom' && item.input_type === 'JsonInput'" |
177 | | - v-model="form_data.tool_params[item.label.label]" |
178 | | - type="textarea" |
179 | | - /> |
180 | | - <NodeCascader |
181 | | - v-if="item.source === 'referencing'" |
182 | | - ref="nodeCascaderRef2" |
183 | | - :nodeModel="nodeModel" |
184 | | - class="w-full" |
185 | | - :placeholder="$t('views.applicationWorkflow.variable.placeholder')" |
186 | | - v-model="form_data.tool_params[item.label.label]" |
187 | | - /> |
188 | | - </el-form-item> |
189 | | - </el-form> |
190 | | - </div> |
| 175 | + </template> |
| 176 | + <el-input |
| 177 | + v-if="item.source === 'custom' && item.input_type === 'TextInput'" |
| 178 | + v-model="form_data.tool_params[item.label.label]" |
| 179 | + /> |
| 180 | + <el-input-number |
| 181 | + v-else-if="item.source === 'custom' && item.input_type === 'NumberInput'" |
| 182 | + v-model="form_data.tool_params[item.label.label]" |
| 183 | + /> |
| 184 | + <el-switch |
| 185 | + v-else-if="item.source === 'custom' && item.input_type === 'SwitchInput'" |
| 186 | + v-model="form_data.tool_params[item.label.label]" |
| 187 | + /> |
| 188 | + <el-input |
| 189 | + v-else-if="item.source === 'custom' && item.input_type === 'JsonInput'" |
| 190 | + v-model="form_data.tool_params[item.label.label]" |
| 191 | + type="textarea" |
| 192 | + /> |
| 193 | + <NodeCascader |
| 194 | + v-if="item.source === 'referencing'" |
| 195 | + ref="nodeCascaderRef2" |
| 196 | + :nodeModel="nodeModel" |
| 197 | + class="w-full" |
| 198 | + :placeholder="$t('views.applicationWorkflow.variable.placeholder')" |
| 199 | + v-model="form_data.tool_params[item.label.label]" |
| 200 | + /> |
| 201 | + </el-form-item> |
| 202 | + </el-form> |
| 203 | + </div> |
| 204 | + </template> |
191 | 205 | </NodeContainer> |
192 | 206 | </template> |
193 | 207 | <script setup lang="ts"> |
@@ -319,7 +333,7 @@ function changeTool() { |
319 | 333 | } else if (args_schema.properties[item].type === 'object') { |
320 | 334 | input_type = 'JsonInput' |
321 | 335 | } |
322 | | - console.log(args_schema.properties[item]); |
| 336 | + console.log(args_schema.properties[item]) |
323 | 337 | form_data.value.tool_form_field.push({ |
324 | 338 | field: item, |
325 | 339 | label: { |
|
0 commit comments