refactor(front): replace MarkdownInputField with RichInputField for improved JSON handling in text uploads, update Tiptap component to support JSONContent, and increment dependency versions for better compatibility

This commit is contained in:
keven1024
2025-10-13 21:27:28 +08:00
parent 6bd008f119
commit e959a0bc3e
5 changed files with 130 additions and 110 deletions

View File

@@ -1,13 +0,0 @@
<template>
<Tiptap v-model="value" />
</template>
<script setup lang="ts">
import Tiptap from '@/components/Tiptap.vue'
import type { RuleExpression } from 'vee-validate'
const props = defineProps<{
name: string
rules?: RuleExpression<string>
}>()
const { value, } = useField<string>(props.name, props.rules)
</script>

View File

@@ -0,0 +1,20 @@
<template>
<Tiptap :model-value="jsonValue" @update:model-value="(v) => setValue(JSON.stringify(v))" />
</template>
<script setup lang="ts">
import Tiptap from '@/components/Tiptap.vue'
import type { RuleExpression } from 'vee-validate'
const props = defineProps<{
name: string
rules?: RuleExpression<string>
}>()
const { value, setValue } = useField<string>(props.name, props.rules)
const jsonValue = computed(() => {
try {
return value.value ? JSON.parse(value.value) : {}
} catch (error) {
return {}
}
})
</script>