Commit 7fa277db authored by zhangwenshuai's avatar zhangwenshuai

修改可输可选控件

parent 9465e76c
import React, { useState } from 'react'; import React, { useState, useRef } from 'react';
import InputSearch from '../../extra/dataEntry/textSelect'; import InputSearch from '../../extra/dataEntry/textSelect';
import { ApolloInputSearchProps } from '../editInterface'; import { ApolloInputSearchProps } from '../editInterface';
import { antiAssign } from '../../../../utils/utils'; import { antiAssign } from '../../../../utils/utils';
...@@ -26,13 +26,14 @@ export const ApolloInputSearch = (props: ApolloInputSearchProps) => { ...@@ -26,13 +26,14 @@ export const ApolloInputSearch = (props: ApolloInputSearchProps) => {
'getInstanceDetail', 'getInstanceDetail',
]); ]);
const [curValue, setCurValue] = useState(value); const [curValue, setCurValue] = useState(value);
const isOpen = useRef(null);
const changeValue = (value: any) => { const changeValue = (value: any) => {
setCurValue(value); setCurValue(value);
if (typeof onChange === 'function') { if (typeof onChange === 'function') {
onChange(value, value); onChange(value, value);
} }
// 表格中的单选,选择后直接触发更新 // 弹框关闭时触发修改
if (origin === 'table' && selfProps.mode !== 'multiple') { if (origin === 'table' && selfProps.mode !== 'multiple' && !isOpen.current) {
onBlur(value); onBlur(value);
} }
}; };
...@@ -41,6 +42,12 @@ export const ApolloInputSearch = (props: ApolloInputSearchProps) => { ...@@ -41,6 +42,12 @@ export const ApolloInputSearch = (props: ApolloInputSearchProps) => {
onEmitChange(value, value); onEmitChange(value, value);
} }
}; };
const onDropdownVisibleChange = (open: boolean) => {
isOpen.current = open;
};
if (origin === 'table') {
selfProps.onDropdownVisibleChange = onDropdownVisibleChange;
}
return ( return (
<InputSearch <InputSearch
className={s.select} className={s.select}
......
...@@ -3,7 +3,6 @@ import { Menu, Empty, Spin, Input, Dropdown } from 'antd'; ...@@ -3,7 +3,6 @@ import { Menu, Empty, Spin, Input, Dropdown } from 'antd';
import { findDOMNode } from 'react-dom'; import { findDOMNode } from 'react-dom';
import lodash from 'lodash'; import lodash from 'lodash';
import styles from './styles.less'; import styles from './styles.less';
import s from "@/submodule/components/apolloTable/component/base/edit/search/index.less";
/* /*
* 此空间用于数据选择及输入控制,若不选择只传入输入框数据 * 此空间用于数据选择及输入控制,若不选择只传入输入框数据
...@@ -109,6 +108,7 @@ class TextSelect extends React.Component<Props, State> { ...@@ -109,6 +108,7 @@ class TextSelect extends React.Component<Props, State> {
}; };
onResetValue = (searchStr) => { onResetValue = (searchStr) => {
if (!searchStr) return undefined;
return { value: '', label: searchStr }; return { value: '', label: searchStr };
}; };
...@@ -142,23 +142,19 @@ class TextSelect extends React.Component<Props, State> { ...@@ -142,23 +142,19 @@ class TextSelect extends React.Component<Props, State> {
} }
}; };
onClear = () => {
const { tempVisible } = this.state;
const searchStr = '';
const selected = this.onResetValue(searchStr);
this.setState({ searchStr, selected }, () => {
if (tempVisible) {
this.fetch(searchStr);
}
this.onChange(selected);
});
};
onVisibleChange = (tempVisible) => { onVisibleChange = (tempVisible) => {
const { onDropdownVisibleChange } = this.props; const { onDropdownVisibleChange } = this.props;
const { selected } = this.state;
this.setState({ tempVisible }); this.setState({ tempVisible });
if (onDropdownVisibleChange) { if (onDropdownVisibleChange) {
onDropdownVisibleChange(tempVisible); onDropdownVisibleChange(tempVisible);
if (!tempVisible) {
// 清空或者为空对象时,强制置空
if (!selected || selected.length === 0 || (!selected.label || !selected.value || !selected.key)) {
return this.onChange(undefined);
}
this.onChange(selected);
}
} }
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment