Explorar el Código

采购合同提交流转节点增加部门模糊搜索功能

xujunjie hace 1 año
padre
commit
2096f2dc04
Se han modificado 2 ficheros con 26 adiciones y 7 borrados
  1. 9 6
      src/components/DDComponents/DepartmentField/index.js
  2. 17 1
      src/models/user.js

+ 9 - 6
src/components/DDComponents/DepartmentField/index.js

@@ -5,7 +5,7 @@ import { connect } from 'dva';
 // import { queryDDdepList } from '@/services/boom';
 
 function DepartmentField(props) {
-  const { value = [], onChange, depUserTree } = props;
+  const { value = [], onChange, depTrees } = props;
   // const [treeData, setTreeData] = useState([]);
 
   // const genTreeNode = dep => {
@@ -47,9 +47,9 @@ function DepartmentField(props) {
     return result;
   };
 
-  const onChangeValue = newValue => {
-    const depName = findDepName(depUserTree, newValue);
-    onChange(depName);
+  const onChangeValue = (newValue,label) => {
+    // const depName = findDepName(depTrees, newValue);
+    onChange(label);
   };
 
   return (
@@ -64,10 +64,13 @@ function DepartmentField(props) {
       }}
       style={{ width: '100%' }}
       placeholder="请选择部门"
-      treeData={depUserTree}
+      treeData={depTrees}
+      filterTreeNode={(input, option) => {
+        return option.title.toLowerCase().includes(input.toLowerCase())
+      }}
       onChange={onChangeValue}
     />
   );
 }
 
-export default connect(({ user }) => ({ depUserTree: user.depUserTree }))(DepartmentField);
+export default connect(({ user }) => ({ depTrees: user.depTrees }))(DepartmentField);

+ 17 - 1
src/models/user.js

@@ -38,6 +38,17 @@ function getDepUserTree(data) {
   return data;
 }
 
+function getDepTreeData(data) {
+  data.title = `${data.Name}`;
+  data.key = data.ID;
+  data.value = data.ID;
+  if (data.children) {
+    data.children.forEach(item => {
+      getDepTreeData(item, false);
+    });
+  }
+  return data;
+}
 const getRoleList = data => {
   let roleList = [];
   (data || []).forEach(dep => {
@@ -63,6 +74,7 @@ export default {
     depRole: [],
     depUserTree: [],
     roleList: [],
+    depTrees: [],
   },
 
   effects: {
@@ -167,12 +179,16 @@ export default {
     *fetchDepV2({ payload, callback }, { call, put }) {
       const response = yield call(queryDepV2, { pageSize: 999999 });
       if (response) {
+        let temp = JSON.parse(JSON.stringify(response.data.list));
         const depUserTree = response.data.list.map(item => {
           return getDepUserTree(item);
         });
+        const depTrees = temp.map(item => {
+          return getDepTreeData(item);
+        });
         yield put({
           type: 'saveState',
-          payload: { depUserTree },
+          payload: { depUserTree, depTrees },
         });
       }
     },