|
@@ -11,6 +11,7 @@ const CLazyCascader = props => {
|
|
|
refinstance,
|
|
refinstance,
|
|
|
options,
|
|
options,
|
|
|
dispatch,
|
|
dispatch,
|
|
|
|
|
+ value,
|
|
|
onChange,
|
|
onChange,
|
|
|
changeOnSelect = false,
|
|
changeOnSelect = false,
|
|
|
popupVisible = false,
|
|
popupVisible = false,
|
|
@@ -24,7 +25,7 @@ const CLazyCascader = props => {
|
|
|
const [historyRecord, setHistoryRecord] = useState(
|
|
const [historyRecord, setHistoryRecord] = useState(
|
|
|
showFooter ? getAuthCache(CASCADER_HISTORY_KEY) || [] : []
|
|
showFooter ? getAuthCache(CASCADER_HISTORY_KEY) || [] : []
|
|
|
)
|
|
)
|
|
|
- const [cValue, setValue] = useState(defaultValue)
|
|
|
|
|
|
|
+ const [cValue, setValue] = useState(value || defaultValue)
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
if (!options.length) {
|
|
if (!options.length) {
|
|
|
dispatch({
|
|
dispatch({
|
|
@@ -33,15 +34,15 @@ const CLazyCascader = props => {
|
|
|
}
|
|
}
|
|
|
}, [])
|
|
}, [])
|
|
|
|
|
|
|
|
- const triggerChange = (value, local = '') => {
|
|
|
|
|
|
|
+ const triggerChange = (nvalue, local = '') => {
|
|
|
if (onChange) {
|
|
if (onChange) {
|
|
|
- onChange(value, local)
|
|
|
|
|
|
|
+ onChange(nvalue, local)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const handleOnChange = (value, selectedOptions) => {
|
|
|
|
|
- setValue(value)
|
|
|
|
|
- const len = value?.length
|
|
|
|
|
|
|
+ const handleOnChange = (nvalue, selectedOptions) => {
|
|
|
|
|
+ setValue(nvalue)
|
|
|
|
|
+ const len = nvalue?.length
|
|
|
if (len === 3) {
|
|
if (len === 3) {
|
|
|
const { name, id } = selectedOptions[2]
|
|
const { name, id } = selectedOptions[2]
|
|
|
const htr = serializeRecord(
|
|
const htr = serializeRecord(
|
|
@@ -56,7 +57,7 @@ const CLazyCascader = props => {
|
|
|
const local = selectedOptions.reduce((prev, curr) => {
|
|
const local = selectedOptions.reduce((prev, curr) => {
|
|
|
return `${prev}${prev ? ' / ' : ''}${curr.name}`
|
|
return `${prev}${prev ? ' / ' : ''}${curr.name}`
|
|
|
}, '')
|
|
}, '')
|
|
|
- triggerChange(value, local)
|
|
|
|
|
|
|
+ triggerChange(nvalue, local)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
const loadData = selectedOptions => {
|
|
const loadData = selectedOptions => {
|
|
@@ -137,7 +138,9 @@ const CLazyCascader = props => {
|
|
|
|
|
|
|
|
const handleOnPopupVisibleChange = e => {
|
|
const handleOnPopupVisibleChange = e => {
|
|
|
setVisible(e)
|
|
setVisible(e)
|
|
|
- if (!e && cValue === defaultValue) {
|
|
|
|
|
|
|
+ // 检测value是为了防止在Form里面的自定义级联组件失效
|
|
|
|
|
+ // TODOS 自定义FormItem组件需要接受value以及onChange事件
|
|
|
|
|
+ if (value && !e && cValue === defaultValue) {
|
|
|
triggerChange(null)
|
|
triggerChange(null)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|