diff --git a/packages/nc-gui/components/cell/RichText.vue b/packages/nc-gui/components/cell/RichText.vue index e2c6522d86..054f29ca31 100644 --- a/packages/nc-gui/components/cell/RichText.vue +++ b/packages/nc-gui/components/cell/RichText.vue @@ -108,7 +108,7 @@ const editor = useEditor({ editable: !props.readonly, }) -const setEditorContent = (contentMd: any) => { +const setEditorContent = (contentMd: any, focusEndOfDoc?: boolean) => { if (!editor.value) return const selection = editor.value.view.state.selection @@ -120,6 +120,15 @@ const setEditorContent = (contentMd: any) => { editor.value.chain().setContent(content).setTextSelection(selection.to).run() setTimeout(() => { + if (focusEndOfDoc) { + const docSize = editor.value!.state.doc.nodeSize + + editor.value + ?.chain() + .setTextSelection(docSize - 1) + .run() + } + ;(editor.value!.state as any).history$.prevRanges = null ;(editor.value!.state as any).history$.done.eventCount = 0 }, 100) @@ -134,7 +143,7 @@ if (props.syncValueChange) { watch(editorDom, () => { if (!editorDom.value) return - setEditorContent(vModel.value) + setEditorContent(vModel.value, true) // Focus editor after editor is mounted setTimeout(() => { diff --git a/packages/nc-gui/composables/useMultiSelect/index.ts b/packages/nc-gui/composables/useMultiSelect/index.ts index 35b3c0f20a..b6eeecffc0 100644 --- a/packages/nc-gui/composables/useMultiSelect/index.ts +++ b/packages/nc-gui/composables/useMultiSelect/index.ts @@ -718,7 +718,15 @@ export function useMultiSelect( return message.info(t('msg.info.updateNotAllowedWithoutPK')) } if (isTypableInputColumn(columnObj) && makeEditable(rowObj, columnObj) && columnObj.title) { - rowObj.row[columnObj.title] = '' + if (columnObj.uidt === UITypes.LongText) { + if (rowObj.row[columnObj.title] === '
') { + rowObj.row[columnObj.title] = e.key + } else { + rowObj.row[columnObj.title] = rowObj.row[columnObj.title] ? rowObj.row[columnObj.title] + e.key : e.key + } + } else { + rowObj.row[columnObj.title] = '' + } } // editEnabled = true }