xujunjie 2 vuotta sitten
vanhempi
commit
9a2b032797

+ 11 - 11
src/components/DDComponents/DepartmentField/index.js

@@ -1,5 +1,5 @@
 import { TreeSelect } from 'antd';
-import React, { useState } from 'react';
+import React, { useState, useEffect } from 'react';
 import { queryDDdepList } from '@/services/boom';
 
 function DepartmentField(props) {
@@ -14,28 +14,28 @@ function DepartmentField(props) {
       pId: dep.parent_id,
       value: dep.dept_id,
       title: dep.name,
-      isLeaf: true,
+      isLeaf: false,
     };
   };
 
-  const onLoadData = async parentId => {
-    let depList = await queryDDdepList({ dept_id: parentId });
+  const onLoadData = async ({ id }) => {
+    let depList = await queryDDdepList({ dept_id: id });
+
+    console.log(depList);
     if (depList.length > 0) {
       let nodes = depList.map(genTreeNode);
       setTreeData([...treeData, ...nodes]);
-    } else if (parentId) {
-      let parentNode = treeData.find(item => item.id == parentId);
-      parentNode.isLeaf = false;
-      setTreeData([...treeData]);
     }
   };
 
   const onChangeValue = newValue => {
-    onChange(newValue);
+    console.log(newValue);
+    let dep = treeData.find(dep => dep.id == newValue);
+    onChange(dep?.name);
   };
 
   useEffect(() => {
-    onLoadData();
+    onLoadData({});
   }, []);
 
   return (
@@ -44,7 +44,7 @@ function DepartmentField(props) {
       style={{
         width: '100%',
       }}
-      value={value}
+      // value={value}
       dropdownStyle={{
         maxHeight: 400,
         overflow: 'auto',

+ 4 - 3
src/components/DDComponents/index.js

@@ -1,14 +1,15 @@
-import InnerContactField from './InnerContactField';
 import { Button, Input, InputNumber, Select, DatePicker, Rate, Upload } from 'antd';
 import { PlusOutlined } from '@ant-design/icons';
 import TableField from './TableField';
 import PhoneField from './PhoneField';
+import InnerContactField from './InnerContactField';
+import DepartmentField from './DepartmentField';
 
 const { Option } = Select;
 const { RangePicker } = DatePicker;
 
 export default function DDComponents(props) {
-  const { item, onChange, value } = props;
+  const { item, onChange } = props;
   const {
     id,
     label,
@@ -52,7 +53,6 @@ export default function DDComponents(props) {
         <InputNumber
           disabled={disabled}
           formatter={value => `${value}${unit || ''}`}
-          value={value}
           onChange={e => {
             console.log(e);
             onChange?.(e);
@@ -130,6 +130,7 @@ export default function DDComponents(props) {
       component = <InnerContactField onChange={onChange}></InnerContactField>;
       break;
     case 'DepartmentField': //部门控件
+      component = <DepartmentField onChange={onChange} />;
       break;
     case 'RelateField': //关联审批单
       break;

+ 15 - 3
src/pages/PurchaseAdmin/PurchaseList/Detail/CommitAuditModal.js

@@ -260,9 +260,21 @@ function CommitAuditModal(props) {
       addAuditList.map((item, index) => {
         let FormComponents = Form3x.create({
           onValuesChange: (props, changedValues, allValues) => {
-            console.log(allValues);
+            const { items } = props;
+            console.log(props, allValues);
             let formData = formDataRef.current;
-            formData[index] = allValues;
+            formData[index] = items
+              .map(item => {
+                const itemProps = item.props;
+                if (!itemProps.label) return;
+                return {
+                  name: itemProps.label,
+                  id: itemProps.id,
+                  value: allValues[itemProps.id],
+                };
+              })
+              .filter(item => item);
+            console.log(formData[index]);
           },
         })(AuditDetailed);
 
@@ -408,7 +420,7 @@ function CommitAuditModal(props) {
           // <TabPane tab={item.label} key={`${item.Id}_${item.label}`}>
           //   <AuditDetailed />
           // </TabPane>
-          <TabPane tab={item.title} key={`${idx}_${item.title}`}>
+          <TabPane tab={item.name} key={`${idx}_${item.title}`}>
             {item.FormComponents}
           </TabPane>
         ))}

+ 2 - 1
src/services/boom.js

@@ -293,8 +293,9 @@ export async function queryDingTemplateList() {
 }
 
 export async function queryDDdepList(data) {
-  return request(`/api/v1/purchase/bom/ding/department-list`, {
+  let res = await request(`/api/v1/purchase/bom/ding/department-list`, {
     method: 'POST',
     body: data,
   });
+  return res.data.result
 }