Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zrch-risk-39
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
Administrator
zrch-risk-39
Commits
436c3f26
提交
436c3f26
authored
2月 05, 2026
作者:
kxjia
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改校验方法
上级
c9c33644
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
22 行增加
和
8 行删除
+22
-8
ValidationDrawer.vue
...iews/baosong/report/components/check/ValidationDrawer.vue
+22
-8
没有找到文件。
zrch-risk-client-39/src/views/baosong/report/components/check/ValidationDrawer.vue
浏览文件 @
436c3f26
...
@@ -41,8 +41,7 @@
...
@@ -41,8 +41,7 @@
:class=
"
{ success: result.isValid, error: !result.isValid }"
:class=
"
{ success: result.isValid, error: !result.isValid }"
@click="handleValidationResultClick(result)"
@click="handleValidationResultClick(result)"
>
>
<div
class=
"result-field"
>
{{
result
.
field
}}
</div>
<div
class=
"result-field"
>
{{
result
.
description
}}
【
{{
result
.
field
}}
】
</div>
<div
class=
"result-desc"
>
{{
result
.
description
}}
</div>
<div
class=
"result-formula"
>
公式:
{{
result
.
formula
}}
</div>
<div
class=
"result-formula"
>
公式:
{{
result
.
formula
}}
</div>
<div
class=
"result-value"
>
值:
{{
formatFieldValue
(
result
.
fieldValue
)
}}
</div>
<div
class=
"result-value"
>
值:
{{
formatFieldValue
(
result
.
fieldValue
)
}}
</div>
<div
v-if=
"!result.isValid"
class=
"result-error"
>
失败原因:
{{
result
.
description
}}
</div>
<div
v-if=
"!result.isValid"
class=
"result-error"
>
失败原因:
{{
result
.
description
}}
</div>
...
@@ -200,12 +199,27 @@ const evaluateFormula = (formula: string, description: string): ValidationResult
...
@@ -200,12 +199,27 @@ const evaluateFormula = (formula: string, description: string): ValidationResult
}
}
// 构建表达式 - 修复变量引用问题
// 构建表达式 - 修复变量引用问题
const
expression
=
formula
.
replace
(
/
\$\$(\w
+
)\$\$
/g
,
(
_
,
field
)
=>
{
const
fieldNames
=
formula
.
match
(
/
\b[
A-Za-z
][
A-Za-z0-9_
]
*
\b
/g
)
||
[];
const
key
=
`
${
row
.
code
}
_
${
field
}
`
const
uniqueFields
=
[...
new
Set
(
fieldNames
.
filter
(
f
=>
const
value
=
formData
.
value
[
key
]
!
[
'and'
,
'or'
,
'not'
,
'equal'
,
'less'
,
'greater'
,
'if'
,
'else'
,
'true'
,
'false'
]
return
value
!==
undefined
&&
value
!==
''
?
`Number(
${
value
}
)`
:
'0'
.
includes
(
f
.
toLowerCase
())
})
))];
uniqueFields
.
sort
((
a
,
b
)
=>
b
.
length
-
a
.
length
);
let
expression
=
formula
;
for
(
const
fieldName
of
uniqueFields
)
{
const
key
=
`
${
row
.
code
}
_
${
fieldName
}
`
;
const
value
=
formData
.
value
[
key
];
if
(
value
!==
undefined
&&
value
!==
''
)
{
expression
=
expression
.
replace
(
new
RegExp
(
`\\b
${
fieldName
}
\\b`
,
'g'
),
`Number(
${
value
}
)`
);
}
}
console
.
log
(
"构建的表达式:"
,
expression
)
validationProcess
.
value
.
push
(
`执行公式:
${
expression
}
`
)
validationProcess
.
value
.
push
(
`执行公式:
${
expression
}
`
)
// 安全地执行表达式
// 安全地执行表达式
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论