一二三应用开发平台应用开发示例(7)——文档功能实现示例

概述

在完成文件夹配置工作后,接下来配置文档管理系统最核心的管理对象“文档”。
依旧是使用平台低代码配置工作来配置,配置流程跟文件夹的配置是相同的,以下简要说明,重点是新涉及到的功能或注意点。

创建实体

image.png

配置模型属性

文件夹

文档所属的文件夹,类型为实体。
image.png

名称

非空、主属性,同一文件夹下不能同名
image.png

长度

文件长度,整形,保存文档原始长度信息。
image.png

大小

通过文档原始长度计算出来的友好显示长度,小文件以B、KB为单位,大文件以M、G为单位。
image.png

类型

文档的类型,如word、png、txt等
image.png

保存名称

文档实际存盘时的文件名称,与原始上传的名称会有差异,避免同名覆盖,会附加标识来解决,主要用于异常排查或不通过应用系统来找文件,为运维便利提供的冗余属性。
image.png

路径

文档存储的相对路径
image.png

阅读量与下载量

显示该文档被阅读和被下载的次数。
image.pngimage.png

文档状态

正常及锁定两种,使用锁定来防止多人协作情况下相互覆盖。
使用平台的数据字典功能来配置状态功能。
创建模块及字典类型,如下图所示:
image.png
维护字典项
image.png
创建状态属性
image.png
类型注意选择数据字典,在字典类型选择窗口中选中上一步骤中新创建的字典“文档状态”。
image.png

上传时间

记录文档的上传时间,虽然平台通用预置字段的创建时间实际上也就是文档的上传时间,不过预置字段通常只用于通用功能处理,如增量数据同步和异常排查。对于业务上需要的这种上传时间,建议单独配置属性来存储和处理。
image.png

配置视图

文档视图与文件夹视图的配置流程和方式完全相同,不再详述,只提重点和差异点。
对于文档来说,跟普通的实体不一样,不是通过新增页面录入表单数据保存后产生的,而是通过上传文件操作产生的,因此也就没有新增视图、修改视图和查看视图。
但文档通过文件夹来组织,因此需要配置树表视图。

列表视图

image.png
使用平台功能配置查询条件和查询结果,通过加号来增加自定义按钮,如页面上的上传、复制、移动……,行记录上的预览、下载、更名……这些自定义的按钮具体功能实现后面再说,先把整体页面配置出来。
image.png

树表视图

image.png
特别注意树路径的规则。
对于自关联的实体,如前文中的文件夹,保持留空即可,平台可自动识别和处理。
对于非关联自身的实体,需要填写路径,规则如下:从模块编码开始,中间有view路径,然后是实体编码,最后是树视图的vue页面,如上图所示。

运行效果如下:
image.png

辅助操作

生成库表

回到实体列表,勾选“文档”,点击生成库表按钮,平台提示成功后,查看数据库,库表正常。
image.png

生成代码

实体列表页面上勾选“文档”,点击生成代码按钮,平台提示成功后,查看输出目录,生成了各层代码。
image.png

拷贝代码

将前后端代码分别拷贝到对应的的位置,后端编译,前端执行eslint命令格式化。

增加API

前端edoc模块下api中增加对文档实体document的处理。

// 文档
export const document = Object.assign({}, COMMON_METHOD, {
  serveUrl: '/' + moduleName + '/' + 'document' + '/'
})

配置权限

使用系统管理模块下的权限项菜单,通过复制新增的模式,拷贝文件夹的权限项,然后修改为文档的权限项
image.png
注意上图中名称把文档修改为了文档库,对应菜单的名字,虽然实体是文档,但从用户角度,实际是文档库与业务含义更贴切。

为当前用户所在的管理员组,配置文档库权限。

运行效果

重启后端服务,运行效果如下:
image.png

开发平台资料

平台名称:一二三应用开发平台
平台简介:企业级通用低代码应用开发平台,免费全开源可商用
设计资料:csdn专栏
开源地址:Gitee
开源协议:MIT

应用系统资料

应用名称:一二三文档管理系统
应用简介: 企事业单位一站式文档管理系统,让组织内文档管理有序,协作高效、安全可控
设计文档:csdn专栏
开源地址:Gitee
开源协议:MIT

如果您在阅读本文时获得了帮助或受到了启发,希望您能够喜欢并收藏这篇文章,为它点赞~
请在评论区与我分享您的想法和心得,一起交流学习,不断进步,遇见更加优秀的自己!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/791402.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Dison夏令营 Day 15】 Python 鸡蛋捕手

在本次课程中,我们使用 Python 创建了经典的 "抓蛋 "游戏。在这个游戏中,每抓到一个鸡蛋就能赢得 10 分,而每掉落一个鸡蛋就会损失一条命。 小时候,我们都玩过 "抓鸡蛋 "游戏。我们使用海龟软件包在 Python …

【linux】阿里云centos配置邮件服务

目录 1.安装mailx服务 2./etc/mail.rc 配置增加 3.QQ邮箱开启smtp服务,获取授权码 4.端口设置:Linux 防火墙开放端口-CSDN博客 5.测试 1.安装mailx服务 yum -y install mailx 2./etc/mail.rc 配置增加 #邮件发送人 set from924066173qq.com #阿里…

windows USB 设备驱动开发-USB电源管理(一)

符合通用串行总线 (USB) 规范的 USB 设备的电源管理功能具有一组丰富而复杂的电源管理功能。 请务必了解这些功能如何与 Windows 驱动程序模型 (WDM) 交互,特别是 Microsoft Windows 如何调整标准 USB 功能以支持系统唤醒体系结构。 基于内核模式驱动程序框架的 US…

android13 rom 开发总纲说明

