会议OA系统会议管理模块开发思路(layui搭建)

news2024/11/18 15:35:52

目录

一.为什么要进行开发

1.开发目的

2.项目流程

A.发起会议请求过程

1.首先实现我们的多选下拉框功能!

2.时间组件功能,并且提交我们新增加的会议内容

3.在进行发起会议编码时遇到的问题,BUG

3.1.有点时候js访问不到路径

3.2在增加会议时,那个主持人获取不到

B:我的会议显示

我的会议显示BUG

发起新的会议时查询不到

总结AB两个阶段

C.会议排座(重点)

1.编写sql,定义变量调用方法达到随机生成任意的.png文件

2.在tomcat中需要配置图片映射关系,和定义配置文件用于映射

3.排座实现

总结

心得

会议排座遇到的问题

1.排座图片格式无法转换成png

2.排座图片转换成png,保留不了排座位置

D.会议送审

1.编写sql,实现servelt

2.通过多选下拉框实现审批

E.送审后的会议查询

1.编写sql,实现servelt

2.在界面的js文件实现功能,查询到数据

F.会议签字,审批

1.编写sql,实现servelt

2.导入签字资源,配置文件

G.会议通知(会议查询)

1.编写sql,实现servelt

2.加载资源

3.实现功能

H.是否参加会议,会议反馈

1.编写sql,实现servelt

2.实现功能

I.待开会议,历史会议,所有会议

1.编写sql,实现servelt

2.实现功能


一.为什么要进行开发

1.开发目的

通过引入信息化技术来提高企业办公效率和管理水平的项目。在会议OA项目中,主要目标是改进会议管理流程,提升会议效率和减少会议成本。

2.项目流程

登录任意一个用户来到会议发布界面,根据需求输入会议标题,会议内容,选择参与者,列席者,主持人就是登录自带的用户,在输入地点,选择时间,根据需求输入备注最后在点击提交!

A.发起会议请求过程

1.首先实现我们的多选下拉框功能!

搜索我们的layui官网,使用其官方文档的多选下拉框copy到搭建的js文件中,并且使用一个函数初始化,将官方的元素修改成参与者,列席者所对应的字段名。

然后在UserDao定义一个sql语句用来:查询所有用户 绑定多功能下拉框在进行配置。通过此方法和layui的下拉框的方法组合一起用来遍历出来参与者,列席者,实现过程中需要ajax来传递参数 queryUserAll。

2.时间组件功能,并且提交我们新增加的会议内容

搜索我们的layui官网,使用其官方文档的会议时间组件初始化copy到搭建的js文件中,并且时间模块初始化要放到layui自定义组件中,在将保存的时间范围进行处理,进行截取拿到开始时间,结束时间,去除空格放入json对象,其中主持人是在进行登录操作时进行数据的一个回显。

设置一个点击事件用于增加会议,发送ajax请求用于增加会议,携带参数add。

3.在进行发起会议编码时遇到的问题,BUG
3.1.有点时候js访问不到路径

(ctrl+鼠标可以点击进去,但是加载在网页中时访问不到),要通过路径前在添加${pageContext.request.contextPath }才行!

3.2在增加会议时,那个主持人获取不到

原因:在user.action中的login方法没有通过sesson保存用户

以为通过ResponseUtil.writeJson(resp, u);获取的u就已经保存了,其实ResponseUtil.writeJson(resp, u); 保存的是字符串

B:我的会议显示

首先编写一个通用的会议查询SQL语句,包含会议信息表数据,主持人姓名、审批人姓名、会议状态。然后在进行我的会议的sql语句编写:拼接一个会议主题,在根据当前登陆用户ID作为主持人字段的条件,最后按照会议ID降序排序。

写完我们的dao之在UserAction 实现/查询所有会议数据,并且要实现分页效果;

建立我们的jsp界面后,导入我们的js正式进入我们的会议显示操作。搜索我们的layui官网,使用其官方文档的数据表格(使用函数封装)并进行数据的初始化。

将其中的elem设置jsp中table设置(id),将field设置成为实体中的字段名,有某些字段名用别名来代替(用来回显会议的状态,以及审批人),在进行设置我们的数据访问路径info.action?methodName=myInfos,并且在将这个方法在layui自定义组件中进行调用。

然后在jsp界面中添加一个点击事件并调用一个方法于数据的查询,封装一个函数用于数据查询,目的是当点击查询时数据就会加载出来

我的会议显示BUG
发起新的会议时查询不到

在进行增加会议时,前端传递的一个主持人字段名在js文件中没有转换成为数据库的一个字段名,导致sql在查询时找不到数据,在将数据的字段名修改后发起会议的sql语句可以正常运行。

总结AB两个阶段

是对于正常的Javamvc架构的使用,都是最基本操作。但是自己在操作的过程中还是会出现一些细节的地方不到位,在某些地方会有一定的欠缺,对于框架的理解还是有一定不足还需要加强!、

C.会议排座(重点)

1.编写sql,定义变量调用方法达到随机生成任意的.png文件

.首先编写一个sql语句用于根据会议ID更新会议的排座图片,然后在MeetingInfoAction.中实现这个方法的servelt,在这个servelt方法中调用 PropertiesUtil中的方法,用来生成存储本地图片的变量和存储在服务器的图片变量,其次定义一个变量用于随机生成图片名字,还要在后面拼接一个+".png"。接着调用 Base64ImageUtils中GenerateImage方法将Base64编码转换为图片文件,然后在进行拼接将存储本地图片的变量+"/"+用于随机生成图片名字变量,其次将setpic 的内容变成请求地址,最后在调用根据会议ID更新会议的排座图片的方法。

2.在tomcat中需要配置图片映射关系,和定义配置文件用于映射

在其中dirPath=后面的部分需要在自己的盘符中创建相对应的包,用于排座图片的保存。

serverPath=是需要配置在服务器的path中,document base中则是在自己的盘符中创建相对应的包!

3.排座实现

在我们的myMeeting.js中排座按钮添加一个点击事件,打开排座界面。点击事件通过封装一个函数打开会议排座对话框,在里面定义要弹出的jsp。在将我们的jQuery、html2canvas(排座插件)导入到项目中加载到弹出的jsp中。在这个jsp中我们可以将我们参与会议的人拖动来达到一个排座的目的,其次还准备了一个薪资会议成员的一个输入框其目的是指为了解决领导的突然参与会议,可以将座位重新排座!

总结
心得

是对于自己的一个尝试,之前没有听说过这种东西有一种感觉很难的心情。但是真正去做时并没有自己想的那么难,思路很重要。在有思路的领导下具体去实现功能也就是水到渠成的事情了

会议排座遇到的问题
1.排座图片格式无法转换成png

在定义一个变量用于随机生成图片名字,忘记拼接+".png"导致文件无法转换成png。

2.排座图片转换成png,保留不了排座位置

调用 Base64ImageUtils中GenerateImage方法将Base64编码转换为图片文件时,由于粗心将一个符号','忘记导致会议排座图片生成为空白,将符号加上即可解决问题

D.会议送审

1.编写sql,实现servelt

在MeetingInfoDao.java编写sql根据会议ID更新会议的审批人(送审)updateAuditorById,在MeetingInfoAction.java实现这个方法

2.通过多选下拉框实现审批

首先给我们的送审按钮增加一个点击事件,弹出一个下拉框,并通过ajax来传递一个参数来实现会议ID更新会议的审批人,并且获取会议id,会议主持人。

其次通过封装一个函数,通过ajax来传递参数queryUserAll,通过如此来遍历出来需要送审的人员,在进行提交即可

E.送审后的会议查询

1.编写sql,实现servelt

