dreamhunter
dreamhunter
  • 发布:2024-05-11 10:26
  • 更新:2024-06-03 16:45
  • 阅读:190

富文本编辑器,编译到飞书的该如何实现?

分类:uni-app

有计划支持飞书小程序么?
直接采用条件编译用飞书提供的组件,相关事件(onEditorReady,onEditorInputValueChange,onMentionSelect,onMentionClick,onInsertImages)不知道该写在哪里?

无法正常获取:contents中绑定数据

2024-05-11 10:26 负责人:DCloud_UNI_OttoJi 分享
已邀请:
DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

感谢反馈,你的意思是 uniapp 目前还没有官方支持飞书小程序的 editor ,自行封装时候遇到了问题对吗?

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

如果你想使用飞书的 compoent 可以按照下面的方案尝试运行

<template>  
 <view>  
  <!-- #ifdef MP-LARK -->  
  <editor  
        style="height:500px"  
        id="editor"  
        :placeholder="data1.placeholder"  
        :contents="data1.contents"  
        :read-only="data1.readOnly"  
        :plugins="data1.plugins"  
        :placeholderStyle="data1.placeholderStyle"  
        @ready="onEditorReady"  
        @mentionselect = "onMentionSelect"  
        @mentionclick = "onMentionClick"  
        @input="onEditorInputValueChange"  
        @insertimage="onInsertImages">  
    </editor>  

  <!-- #endif -->  
 </view>  
</template>  

<script lang="ts" setup>  
import  { ref } from 'vue';  
const data1 = ref({  
   placeholder: 'Hello editor!',  
        readOnly: false,  
        contents: {  
            html: `<div id="magicdomid-1_19" class="ace-line align-center heading-h1  locate lineguid-B2nSe8" dir="auto"><span class=" ">飞书</span></div><div id="magicdomid-1_26" class="ace-line blockquote blockquote  locate lineguid-17mqsc" dir="auto"><span class=" ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 飞书是字节跳动旗下办公平台,整合即时沟通、日历、音视频会议、云文档、云盘、工作台等功能于一体,成就组织和个人,更高效、更愉悦。</span></div><div id="magicdomid-1_27" class="ace-line locate lineguid-6UxLlZ" dir="auto"><span class=" ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2020年2月24日,字节跳动旗下办公套件飞书宣布,向全国所有企业和组织免费开放,不限规模,不限使用时长,所有用户均可使用飞书全部套件功能。2020年11月18日,飞书在北京举办“2020飞书未来无限大会”。会上,飞书推出全新版本“π”,发布独立App“飞书文档”,并在视频会议、即时沟通等功能上宣布了重大更新。</span></div><div id="magicdomid-1_37" class="ace-line locate lineguid-AWIi9E" dir="auto"><span class=" ">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class=" backgroundcolor " style="background-color: #FFF362; ">公众评价:小米选用了飞书,目前已经有一段时间了,飞书在信息创建、分享,以及协同办公方面,非常简洁、高效,的确越用越顺手。 ​​​(小米公司创始人、董事长兼CEO 评价)</span></div><div id="magicdomid-1_38" class="ace-line" dir="auto"><br></div><div id="magicdomid-1_34" class="ace-line" dir="auto"><br></div><div id="magicdomid-1_35" class="ace-line image-upload single-line" dir="auto"><span><div contenteditable="false" class="image-container single-elem-cls"><span class="image-wrapper"><span class="point tl n-icon-dragable"></span><span class="point tr n-icon-dragable"></span><span class="point br n-icon-dragable"></span><span class="point bl n-icon-dragable"></span><img src="https://sf3-cn.feishucdn.com/obj/open-platform-opendoc/37338d385a39166169f6bfeaaee5b32f_B6WlUG5Z3o.png" data-faketext=" " data-uuid="LxW0dlVX" class="editor_image" style="width: 88px;height: 88px"></span></div></span></div><div id="magicdomid-1_36" class="ace-line" dir="auto"><br></div>`  
        },  
        plugins: ['attribution', 'mention', 'undo', 'redo','indentRight','indentLeft'],  
        placeholderStyle: {  
            color: '#FFFD00',  
            fontSize:"25px"  
        }  
})  
// const content = ref<  

function onEditorReady (res) {  
        console.log('onEditorReady '  + JSON.stringify(res))  
    }  
  function  onEditorInputValueChange(res) {  
        console.log('onEditorInputValueChange '  + JSON.stringify(res))  
    }  
  function  onMentionSelect(res) {  
        console.log('onMentionSelect ' + JSON.stringify(res))  
    }  
   function onMentionClick(res) {  
        console.log('onMentionClick ' + JSON.stringify(res))  
    }  
  function  onInsertImages (res) {  
        console.log('onInsertImages '  + JSON.stringify(res));  
        const images = res.detail.images.map(item => ({  
            ...item,  
            src: item.filePath,  
        }))  
        res.insertImagesCallback({ images });  
    }  
</script>  
  • dreamhunter (作者)

    感谢解答,此代码编译到飞书环境后,事件方法没有注册成功.组件未能正常显示,HBuilder和飞书开发工具都是最新版本的

    2024-06-03 10:40

  • DCloud_UNI_OttoJi

    回复 dreamhunter: vue3 实测,可以正常渲染,你是 vue2?

    2024-06-03 15:22

  • DCloud_UNI_OttoJi

    vue2 实测也可以正确渲染。你确定使用了我提供的代码吗?如果你使用的是 vue2 ,需要调整 script 为 options ,需要你做个修改。如果你仍有问题,清提供复现工程,并说明你的 hbuilderx 版本,飞书版本

    2024-06-03 15:28

  • dreamhunter (作者)

    回复 DCloud_UNI_OttoJi: vue3,插入图片那个事件没有注册成功,飞书官方说那个事件成功后,工具栏里面会有插入图片按钮

    2024-06-03 16:11

DCloud_UNI_OttoJi

DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信

你的意思是 vue3 运行渲染没问题,只是插入图片事件不行?你再完整说一下你的问题吧,我搞晕了

要回复问题请先登录注册