1. 这里是文章总纲,可以在这里快速找到需要的文章。 2. 文章一般是基于标准的android13,有一些文章可能会涉及到具体平台,例如全志,瑞芯微等一些平台。 3.系统应用 3.1系统应用Launcher3桌面相关: 3.2系统应用设置S…

NLP入门——词袋语言模型的搭建、训练与预测

卷积语言模型实际上是取了句子最后ctx_len个词作为上下文输入模型来预测之后的分词。但更好的选择是我们做一个词袋,将所有分词装在词袋中作为上下文,这样预测的分词不只根据最后ctx_len个分词,而是整个词袋中的所有分词。 例如我们的序列是&…

绝对值不等式运用(C++)

货仓选址 用数学公式表达题意,假设有位置a1~an,假设选址在x位置处,则有: 如何让这个最小,我们把两个式子整合一下,利用绝对值不等式: 我们知道: 如下图所示:到A,B两点&…

【深度学习入门篇 ②】Pytorch完成线性回归!

🍊嗨,大家好,我是小森( ﹡ˆoˆ﹡ )! 易编橙终身成长社群创始团队嘉宾,橙似锦计划领衔成员、阿里云专家博主、腾讯云内容共创官、CSDN人工智能领域优质创作者 。 易编橙:一个帮助编程小…

简单状压dp(以力扣464为例)

目录 1.状态压缩dp是啥? 2.题目分析 3.解题思路 4.算法分析 5.代码分析 6.代码一览 7.结语 1.状态压缩dp是啥? 顾名思义,状态压缩dp就是将原本会超出内存限制的存储改用更加有效的存储方式。简而言之,就是压缩dp的空间。 …

昇思MindSpore学习笔记6-05计算机视觉--SSD目标检测

摘要: 记录MindSpore AI框架使用SSD目标检测算法对图像内容识别的过程、步骤和方法。包括环境准备、下载数据集、数据采样、数据集加载和预处理、构建模型、损失函数、模型训练、模型评估等。 一、概念 1.模型简介 SSD目标检测算法 Single Shot MultiBox Detecto…

WebRTC群发消息API接口选型指南!怎么用?

WebRTC群发消息API接口安全性如何?API接口怎么优化? WebRTC技术在现代实时通信中占据了重要地位。对于需要实现群发消息功能的应用程序来说,选择合适的WebRTC群发消息API接口是至关重要的。AokSend将详细介绍WebRTC群发消息API接口的选型指南…

大数据开发者如何快速熟悉新公司业务

作为一名大数据开发工程师,进入一家新公司后快速熟悉业务是至关重要的。 目录 1. 了解产品形态故事1:电商平台的数据分析故事2:金融科技的风控系统故事3:社交媒体的推荐算法 2. 了解业务流程故事1:物流配送系统的优化故事2:医疗保险的理赔流程故事3:银行的贷款审批流程 3. 走…

openfoam生成的非均匀固体Solid数据分析、VTK数据格式分析、以及paraview官方用户指导文档和使用方法

一、openfoam生成的非均匀固体Solid数据分析 对于Solid/dealii-output文件,固体的数据文件, # vtk DataFile Version 3.0 #This file was generated by the deal.II library on 2024/7/10 at 9:46:15 ASCII DATASET UNSTRUCTURED_GRIDPOINTS 108000 do…

【算法】【二分法】二分法详解

先给y总打一个广告。(我这种废物收不到钱) 本科时候就在打蓝桥杯玩玩算法,当时听朋友的一个刷题且涵盖教程的网站,ACWING。 www.acwing.com 里面好处是大部分基础算法都有,Y总的视频! y总我的神&#xff01…

IDEA之Debug的使用

自定义功能图表 功能说明 光标回到Debug行 执行到光标所在行 Force Step into Trace Current Stream Chain Reset Frame 重置方法入栈

C++基础学习笔记

1.命名空间(namespace) 1.什么是命名空间&命名空间的作用 1.在C/C中,变量、函数、类都是大量存在的,这些变量等的名称将都存在于全局作用域中,就会导致很多的命名冲突等。使用命名空间的目的就是对标识符的名称进行本地化,以…

Nginx七层(应用层)反向代理:UWSGI代理uwsgi_pass篇

Nginx七层(应用层)反向代理 UWSGI代理uwsgi_pass篇 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this a…

JavaSE学习笔记第二弹——对象和多态(下)

今天我们继续复习与JavaSE相关的知识,使用的编译器仍然是IDEA2022,大家伙使用eclipse或其他编译环境是一样的,都可以。 目录 数组 定义 一维数组 ​编辑 二维数组 多维数组 数组的遍历 for循环遍历 ​编辑 foreach遍历 封装、继承和…

网络编程的学习之udp

Udp编程过程 Sento不会阻塞 实现聊天室效果 上线 聊天 下线 服务端需要一个地址,去保留名字和ip地址 交互的时候发结构体 下面这个宏只能在c语言里使用 ser.sin_port htons(50000); 上面是端口号50000以上,两边要一样 这里是不要让udp发的太快&am…

Git命令常规操作

目录 常用操作示意图 文件的状态变化周期 1. 创建文件 2. 修改原有文件 3. 删除原有文件 没有添加到暂存区的数据直接 rm 删除即可: 对于添加到暂存区的数据 文件或目录: 4. 重命名暂存区数据 5. 查看历史记录 6. 还原历史数据 恢复过程的原…

C/C++ list模拟

模拟准备 避免和库冲突&#xff0c;自己定义一个命名空间 namespace yx {template<class T>struct ListNode{ListNode<T>* _next;ListNode<T>* _prev;T _data;};template<class T>class list{typedef ListNode<T> Node;public:private:Node* _…