经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Vue.js » 查看文章
Vue3学习(二十四)- 文档页面功能开发
来源:cnblogs  作者:久曲健  时间:2024/5/15 16:52:44  对本文有异议

写在前面

这部分真的感觉超级难,其实也不能说难,主要是真的想不到这个思路应该这么做,或者说他好厉害,他怎么知道该这么设计实现。

说下难点吧,我觉得后天逻辑还好,主要是前端部分真的需要点花点时间来思考,比如布局、交互设计的实现等等。

文档页面功能开发

1、任务拆解

  • 增加文档页面,首页点击电子书时,跳转到电子书文档页面
  • 左边显示文档树
  • 右边显示默认选择第一个节点的内容
  • 文档编辑增加预览功能
  • 无文档内容时,给出提示
  • 功能优化及问题修复

2、增加文档页面

首页点击电子书时,跳转到电子书文档页面,参考之前电子书列表中文档管理的路由跳转即可,示例代码如下:

  1. <router-link :to="'/doc?ebookId='+item.id">
  2. {{ item.name }}
  3. </router-link>

3、左边显示文档树

就是把文档管理的树形数据变成菜单,选择对应菜单显示对应电子书,示例代码如下:

  1. <a-row>
  2. <a-col :span="6">
  3. <a-tree
  4. v-if="level1 && level1.length"
  5. :defaultExpandAllRows="true"
  6. :tree-data="level1"
  7. @select="onSelect"
  8. :fieldNames="{title: 'name', key: 'id', value: 'id'}"
  9. :defaultExpandAll="true"
  10. >
  11. </a-tree>
  12. </a-col>
  13. <a-col :span="18">
  14. </a-col>
  15. </a-row>

4、右边默认选择第一个节点

当进入文档页面时,默认就选择第一个节点内容,示例代码如下:

  1. /**
  2. * 数据查询
  3. **/
  4. const handleQuery = () => {
  5. axios.get("/doc/all/" + route.query.ebookId).then((response) => {
  6. const data = response.data;
  7. if (data.success) {
  8. docs.value = data.content;
  9. level1.value = [];
  10. level1.value = Tool.array2Tree(docs.value, 0);
  11. setParent(level1.value)
  12. if (Tool.isNotEmpty(level1.value)) {
  13. defaultSelectedKeys.value = [level1.value[0].id];
  14. handleQueryContent(level1.value[0].id);
  15. }
  16. } else {
  17. message.error(data.message);
  18. }
  19. });
  20. };

5、文档编辑增加预览功能

就是增加一个按钮,点击后用一个抽屉显示即可,示例代码如下:

  1. <!-- 预览按钮 -->
  2. <a-button type="primary" @click="handlePreviewContent()">
  3. <EyeOutlined /> 内容预览
  4. </a-button>
  5. // 抽屉
  6. <a-drawer width="750" placement="right" :closable="false" :visible="drawerVisible" @close="onDrawerClose">
  7. <div class="wangeditor" :innerHTML="previewHtml"></div>
  8. </a-drawer>

6、无文档内容时,给出提示

判断接口返回数据,如果长度为0,就返回页面字符串显示,示例代码如下:

  1. <h3 v-if="level1.length === 0">对不起,找不到相关文档!</h3>

7、部分功能优化

图标的显示,需要先安装依赖如下:

  1. npm install --save @ant-design/icons-vue

代码部分如下所示:

  1. <a-button type="primary" @click="handlePreviewContent()">
  2. <EyeOutlined /> 内容预览
  3. </a-button>
  4. import {SmileOutlined, DownOutlined, ExclamationCircleOutlined,EyeOutlined} from '@ant-design/icons-vue';
  5. components: {
  6. SmileOutlined,
  7. DownOutlined,
  8. EyeOutlined
  9. },

8、效果

写在最后

这部分内容终于更新完,耗时大约五个小时吧,第一次感觉大脑饱和,有点整不动了,有种被压制的感觉呀,但是也真的好开心,又会了几个组件的使用。

但跳出来看,目前对我而言最大的快乐,也就是每天能会一旦点就可以啦,很简单而充实。

当然这也算单身狗的日常啦,感兴趣的同学可自行尝试!

原文链接:https://www.cnblogs.com/longronglang/p/18190118

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号