首页 > 其他分享 >解决方案

解决方案

时间:2023-01-12 16:35:01浏览次数:37  
标签:classid 工具栏 解决方案 app 笔记本 笔记 uni

二、解决方案

本项目的难点主要有以下几点:

前端

富文本编辑器的开发

网络上常见的输入框、记事本类软件及其相关教程大多只能简单地输入文字和插入图片,而具体文字的样式都依赖于开发者在展示的时候自己手动排版,抑制了用户的主观能动性。

本项目参考uni-app官方提供的hello uni-app 项目中的editor组件示例,并结合博客园等网站的评论区和开发者自身的使用需求,采用阿里巴巴iconfont字体图标库中的素材制作排版工具栏,uni-app的editor组件实现富文本的“所见即所得”式的编辑和预览。

  1. 富文本编辑器的前端实现

    • template

    image-20230112154934200

    • style
    image-20230112155316286
  2. 富文本编辑器的后端实现

    使用editor组件提供的apieditorCtx实现对编辑框中的文本的格式设置

    首先通过uni.createSelectorQuery()获取editorCtx

    image-20230112155459297

    然后为每个标签设置data-name

    image-20230112155737586

    当点击这个标签时触发format函数,该函数先获取到形参中的namevalue,再使用editorCtxformat方法设置格式

    image-20230112155827594

笔记本管理界面

开发者想实现点击Notes文字时从左边弹出笔记本管理工具栏,并且点击工具栏外的其他地方该工具栏都会缩回去。

image-20230112160152591

解决方案是采用uni-app扩展组件中的uni-drawer,通过修改其源码自定义该组件的宽度和遮罩层的颜色,实现了该功能。

image-20230112160503900

后端

设计

该项目有两张数据表

分别是

notes数据表

notes
│  
├─id 			笔记的id
├─classid 		笔记的分类
├─content 		笔记的内容
├─description 	笔记的摘要
├─posttime 		笔记的最后修改时间
├─text 			笔记的纯文本
└─title 		笔记的题目

notebooks数据表

notebooks
│  
├─id 		笔记本的id
├─classid 	笔记本中笔记的分类
└─name 		笔记本的名字

操作

本项目通过uniCloud.callFunction(Object)调用云函数实现数据库的增删改查

image-20230112160723488

以"获取笔记数据并按照最后修改时间排序"介绍:

笔记分三种情况,如果是从"全部笔记"页面请求数据,则传入classid=-1,直接获取所有数据并用orderBy方法根据最后修改时间降序排列;如果是从"未分类笔记"页面请求数据,则传入classid=0,用where方法和or操作符筛选并获取所需数据;如果是从已分类的笔记本中获取数据,则传入classid>=1,同样用where方法筛选并获取对应分类的笔记。

image-20230112160838248

标签:classid,工具栏,解决方案,app,笔记本,笔记,uni
From: https://www.cnblogs.com/zhengzirui/p/17047016.html

相关文章