在MeetingInfoDao实现:我的审批sql在通用sql基础上进行拼接会议主题,凭借根据当前登陆用户ID作为审批人字段的条件,查询会议状态为待审核的会议信息

在servelt调用方法myAudit,设置分页

2.在界面的js文件实现功能,查询到数据

通过表格组件讲数据加载出来,在通过封装一个函数发送数据的请求路径myAudit,讲数据遍历出来

F.会议签字,审批

1.编写sql,实现servelt

编写新增会议审批记录,这给sql语句有点特殊,需要同时执行两个sql语句,来达到对于数据库数据的操作。

其次在MeetingInfoAction中实现我的审批方法:

a.保存会议签字的图片

定义保存路径,定义请求地址,定义会议签字图片名称(原图名称),定义会议签字图片名称(裁剪后的名称),拼接图片完成路径(原图),拼接裁剪图路径上传签字图片并保存到指定位置,裁剪原图替换sign的图片路径删除原图

b.新增会议审批记录及更新会议状态

2.导入签字资源,配置文件

凭借这个类,来实现通过 鼠标来进行签字功能;配置文件在最上面进行过一次这里就不再进行叙述

G.会议通知(会议查询)

1.编写sql,实现servelt

会议通知:查询出我(当前登陆用户)需要参与的会议及会议的反馈信息(参会、缺席以及未读)。在servelt中,实现会议通知的方法!

2.加载资源

配置xml文件,在header.jsp中导入config.js,在项目中导入test.js

3.实现功能

首先给我们的查询按钮增加一个点击事件,并通过ajax来传递一个参数查询出我(当前登陆用户)需要参与的会议及会议的反馈信息,其次通过封装一个函数,通过ajax来传递参数queryMeetingFeedBackByUserId,通过如此来遍历出来需要通知的函数在进行提交即可

H.是否参加会议,会议反馈

1.编写sql,实现servelt

编写新增会议反馈记录sql,编写据会议ID查询会议参与人员的反馈信息sql

在servelt分别实现这两个方法

2.实现功能

是否参加会议:在js文件中通过封装一个函数,在进行调用。传递一个add的参数,并且来回显数据。

会议反馈:在js文件中通过封装一个函数,在进行调用。传递一个queryMeetingBackByMeetingId的参数,并且来回显数据从而打开查看本会议的反馈详情!

I.待开会议,历史会议,所有会议

1.编写sql,实现servelt

在其中待开会议、历史会议的sql语句时相同的,在通用sql的基础上拼接+按照会议标题模糊查询+根据当前登陆用户ID作为主持人字段的条件+根据会议状态,查询会议信息+按照会议ID降序排序,在servelt实现此方法queryMeetingInfoByState即可

所有会议:在通用sql的基础上拼接+按照会议标题模糊查询+根据当前登陆用户ID作为主持人字段的条件+根据会议状态,查询会议信息+按照会议ID降序排序,在servelt实现此方法allInfos即可

2.实现功能

我们的jsp界面后,导入我们的js正式进入我们的会议显示操作。搜索我们的layui官网,使用其官方文档的数据表格(使用函数封装)并进行数据的初始化。

将其中的elem设置jsp中table设置(id),将field设置成为实体中的字段名,有某些字段名用别名来代替(用来回显会议的状态,以及审批人),在进行设置我们的数据通过ajax来传递方法的参数(allInfos,queryMeetingInfoByState),并且在将这个方法在layui自定义组件中进行调用。

然后在jsp界面中添加一个点击事件并调用一个方法于数据的查询,封装一个函数用于数

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

陪伴关爱,陪诊小程序源码开发带给您温暖服务

在现代社会,随着人们生活压力的增加和健康意识的提高,陪诊服务成为了越来越多人的需求。为了满足用户对于贴心陪诊服务的需求,陪诊小程序应运而生。陪诊小程序是基于微信小程序平台开发的应用程序,旨在为用户提供便捷高效的陪诊服…

