Browse Source

fix: 修复回填值再次提交时获取不到问题

ZhaoJun 1 year ago
parent
commit
a943e9bef3
2 changed files with 23 additions and 17 deletions
  1. 13 11
      src/pages/Detail/AuditDetailed.js
  2. 10 6
      src/pages/Detail/CommitAuditModal.js

+ 13 - 11
src/pages/Detail/AuditDetailed.js

@@ -1,6 +1,6 @@
 import DDComponents from '@/components/DDComponents';
-import React, { useMemo, useState } from 'react';
-import { Form } from '@ant-design/compatible';
+import React, {useMemo, useState} from 'react';
+import {Form} from '@ant-design/compatible';
 import '@ant-design/compatible/assets/index.css';
 
 const layout = {
@@ -14,7 +14,7 @@ const layout = {
 
 const AuditDetailed = props => {
   // const [form] = Form.useForm();
-  const { items, form } = props;
+  const {items, form} = props;
 
   const behavior = useMemo(() => {
     let data = {};
@@ -27,14 +27,14 @@ const AuditDetailed = props => {
           try {
             data = JSON.parse(o);
           } catch (error) {
-            data = { key: o, value: o };
+            data = {key: o, value: o};
           }
           return data;
         });
         item.behaviorLinkage.forEach(b => {
           const value = b.value;
           b.targets.forEach(t => {
-            data[t.fieldId] = { key, value: options.find(o => o.key == value)?.value };
+            data[t.fieldId] = {key, value: options.find(o => o.key == value)?.value};
           });
         });
       }
@@ -78,11 +78,12 @@ const AuditDetailed = props => {
     } = item.props;
     // 判断是否属于关联项
     if (behavior[id]) {
-      const { key, value } = behavior[id];
+      const {key, value} = behavior[id];
       let currentValue = form.getFieldValue(key);
       try {
         currentValue = JSON.parse(currentValue);
-      } catch (error) {}
+      } catch (error) {
+      }
       // 判断是否需要渲染
       if (currentValue instanceof Array) {
         if (currentValue?.indexOf(value) == -1) return null;
@@ -102,15 +103,16 @@ const AuditDetailed = props => {
       }
     }
 
-    const component = DDComponents({ item });
+    const component = DDComponents({item});
     if (!component) return null;
     return (
       <Form.Item label={formLabel}>
         {typeof component == 'string'
           ? component
           : form.getFieldDecorator(id, {
-              rules: [{ required }],
-            })(component)}
+            rules: [{required}],
+            initialValue: item.props.defaultValue
+          })(component)}
         {notUpper == 1 && <p>大写</p>}
       </Form.Item>
     );
@@ -118,7 +120,7 @@ const AuditDetailed = props => {
 
   return (
     <Form
-      style={{ height: '400px', overflowY: 'scroll', paddingRight: 20 }}
+      style={{height: '400px', overflowY: 'scroll', paddingRight: 20}}
       layout="vertical"
       autoComplete="off"
     >

+ 10 - 6
src/pages/Detail/CommitAuditModal.js

@@ -157,8 +157,9 @@ function CommitAuditModal(props) {
     if (res.data) {
       const formList = JSON.parse(res.data.json);
       setApprovalProcess(formList.approvalProcess || {});
+      const prevFormData = JSON.parse(formList.formList[0]);
+      setFormComponentValues(prevFormData);
       return formList;
-      // setFormComponentValues(defaultFormData);
     }
   };
 
@@ -259,7 +260,7 @@ function CommitAuditModal(props) {
     const prevFormData = resData && resData.length ? JSON.parse(resData[0]) : [];
     if (value) {
       changeAudit(value[value.length - 1]);
-      if (prevFormData.length && value[0] === prevFormData.template_node_id) {
+      if (prevFormData.formComponentValues.length && value[0] === prevFormData.template_node_id) {
         setAuditListFun(approvalProcess, prevFormData.formComponentValues);
       } else {
         setAuditListFun(approvalProcess);
@@ -352,7 +353,7 @@ function CommitAuditModal(props) {
     }
     addAuditList.forEach((item, index) => {
       // 回填历史数据
-     if (prevFromData.length) {
+      if (prevFromData.length) {
         item.items.forEach(DDComponent => {
           const prevValue = prevFromData.find(pItem => pItem.id === DDComponent.props.id)
           DDComponent.props.defaultValue = prevValue.value
@@ -361,6 +362,7 @@ function CommitAuditModal(props) {
       let Components = Form3x.create({
         onValuesChange: (props, changedValues, allValues) => {
           const {items} = props;
+          console.log(allValues)
           formComponentValues[item.nodeId] = items
             .map(item => {
               const itemProps = item.props;
@@ -391,8 +393,9 @@ function CommitAuditModal(props) {
     if (Object.keys(approvalProcess).length == 0) advanceSubmit();
   };
 
-  const getFromData = async idList => {
+  const getFromData = idList => {
     const data = formComponentValues;
+    console.log(data)
     const result = [];
     //获取流转节点的层级关系
     let len = 0;
@@ -427,6 +430,7 @@ function CommitAuditModal(props) {
       };
       result.push(JSON.stringify(formItem));
     });
+    console.log(result)
     return result;
   };
 
@@ -511,7 +515,7 @@ function CommitAuditModal(props) {
     const flowPath = result.map(item => getFlowPath(item));
     setLoading(true);
     try {
-      const formList = await getFromData(result);
+      const formList = getFromData(result);
       let params = {
         desc: fieldsValue.desc,
         // 审核流程id
@@ -562,7 +566,7 @@ function CommitAuditModal(props) {
       await querySaveBomForm({
         project_id: version.project_id,
         node_id: version.template_node_id,
-        json: JSON.stringify({approvalProcess, fromList}),
+        json: JSON.stringify({approvalProcess, formList}),
       });
       params.audit_series = uuidv4();
       params.files = uploadList.current.join(',');