ZhaoJun пре 1 година
родитељ
комит
78537cce25
1 измењених фајлова са 44 додато и 9 уклоњено
  1. 44 9
      src/pages/Detail/FormAndFilesNode.js

+ 44 - 9
src/pages/Detail/FormAndFilesNode.js

@@ -12,7 +12,7 @@ const { confirm } = Modal;
 const { Panel } = Collapse;
 
 const FormAndFilesNode = props => {
-  const { formData, excelFileList, comment, version, loading } = props;
+  const { formData, excelFileList, comment, depTrees, version, loading } = props;
 
   const [projectList, setProjectList] = useState([]);
 
@@ -30,7 +30,7 @@ const FormAndFilesNode = props => {
   }, []);
 
   const FormContent = useMemo(() => {
-    return renderFrom(formData, projectList);
+    return renderFrom(formData, projectList, depTrees);
   }, [formData]);
 
   if (formData) {
@@ -57,13 +57,32 @@ const FormAndFilesNode = props => {
   return null;
 };
 
-const renderFrom = (data, projects) => {
+const renderFrom = (data, projects, depTrees) => {
   if (!data) return <Empty description="没有表单信息" />;
   try {
     const ding_schema = JSON.parse(data)[0];
     const formData = JSON.parse(ding_schema)?.formComponentValues;
-
     if (formData.length == 0) return <Empty description="没有表单信息" />;
+
+    function getDepName(id, tree) {
+      if (tree.length === 0) {
+        return;
+      }
+      let result = tree.find(item => item.ID === id);
+      if (result) {
+        return result.Name;
+      } else {
+        for (let index = 0; index < tree.length; index++) {
+          const element = tree[index];
+          result = getDepName(id, element?.children || []);
+          if (result) {
+            return result;
+          }
+        }
+      }
+      return '';
+    }
+
     return (
       <>
         {formData.map((item, idx) => {
@@ -82,11 +101,26 @@ const renderFrom = (data, projects) => {
           let value = item.value.join(',');
           if (item.id.includes('ProjectField')) {
             if (value) {
-              value = Number(value);
-              const project = projects.find(pitem => pitem.id === value);
-              if (project) {
-                value = `${project.project_name}(${project.project_full_code})`;
+              if (!Number.isNaN(Number(value))) {
+                value = Number(value);
+                const project = projects.find(pitem => pitem.id === value);
+                if (project) {
+                  value = `${project.project_name}(${project.project_full_code})`;
+                }
+              }
+            }
+          }
+          if (item.id.includes('DepartmentField')) {
+            if (value) {
+              if (!Number.isNaN(Number(value))) {
+                value = Number(value);
+                value = getDepName(value, depTrees);
+                console.log(value);
               }
+              // const dep = depTrees.find(ditem => ditem.ID === value);
+              // if (dep) {
+              //   value = `${dep.name}`;
+              // }
             }
           }
           return (
@@ -117,7 +151,8 @@ const renderFrom = (data, projects) => {
     return <Empty description="没有表单信息" />;
   }
 };
-export default connect(({ detail, loading }) => ({
+export default connect(({ detail, user, loading }) => ({
   comment: detail.comment,
+  depTrees: user.depTrees,
   loading,
 }))(FormAndFilesNode);