列表排序按钮常用方法,实现“向前移动到第一个↑”、“向前移动∧”、“向后移动∨”、“向后移动到最后一个↓”

<el-button title"向前移动到第一个" size"mini" type"primary" icon"el-icon-top" :disabled"tableData.length scope.row.value tableData[0].value :true" click.stop"moveToFirst(scope.row)" circle pla…

螺环化合物:1380300-88-8,具有刚性结构,结构稳定

资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ PART1----产品描述&#xff1a; 螺环化合物&#xff08;CAS号&#xff1a;1380300-88-8&#xff09;&#xff0c;螺环化合物具有刚性结构&#xff0c;结构稳定&#xff0c;其手性配体有较大的比旋光度&#xff0c;在不对称…

如何选择低代码/零代码平台(最全平台总结)

来谈论这个问题之前&#xff0c;我们先来看看到底什么是低代码/零代码—— 低代码 对于“低代码”的宣传其实已经很久很广泛了&#xff0c;但是争议从来都没有停止。 忘记之前在哪里看到过一个“低代码将会取代程序员”之类的说法&#xff0c;觉得很好笑&#xff0c;看了一些…

靶机精讲之Brainpan1

nmap扫描 主机发现 端口扫描 服务扫描 -sT 说明用tcp协议&#xff08;三次握手&#xff09;扫描 -sV扫描版本 O扫描系统 NULL是图片 10000端口是个python服务 UDP扫描 脚本扫描 web渗透 目录爆破 显示/bin/目录有东西 gobuster dir -w /usr/share/dirbuster/wordlists/di…

KVC与KVO

KVO 什么是KVO KVO全称Key Value Observing&#xff0c;其是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变&#xff0c;并在改变时接收到事件。观察者模式 由于KVO的实现机制&#xff0c;只针对属性才会发生作用&#xff0c;一般继承自NSObject的对象都…

Centos部署Springboot项目详解

准备启动jar包&#xff0c;app.jar放入指定目录。 一、命令启动 1、启动命令 java -jar app.jar 2、后台运行 nohup java -jar app.jar >/dev/null 2>&1 & 加入配置参数命令 nohup java -Xms512M -Xmx512M -jar app.jar --server.port9080 spring.profiles…

k8s webhook实例,java springboot程序实现 对Pod创建请求添加边车容器 ,模拟istio实现日志文件清理

k8s webhook实例&#xff0c;java springboot程序实现 对Pod创建请求添加边车容器 &#xff0c;模拟istio实现日志文件清理 大纲 背景与原理实现流程开发部署my-docker-demo-sp-user服务模拟业务项目开发部署my-sidecar服务模拟边车程序开发部署服务my-docker-demo-k8s-opera…

代码随想录算法训练营day14 | 二叉树的递归遍历和迭代遍历

目录 144. 二叉树的前序遍历 94. 二叉树的中序遍历 145. 二叉树的后序遍历 递归看这篇文章&#xff1a;三道题套路解决递归问题 | lyls blog 前序遍历的和后序遍历的迭代方法代码思路相同&#xff1b;因为栈为先进后出&#xff0c;所以前序遍历的入栈顺序为中右左&#xff1…

查看GPU使用的最佳方式

1. watch -n 1 nvidia-smi (最有名,没有之一) nvidia自带了一个nvidia-smi的命令行工具,会显示GPU使用情况 ​​​​​​​ 作为监控 GPU 的工具就显得有点过于简陋了。比如 Process name 栏只显示命令行的程序名,不显示参数,这样输出结果就是一堆 python 和 .../Minico…

封神,谷歌架构师分享 出gRPC 与云原生应用开发 Go 和 Java 为例文档

前言 随着微服务和云原生相关技术的发展&#xff0c;应用程序的架构模式已从传统的单体架构或分层架构转向了分布式的计算架构。尽管分布式架构本身有一定的开发成本和运维成本&#xff0c;但它所带来的收益是显而易见的。 在实现分布式应用程序时&#xff0c;我们必须考虑两…

