首页 > 其他分享 >Vue3学习(二十四)- 文档页面功能开发

Vue3学习(二十四)- 文档页面功能开发

时间:2024-05-13 21:53:16浏览次数:22  
标签:示例 value level1 文档 Vue3 data 页面

写在前面

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

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

文档页面功能开发

1、任务拆解

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

2、增加文档页面

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

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

3、左边显示文档树

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

<a-row>
  <a-col :span="6">
    <a-tree
        v-if="level1 && level1.length"
        :defaultExpandAllRows="true"
        :tree-data="level1"
        @select="onSelect"
        :fieldNames="{title: 'name', key: 'id', value: 'id'}"
        :defaultExpandAll="true"
    >
    </a-tree>
  </a-col>
  <a-col :span="18">
  </a-col>
</a-row>

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

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

/**
   * 数据查询
   **/
  const handleQuery = () => {
    axios.get("/doc/all/" + route.query.ebookId).then((response) => {
      const data = response.data;
      if (data.success) {
        docs.value = data.content;
        level1.value = [];
        level1.value = Tool.array2Tree(docs.value, 0);
        setParent(level1.value)
        if (Tool.isNotEmpty(level1.value)) {
          defaultSelectedKeys.value = [level1.value[0].id];
          handleQueryContent(level1.value[0].id);
        }
      } else {
        message.error(data.message);
      }
    });
  };

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

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

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

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

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

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

7、部分功能优化

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

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

代码部分如下所示:

<a-button type="primary" @click="handlePreviewContent()">
  <EyeOutlined /> 内容预览
</a-button>

import {SmileOutlined, DownOutlined, ExclamationCircleOutlined,EyeOutlined} from '@ant-design/icons-vue';
 
components: {
  SmileOutlined,
  DownOutlined,
  EyeOutlined
},

8、效果

写在最后

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

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

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

标签:示例,value,level1,文档,Vue3,data,页面
From: https://www.cnblogs.com/longronglang/p/18190118

相关文章

  • 返回txt文档编码格式
    安装chardetpipinstallchardet获得文本文档编码类型importchardetfromchardet.universaldetectorimportUniversalDetectordefGetEncoding(file_path):txt=open(file_path,"rb")detector=UniversalDetector()forlineintxt.readlines():......
  • Vue3得通信方式
    1父向子props(defibeProps),子向父自定义事件(defineEmits)2时间总线(mitt插件)3v-model(可以绑定多个v-model)a给子组件传递props[modelValue]b给子组件传递自定义事件@update:modelValue列子:<Childv-model:name="name"v-model:sex="sex>4useAttrs(引入useAttr......
  • GGML 非官方中文文档
    _CRT_SECURE_NO_DEPRECATE类型:宏定义描述:禁用Windows上荒谬的“不安全”警告。_USE_MATH_DEFINES类型:宏定义描述:在MSVC上使用M_PI。GGML_DEBUG类型:宏定义描述:定义调试级别。GGML_GELU_FP16类型:宏定义描述:定义GELU函数的浮点数精度为16位。GGML_GELU_QUICK_FP......
  • vue3 - App.vue示例1
    示例1App.vue<!--插入Vue库的CDN链接--><scriptsrc="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js"></script><scriptsetup>importHelloWorldfrom'./components/HelloWorld.vue'</script><templa......
  • 使用 Python 旋转PDF页面、或调整PDF页面顺序
    在将纸质文档扫描成PDF电子文档时,有时可能会出现页面方向翻转或者页面顺序混乱的情况。为了确保更好地浏览和查看PDF文件,本文将分享一个使用Python来旋转PDF页面或者调整PDF页面顺序的解决方案。要实现Python对PDF页面进行设置,我们需要用到第三方库 Spire.PDFforPython。该库......
  • PyAlgoTrade-0-20-中文文档-一-
    PyAlgoTrade0.20中文文档(一)介绍原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/intro.htmlPyAlgoTrade是一个支持事件驱动的算法交易Python库,支持:使用来自CSV文件的历史数据进行回测。使用Bitstamp实时数据进行模拟交易。在Bitstamp上进行真实交易。......
  • PyAlgoTrade-0-20-中文文档-四-
    PyAlgoTrade0.20中文文档(四)SMA交叉原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/sample_sma_crossover.html将此代码保存为sma_crossover.py:frompyalgotradeimportstrategyfrompyalgotrade.technicalimportmafrompyalgotrade.technicalimportcrosscl......
  • PyAlgoTrade-0-20-中文文档-三-
    PyAlgoTrade0.20中文文档(三)工具原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/tools.htmlQuandlpyalgotrade.tools.quandl.``build_feed(sourceCode,tableCodes,fromYear,toYear,storage,frequency=86400,timezone=None,skipErrors=False,authToken=None,columnNames={......
  • PyAlgoTrade-0-20-中文文档-二-
    PyAlgoTrade0.20中文文档(二)经纪人-订单管理类原文:gbeced.github.io/pyalgotrade/docs/v0.20/html/broker.html基础模块和类类pyalgotrade.broker.``Order(type_,action,instrument,quantity,instrumentTraits)基类:object订单的基类。参数:type(Order.Type)–订单类......
  • Zipline-3-0-中文文档-一-
    Zipline3.0中文文档(一)原文:zipline.ml4trading.io回测您的交易策略原文:zipline.ml4trading.io/index.htmlZipline是一个用于回测的Pythonic事件驱动系统,由众包投资基金Quantopian开发和使用,作为回测和实时交易引擎。自2020年底关闭以来,托管这些文档的域名已过期。......