Skip to content

Commit 2f6062f

Browse files
committed
feat: input inline editor not close when failed
1 parent dfe7f99 commit 2f6062f

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

src/components/common/InputInlineEditor.vue

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {nextTick, ref} from "vue";
33
44
const props = defineProps<{
55
value: string | null | undefined;
6+
onChange?: (value: string) => Promise<boolean>;
67
}>();
78
const emit = defineEmits({
89
change: (value: string) => true,
@@ -20,10 +21,19 @@ const doEnter = () => {
2021
});
2122
};
2223
const doConfirm = () => {
23-
nextTick(() => {
24-
visible.value = false;
25-
});
26-
emit("change", valueEdit.value);
24+
if (props.onChange) {
25+
props.onChange(valueEdit.value).then((ok) => {
26+
if (ok) {
27+
visible.value = false;
28+
emit("change", valueEdit.value);
29+
}
30+
});
31+
} else {
32+
emit("change", valueEdit.value);
33+
nextTick(() => {
34+
visible.value = false;
35+
});
36+
}
2737
};
2838
</script>
2939

@@ -36,7 +46,7 @@ const doConfirm = () => {
3646
<a-input v-model="valueEdit" @pressEnter="doEnter">
3747
<template #append>
3848
<div class="cursor-pointer" @click="doConfirm">
39-
<icon-check />
49+
<icon-check/>
4050
</div>
4151
</template>
4252
</a-input>

0 commit comments

Comments
 (0)