فهرست منبع

修改计算组件回填不更新问题

Renxy 1 سال پیش
والد
کامیت
2f46b91bb4

+ 2 - 1
src/components/DDComponents/CodeFiled/index.js

@@ -4,7 +4,7 @@ import { useRequest, useModel } from '@umijs/max';
 import { queryContractCode } from '@/services/contract';
 
 function CodeField(props) {
-  const { depId } = props;
+  const { depId, onChange } = props;
   const { depList, run } = useModel('depList');
   const [value, setValue] = useState('');
 
@@ -13,6 +13,7 @@ function CodeField(props) {
     manual: true,
     onSuccess: (data) => {
       setValue(data?.code);
+      onChange?.(data?.code);
     },
   });
   useEffect(() => {

+ 5 - 1
src/components/DDComponents/FormulaField/index.js

@@ -2,7 +2,11 @@ import React, { useEffect, useState } from 'react';
 import { Input } from 'antd';
 
 function FormulaField(props) {
-  const { evalStr } = props;
+  const { evalStr, onChange } = props;
+  useEffect(() => {
+    const value = eval(evalStr);
+    onChange?.(value);
+  }, [evalStr]);
 
   return <Input value={eval(evalStr)} />;
 }

+ 2 - 2
src/components/DDComponents/index.js

@@ -120,10 +120,10 @@ export default function DDComponents(props) {
       );
       break;
     case 'CodeField': //合同编号控件
-      component = <CodeField depId={depId} />;
+      component = <CodeField depId={depId} onChange={onChange} />;
       break;
     case 'FormulaField': //计算控件
-      component = <FormulaField evalStr={evalStr} />;
+      component = <FormulaField evalStr={evalStr} onChange={onChange} />;
       break;
     case 'RelateField': //关联审批单
       component = '关联审批单控件未渲染!';