从0到1:企业办公审批小程序开发笔记

2024-06-08 20:04

本文主要是介绍从0到1:企业办公审批小程序开发笔记,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

可行性分析

企业办公审批小程序,适合各大公司,企业,机关部门办公审批流程,适用于请假审批,报销审批,外出审批,合同审批,采购审批,入职审批,其他审批等规划化审批流程。本系统分为管理员,员工,审批人员,三种角色;审批人员可以根据申请进行审批,并用微信消息提醒形式发送给申请者

功能设计

  • 1.发起申请: 员工填写各种申请单,包括个人资料,审批事项,附加图片,附加文档(PDF,word,ppt,excel等)。
  • 2.审批流程: 各部门具有审批权限的人员,根据本类型的审批流程(可自定义),依次对审批进行审批,并把审批结果流转到下一审批人(微信通知),如果审批不通过,则直接驳回至申请人(微信通知)
  • 3.通知提醒:向相关人员发送审批通知,包括申请提交通知、审批结果通知等,确保审批流程的及时性和透明度;
  • 4.审批人角色:可以分配不同的部门,对本部门的申请进行审批,每个部门可以设置1人或者多人具有审批权限
  • 5.审批记录与查询:记录审批流程中的每一步操作和审批结果,确保审批过程的可追溯性和安全性,员工随时查询自己的审批记录和当前审批进度。
  • 6.后台可以按时间,按状态查询审批记录,并导出记录Excel文件
  • 7.用户身份认证:后台可以添加员工白名单,只有白名单里的用户才可以正常注册,确保只有合法的员工可以提交和处理审批申请。

概要设计

在这里插入图片描述

数据库设计

FlowModel.DB_STRUCTURE = {_pid: 'string|true',FLOW_ID: 'string|true',FLOW_NO: 'int|true|default=0',FLOW_CATE_ID: 'string|true',FLOW_CATE_NAME: 'string|false',FLOW_DAY: 'string|false',FLOW_STATUS: 'int|true|default=1|comment=状态 1=审批中,8=驳回,9=完成',FLOW_DEPTS: 'array|true|default=[]|comment=审批流程',FLOW_USER_ID: 'string|true',FLOW_USER_NAME: 'string|true',FLOW_USER_DEPT: 'string|true',FLOW_FORMS: 'array|true|default=[]',FLOW_OBJ: 'object|true|default={}',FLOW_TIME: 'int|true|default=0',FLOW_TO_DEPT: 'string|true|comment=待处理的部门',FLOW_TO_NATIVE_DEPT: 'string|true|comment=待处理的部门',FLOW_TO_STEP: 'int|true|default=0|comment=待处理的步骤',FLOW_NOW_STEP: 'int|true|default=0|comment=当前步骤',FLOW_NOW_DEPT: 'string|false|comment=审批部门(不包含本部门)',FLOW_NOW_NATIVE_DEPT: 'string|false|comment=审批部门(包含本部门)',FLOW_NOW_USER_NAME: 'string|false',FLOW_NOW_USER_ID: 'string|false',FLOW_NOW_STATE: 'int|true|default=1',FLOW_LIST: 'array|true|default=[]',/*step:'int|false|default=0',dept: 'string|false',nativeDept: 'string|false',forms: 'array|false|default=[]',obj: 'object|false|default={}',time: 'int|false|default=0',userId: 'string|false',userName: 'string|false', state: 'int|false|default=1|comment=状态 1=通过 8=驳回',*/FLOW_ADD_TIME: 'int|true',FLOW_EDIT_TIME: 'int|true',FLOW_ADD_IP: 'string|false',FLOW_EDIT_IP: 'string|false',
};

核心实现

/** 浏览资讯信息 */async viewNews(id) {let fields = '*';let where = {_id: id,NEWS_STATUS: 1}let news = await NewsModel.getOne(where, fields);if (!news) return null;return news;}/** 取得分页列表 */async getNewsList({cateId, search, // 搜索条件sortType, // 搜索菜单sortVal, // 搜索菜单orderBy, // 排序 page,size,isTotal = true,oldTotal}) {orderBy = orderBy || {'NEWS_ORDER': 'asc','NEWS_ADD_TIME': 'desc'};let fields = 'NEWS_PIC,NEWS_VIEW_CNT,NEWS_TITLE,NEWS_DESC,NEWS_CATE_ID,NEWS_ADD_TIME,NEWS_ORDER,NEWS_STATUS,NEWS_CATE_NAME,NEWS_OBJ';let where = {};where.and = {_pid: this.getProjectId() //复杂的查询在此处标注PID};where.and.NEWS_STATUS = 1; // 状态 if (cateId && cateId !== '0') where.and.NEWS_CATE_ID = cateId;if (util.isDefined(search) && search) {where.or = [{ NEWS_TITLE: ['like', search] },];} else if (sortType && util.isDefined(sortVal)) {// 搜索菜单switch (sortType) {case 'sort': {orderBy = this.fmtOrderBySort(sortVal, 'NEWS_ADD_TIME');break;}case 'cateId': {if (sortVal) where.and.NEWS_CATE_ID = String(sortVal);break;}}}return await NewsModel.getList(where, fields, orderBy, page, size, isTotal, oldTotal);}  }

UI设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

后台系统设计

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

git代码

git下载

这篇关于从0到1:企业办公审批小程序开发笔记的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043166

相关文章

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi