|
@@ -5,7 +5,7 @@ import { connect } from 'dva';
|
|
|
// import { queryDDdepList } from '@/services/boom';
|
|
|
|
|
|
function DepartmentField(props) {
|
|
|
- const { value = [], onChange, defaultValue, depUserTree } = props;
|
|
|
+ const { value = [], onChange, defaultValue, depTrees } = props;
|
|
|
// const [treeData, setTreeData] = useState([]);
|
|
|
|
|
|
// const genTreeNode = dep => {
|
|
@@ -74,9 +74,36 @@ function DepartmentField(props) {
|
|
|
}
|
|
|
}, [defaultValue]);
|
|
|
|
|
|
- const onChangeValue = newValue => {
|
|
|
- const depName = findDepName(depUserTree, newValue);
|
|
|
- onChange(depName);
|
|
|
+ const findDepID = (list, Name) => {
|
|
|
+ let result = '';
|
|
|
+ const dep = list.find(item => item.Name === Name);
|
|
|
+ if (dep) {
|
|
|
+ result = dep.ID;
|
|
|
+ } else {
|
|
|
+ for (let index = 0; index < list.length; index++) {
|
|
|
+ const element = list[index];
|
|
|
+ if (element?.children && element?.children.length) {
|
|
|
+ result = findDepID(element.children, Name);
|
|
|
+ if (result) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ };
|
|
|
+
|
|
|
+ const defaultID = useMemo(() => {
|
|
|
+ if (defaultValue !== undefined) {
|
|
|
+ return findDepID(depUserTree, defaultValue[0]);
|
|
|
+ } else {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ }, [defaultValue]);
|
|
|
+
|
|
|
+ const onChangeValue = (newValue, label) => {
|
|
|
+ // const depName = findDepName(depTrees, newValue);
|
|
|
+ onChange(label);
|
|
|
};
|
|
|
|
|
|
return (
|
|
@@ -91,10 +118,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);
|