-
已引用:{{ referenceLabel }}
-
清除
+
+ 已引用:{{ valueSourceLabel }}
+ 清除
isLeaf.value && fieldType.value === 'textarea'
const isUpload = computed(() => isLeaf.value && fieldType.value === 'upload');
// ===== 引用上级节点输出 =====
-// 可引用:叶子 + 非开关 + 非固定选项下拉 + 非上传(开关/下拉值来自模型;上传类型不提供引用)
-const canReference = computed(() => isLeaf.value && !isSwitch.value && !isSelect.value && !isUpload.value);
+// 可引用:叶子 + 非开关 + 非固定选项下拉(开关/下拉值来自模型;上传类型同样支持引用上级输出)
+const canValueSource = computed(() => isLeaf.value && !isSwitch.value && !isSelect.value);
const hasUpstream = computed(() => (props.upstreamNodes?.length ?? 0) > 0);
-const hasReference = computed(() => !!def.value?.reference);
+const hasValueSource = computed(() => !!def.value?.valueSource);
// 已引用时的展示文案:{节点label}.{字段label}
-const referenceLabel = computed(() => {
- const ref = def.value?.reference;
+const valueSourceLabel = computed(() => {
+ const ref = def.value?.valueSource;
if (!ref) return '';
const node = props.upstreamNodes?.find((n) => n.id === ref.nodeId);
const nodeName = node?.label || ref.nodeId;
@@ -235,34 +235,34 @@ const referenceLabel = computed(() => {
});
// 引用是否已失效:上游节点被删除,或其输出字段已不存在(换模型/换配置导致 schema 变化)
-const referenceInvalid = computed(() => {
- const ref = def.value?.reference;
+const valueSourceInvalid = computed(() => {
+ const ref = def.value?.valueSource;
if (!ref) return false;
const node = props.upstreamNodes?.find((n) => n.id === ref.nodeId);
if (!node) return true;
return !node.outputFields.some((f) => f.field === ref.field);
});
-// 失效引用自动清理,避免保存脏数据(就地删除 reference,复用深 watch 上传链路)
+// 失效引用自动清理,避免保存脏数据(就地删除 valueSource,复用深 watch 上传链路)
watch(
- referenceInvalid,
+ valueSourceInvalid,
(invalid) => {
if (invalid && def.value) {
- delete def.value.reference;
+ delete def.value.valueSource;
}
},
{ immediate: true }
);
-// 选中前驱节点输出字段:就地写 def.reference,复用深 watch 上传链路
-const setReference = (node: UpstreamNodeInfo, of: { field: string; label: string }) => {
+// 选中前驱节点输出字段:就地写 def.valueSource,复用深 watch 上传链路
+const setValueSource = (node: UpstreamNodeInfo, of: { field: string; label: string }) => {
if (!def.value) return;
- def.value.reference = { nodeId: node.id, field: of.field };
+ def.value.valueSource = { nodeId: node.id, field: of.field };
};
-const clearReference = () => {
+const clearValueSource = () => {
if (!def.value) return;
- delete def.value.reference;
+ delete def.value.valueSource;
};
// ===== 叶子值(兼容字符串/布尔/数字) =====