diff --git a/CHANGELOG.md b/CHANGELOG.md index 07dee0c7a8e5d6466849f46fcce5016e5d64eb94..3811ec546293b76ce77f560a3c21e0aba18e0e25 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,7 @@ - 修复关系栏默认选中异常 - 修复关系分页默认选中和默认是否隐藏编辑项异常 - 修复应用启动视图未隐藏应用级别的加载提示异常 +- 修复数据选择类编辑器值回显异常 ### Added diff --git a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx index 36c7bcb2ca49774ac7f182d9e3a47c684435a340..a21458b19a8d3b9b92574338e247419d34f3b2ea 100644 --- a/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx +++ b/src/editor/data-picker/ibiz-picker-dropdown/ibiz-picker-dropdown.tsx @@ -82,37 +82,32 @@ export const IBizPickerDropDown = defineComponent({ }); const resetCurValue = () => { + const { value } = props; if (c.model.valueType === 'OBJECT') { - curValue.value = props.value - ? (props.value as IData)[c.objectNameField as string] - : null; + curValue.value = + value && c.objectNameField + ? (value as IData)[c.objectNameField] + : null; } else { - curValue.value = props.value as string; + curValue.value = value as string; } - if (props.value === null) { - curValue.value = ''; - } - const value = props.data[c.valueItem]; - refValue.value = value || (curValue.value as string); + const valueItem = props.data[c.valueItem]; + refValue.value = valueItem || curValue.value; const index = items.value.findIndex((item: IData) => - Object.is(item[c.keyName], value), + Object.is(item[c.keyName], valueItem), ); - if (index !== -1) { - return; - } + if (index !== -1) return; // items里匹配不到当前值项值时,生成自身的选项 items.value = []; - if (!isNil(props.value) && !isNil(value)) { - items.value.push({ [c.textName]: props.value, [c.keyName]: value }); + if (!isNil(props.value) && !isNil(valueItem)) { + items.value.push({ [c.textName]: props.value, [c.keyName]: valueItem }); } }; watch( () => props.value, - newVal => { - if (newVal || newVal === null) { - resetCurValue(); - } + () => { + resetCurValue(); }, { immediate: true }, ); diff --git a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx index 5f93b0c2b03003828bd9098fdc5994bd1ea126aa..e15c1b2057ce33f03662d02fae1a9fc1f8d3a54e 100644 --- a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx +++ b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx @@ -71,15 +71,14 @@ export const IBizPickerLink = defineComponent({ watch( () => props.value, - (newVal, oldVal) => { - if (newVal && newVal !== oldVal) { - if (c.model.valueType === 'OBJECT') { - curValue.value = newVal - ? (newVal as IData)[c.objectNameField as string] - : ''; - } else { - curValue.value = newVal as string; - } + newVal => { + if (c.model.valueType === 'OBJECT') { + curValue.value = + newVal && c.objectNameField + ? (newVal as IData)[c.objectNameField] + : null; + } else { + curValue.value = newVal as string; } }, { immediate: true }, diff --git a/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx b/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx index 8f52be2a5046a82a1eb3e84f3a758347eeabbcda..f635d1bebfcadae601f32b3119e8d1b4f28913d1 100644 --- a/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx +++ b/src/editor/data-picker/ibiz-picker/ibiz-picker.tsx @@ -73,24 +73,20 @@ export const IBizPicker = defineComponent({ }); const resetCurValue = () => { - const value = props.value; + const { value } = props; if (c.model.valueType === 'OBJECT') { - curValue.value = value - ? (value as IData)[c.objectNameField as string] - : null; + curValue.value = + value && c.objectNameField + ? (value as IData)[c.objectNameField] + : null; } else { curValue.value = value as string; } - if (value === null) { - curValue.value = ''; - } const valueItem = props.data[c.valueItem]; const index = items.value.findIndex((item: IData) => Object.is(item[c.keyName], valueItem), ); - if (index !== -1) { - return; - } + if (index !== -1) return; // items里匹配不到当前值项值时,生成自身的选项 items.value = []; if (value && !isEmpty(valueItem)) { @@ -100,10 +96,8 @@ export const IBizPicker = defineComponent({ watch( () => props.value, - newVal => { - if (newVal || newVal === null) { - resetCurValue(); - } + () => { + resetCurValue(); }, { immediate: true }, );