加热炉优化燃烧控制系统开发

首先给大家推荐本书&#xff1a;      认识 加热炉是是把坯料加热到均匀的、适合轧制的温度(奥氏体组织)。温度提高以后&#xff0c;首先是提高钢的塑性&#xff0c;降低变形抗力&#xff0c;使钢容易变形。 钢坯加热模型。如T12钢室温下变形抗力约为600Mpa&#xff0c;加热…

ide运行报错“Command line is too long”解决办法

有时运行程序时&#xff0c;ide会报如下错&#xff0c;如何解决呢&#xff0c;其实提示已经告诉你解决办法了。点击图中的蓝色超链接&#xff1a; “JAR MAINIFEST” 或 “CLASSPATH FILE” 都能解决问题 这是因为命名的方法名太长了才会报这个错 方法2 如果没有弹窗&#xf…

DisplayPort Alt Mode On Type-c协议_Ver2.0(学习笔记)

1.简介 USB-C设想支持使用Type-C连接器和电缆的Alt Mode&#xff0c;其中各种Type-C连接器引脚可以重新配置&#xff0c;以支持超出Type-C范围的接口。 Type-C&#xff08;以及它所利用的USB PD&#xff09;提供了一个Discovery Process&#xff0c;用于发现连接的USB设备中对…

【Yolo系列目标检测模型】详细整理!更新中

文章目录 1、YOLOv11.1、概述1.2、实现方案1&#xff09;整体思路2&#xff09;网络结构3&#xff09;损失函数4&#xff09;推理/预测过程5&#xff09;优缺点 2、YOLOv22.1、概述/改进整体思路2.2、YOLOv2的改进点/tricks1&#xff09;Multi-Scale Training2&#xff09;High…

智安网络|常见的网络安全陷阱:你是否掉入了其中?

在数字化时代&#xff0c;网络安全成为了一个重要的议题。随着我们越来越多地在互联网上进行各种活动&#xff0c;诸如在线银行交易、社交媒体分享和在线购物等&#xff0c;我们的个人信息也更容易受到攻击和滥用。虽然有许多关于网络安全的指导和建议&#xff0c;但仍然有许多…

代码扫描平台SonarQube搭建保姆级教程

代码扫描工具SonarQube&#xff0c;想必大家也有了解&#xff0c;就是那种不明觉厉的存在&#xff0c;最近刚好有需求&#xff0c;需要自己搭建&#xff0c;下面就给大家记录下搭建的过程。 不了解的&#xff0c;可以先看看 https://github.com/SonarSource/sonarqube 有一个初…

【浩鲸科技】济南Java后端面经

本文目录 写在前面试题总览题目解析1.说一下SpringBoot中常用的注解2.Redis中的基本数据类型3.TCP的网络协议4.java中常见的锁5.Hashmap的底层数据结构、底层源码、扩容机制源码6.java面向对象的特点 写在前面 关于这个专栏&#xff1a; 本专栏记录一些互联网大厂、小厂的面试实…

短视频矩阵系统源码开发流程​

一、视频矩阵系统源码开发流程分为以下几个步骤&#xff1a; 四、技术开发说明&#xff1a; 产品原型PRD需求文档产品交互流程图部署方式说明完整源代码源码编译方式说明三方框架和SDK使用情况说明和代码位置平台操作文档程序架构文档 一、抖音SEO矩阵系统源码开发流程分为以…

什么是 MyBatis?

经过前几篇博客的学习 Spring 系列的基本操作已经实现的差不多了&#xff0c;接下来&#xff0c;我们来学习更重要的知识&#xff0c;将前端传递的数据存储起来&#xff0c;或者查询数据库里面的数据。 一、MyBatis 是什么&#xff1f; MyBatis 是一款优秀的持久层框架&…