feat: 新增工具:在线文本编辑/HTML获取; 回到顶部
This commit is contained in:
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
@@ -58,6 +58,9 @@ onMounted(() => {
|
|||||||
<div class="w-[24%] c-md:w-[24%] c-sm:w-[32%] "></div>
|
<div class="w-[24%] c-md:w-[24%] c-sm:w-[32%] "></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 返回顶部 -->
|
||||||
|
<el-backtop :right="10" :bottom="50" />
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
import { reactive, ref, shallowRef, onBeforeUnmount, onMounted } from 'vue'
|
||||||
|
import DetailHeader from '@/components/Layout/DetailHeader/DetailHeader.vue'
|
||||||
|
import '@wangeditor/editor/dist/css/style.css' // 引入富文本 css
|
||||||
|
import { Editor, Toolbar } from '@wangeditor/editor-for-vue' //富文本组件
|
||||||
|
import { copy } from '@/utils/string'
|
||||||
|
import Html from '../Html/Html.vue'
|
||||||
|
const info = reactive({
|
||||||
|
title: "在线文本编辑/HTML获取",
|
||||||
|
mode: 'default',
|
||||||
|
})
|
||||||
|
// 编辑器实例,必须用 shallowRef
|
||||||
|
const editorRef = shallowRef()
|
||||||
|
|
||||||
|
// 内容
|
||||||
|
const content = ref(``)
|
||||||
|
// html
|
||||||
|
const html = ref('')
|
||||||
|
|
||||||
|
// 工具栏配置
|
||||||
|
const toolbarConfig = {
|
||||||
|
excludeKeys: [
|
||||||
|
"uploadImage",
|
||||||
|
"group-video",
|
||||||
|
"insertLink",
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
//编辑器配置
|
||||||
|
const editorConfig = { placeholder: '请输入内容...' }
|
||||||
|
|
||||||
|
const handleCreated = (editor) => {
|
||||||
|
editorRef.value = editor // 记录 editor 实例,重要!
|
||||||
|
// html = editor.getHtml()
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleChange = (editor) => {
|
||||||
|
html.value = editor.getHtml()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// 组件销毁时,也及时销毁编辑器
|
||||||
|
onBeforeUnmount(() => {
|
||||||
|
const editor = editorRef.value
|
||||||
|
if (editor == null) return
|
||||||
|
editor.destroy()
|
||||||
|
})
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
|
//copy
|
||||||
|
const copyRes = async (resStr: string) => {
|
||||||
|
copy(resStr)
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="flex flex-col mt-3 flex-1">
|
||||||
|
<DetailHeader :title="info.title"></DetailHeader>
|
||||||
|
|
||||||
|
<div class="p-4 rounded-2xl bg-white h-[510px]">
|
||||||
|
<div class="border z-10 mt-3 h-96">
|
||||||
|
<Toolbar
|
||||||
|
class=""
|
||||||
|
:editor="editorRef"
|
||||||
|
:defaultConfig="toolbarConfig"
|
||||||
|
:mode="info.mode"
|
||||||
|
/>
|
||||||
|
<Editor
|
||||||
|
class="border"
|
||||||
|
v-model="content"
|
||||||
|
:defaultConfig="editorConfig"
|
||||||
|
:mode="info.mode"
|
||||||
|
@onCreated="handleCreated"
|
||||||
|
@onChange="handleChange"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="p-4 mt-3 rounded-2xl bg-white">
|
||||||
|
<el-button type="primary" @click="copyRes(html)">复制HTML</el-button>
|
||||||
|
<el-input
|
||||||
|
v-model="html"
|
||||||
|
disabled
|
||||||
|
class="mt-3"
|
||||||
|
type="textarea"
|
||||||
|
autosize
|
||||||
|
placeholder="html预览处"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
.downext-select{
|
||||||
|
@apply w-24
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -186,6 +186,15 @@ export function getToolsCate() {
|
|||||||
cateId: 3,
|
cateId: 3,
|
||||||
cate: '文本处理',
|
cate: '文本处理',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
title: '在线文本编辑/HTML获取',
|
||||||
|
logo: '/images/logo/richtextEditor.png',
|
||||||
|
desc: '在线富文本编辑, html实时预览,在线编辑文本,文本编辑获取html',
|
||||||
|
url: '/textEdit/',
|
||||||
|
cateId: 3,
|
||||||
|
cate: '文本处理'
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -421,6 +421,16 @@ export const constantRoute = [
|
|||||||
description: '提供在线css格式化,在线css压缩工具',
|
description: '提供在线css格式化,在线css压缩工具',
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
path: '/TextEdit',
|
||||||
|
component: () => import('@/components/Tools/TextEdit/TextEdit.vue'),
|
||||||
|
name: 'TextEdit',
|
||||||
|
meta: {
|
||||||
|
title: "在线文本编辑/HTML获取",
|
||||||
|
keywords: '文本编辑,富文本预览,在线编辑文本,文本编辑获取html',
|
||||||
|
description: '在线富文本编辑, html实时预览,在线编辑文本,文本编辑获取html',
|
||||||
|
}
|
||||||
|
},
|
||||||
// 关于
|
// 关于
|
||||||
{
|
{
|
||||||
path: '/about',
|
path: '/about',
|
||||||
|
|||||||
Reference in New Issue
Block a user