From 0e911337b8f88e5e88fecf072395c38d2de1bc08 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Thu, 24 Apr 2025 11:34:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(dep):=20=E9=85=8D=E7=BD=AE=E4=BA=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=BA=90=E5=86=85=E9=83=A8=E6=96=B9=E6=B3=95?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E6=94=B6=E9=9B=86=E5=88=B0=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/dep/src/utils.ts | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/packages/dep/src/utils.ts b/packages/dep/src/utils.ts index c4cafc7e..3f1d1663 100644 --- a/packages/dep/src/utils.ts +++ b/packages/dep/src/utils.ts @@ -263,20 +263,32 @@ export const createDataSourceCondTarget = (ds: Pick isDataSourceCondTarget(ds, key, value), }); -export const createDataSourceMethodTarget = (ds: Pick, initialDeps: DepData = {}) => +export const createDataSourceMethodTarget = ( + ds: Pick, + initialDeps: DepData = {}, +) => new Target({ type: DepTargetType.DATA_SOURCE_METHOD, id: ds.id, initialDeps, isTarget: (_key: string | number, value: any) => { // 使用data-source-method-select 可以配置出来 - if (!Array.isArray(value) || !ds?.methods) { + if (!Array.isArray(value)) { return false; } const [dsId, methodName] = value; - if (!methodName || dsId !== ds.id || !ds.methods.find((field) => field.name === methodName)) { + if (!methodName || dsId !== ds.id) { + return false; + } + + if (ds.methods?.find((method) => method.name === methodName)) { + return true; + } + + // 配置的方法名称可能会是数据源类中定义的,并不存在于methods中,所以这里判断如果methodName如果是字段名称,就表示配置的不是方法 + if (ds.fields?.find((field) => field.name === methodName)) { return false; }