在线BLOG网

news2024/9/20 9:42:33

@TOC

springboot0785在线BLOG网

第1章 绪论

1.1课题背景

计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。人们可以通过计算机上的浏览器访问多个应用系统,从中获取一些可以满足用户生活需求的管理系统。网站系统有时更像是一个大型“展示平台”,人们可以选择所需的信息进行在线报名满足用户需求。

系统所要实现的功能分析,对于现在网络方便的管理,据数据调查显示,对于网上用户的数达到5.6亿,相比过去增长较快,人们通过网上登录的方式已经形成了一种依赖,不管需要什么信息内容,直接上网查找,参考比较大,对在线BLOG网 的类型和特点的内容信息有了详细的了解,让用户更有针对性的选择。这也给用户带来非常大的方便,用户可以不用像传统的方式进行查看信息,这样不仅耽误自己的时间,而且比对过程比较单一,所以在线BLOG网 的开发不仅仅是能满足用户的需求,还能提高管理员的工作效率,减少原有不必要的工作量。

1.2研究意义

随着社会的发展和科学技术的进步,互联网技术越来越受欢迎。网络传播的生活方式逐渐受到广大人民群众的喜爱。越来越多的互联网爱好者开始在互联网上满足他们的基本需求,同时逐渐进入各个用户的生活起居。互联网具有许多优点,例如便利性,速度,高效率和低成本。因此,类似于在线BLOG网,满足用户工作繁忙的需求,不仅是方便用户随时查看信息的途径,而且还能提高管理效率。

本文首先以在线BLOG网过程的基本问题作为研究对象。在开发系统之前,我们对现有状况进行了详细的调查和分析。最后,我们利用计算机技术开发了一套完整合适的在线BLOG网 。该系统的实现主要优势是:该系统主要采用计算机技术开发,它方便快捷;系统可以通过管理员界面查看系统所涉及的在线BLOG网所有信息管理。

在线BLOG网 软件是一款方便、快捷、实用的信息服务查询软件。随着智能网络在全球市场的不断普及以及各种智能平台的使用,作为中国主流智能的技术开发系统,自然需要这样的软件来满足更多用户的需求和体验。系统的开发与人们的日常需求相关,如通过管理系统获取到前台首页、博客标签、博客分类、博客管理、图库相册、论坛、个人中心、我的收藏等等管理。

论坛管理、系统管理、管理员管理等信息详细情况,了解最新资讯信息等。

虽然目前已有很多基于JSP平台的在线BLOG网相关的平台系统,但尚未出现更详细的功能显示和信息查询。经过分析,用户的第一眼往往是看到一个软件的外观,一个漂亮的界面将吸引用户下一次点击和理解。为了让用户通过无意识的点击尝试进入每个界面和每个按钮,用户可以进一步了解软件的质量,因此良好的软件界面将是吸引用户注意力的第一步。因此,对于每个软件界面设计工作来说,一个应用程序是占据非常重要的一部分,在高端大气中吸引用户界面,满足用户体验将进一步完成整个应用程序的各项功能,良好的用户体验度将继续使用并经常打开并使用此软件。

1.3研究内容

本在线BLOG网平台,使用的是比较成熟的JSP技术和比较完善的MySQL数据库,将网络在线BLOG网信息管理系统可以更安全、技术性更强的满足网站所有信息的管理。

在线BLOG网平台主要实现了管理员模块、用户模块、二大部分。通过本在线BLOG网平台可以提高管理人员的工作效率,减少出错率,对于数据存储及查找有了更方便的操作。

详细内容介绍,将在以下五章中详细阐述:

第一章、绪论,介绍了研究课题选择的背景及意义、研究现状,简要介绍了本文的章节内容。

第二章、引入技术知识,通过引入关键技术进行开发,向系统中涉及直观表达的技术知识。

第三章、重点分析了系统的分析,从系统强大的供需市场出发,对系统开发的可行性,系统流程以及系统性能和功能进行了探讨。

第四章、介绍了系统的详细设计方案,包括系统结构设计和数据库设计。

第五章、系统设计的实现,通过对系统功能设计的详细说明,论证了系统的结构。

第六章、系统的整体测试,评判系统是否可以上线运行。 第4章 系统分析

第2章 技术介绍

2.1相关技术

在线BLOG网 是在JSP + MySQL开发环境的基础上开发的。JSP是一种服务器端脚本语言,易于学习,实用且面向用户。全球超过35%的JSP驱动的互联网站点使用JSP。MySQL是一个数据库管理系统,因为它的体积小但速度快,成本低,或者开源受到中小型网站的青睐。因此,JSP + MySQL作为一个成熟的开发环境,可以满足在线BLOG网 设计和开发所需的稳定性,安全性和可扩展性要求。

2.2JSP技术

JSP是JAVA的成员,所以JSP具有平台无关性,即实现跨平台功能,实现了用户界面和程序代码的解耦合,是的业务逻辑与代码的耦合度更低,开发人员可以在不更改JSP程序的情况下修改用户的界面。

JSP页面实质上也是一个HTML页面,只不过它包含了用于产生动态网页内容的JAVA代码,这些JAVA代码可以是JAVA Bean、SQL语句、RMI对象等。例如一个JSP页面包含了用于产生静态网页的HTML代码,同时也包含了连接数据库的JDBC代码,那么当网页在浏览器中显示时,它既包含了静态的HTML代码,又包含了从数据库中取得的动态内容,正因为如此才能称之为动态网页。

JSP程序简单实用,面向用户。在同一系统中体现的JSP技术优势只需要写一次; 同一系统下的多平台设计和开发;灵活且能够在多个服务器上运行;拥有各种强大的免费工具支持;在网页运行时实现服务器端组件。

在网站访问频率不是很高的环境中用作Web应用程序服务器。它是免费的开源,是JSP程序开发和调试的首选对象。

2.3MySQL数据库

数据库是系统开发过程中不可或缺的一部分。 在WEB应用方面,MySQL AB开发了一个具有很大优势的MySQL关系数据库管理系统。 MySQL可以将数据存储在不同的表中,这非常灵活,并且还可以提高系统在实际应用中的速度。 数据库访问最常用于标准SQL语言,MySQL用于SQL语言,因此它具有高度兼容性。数据库的操作是必不可少的,包括对数据库表的增加、删除、修改、查询等功能。现如今,数据库可以分为关系型数据库和非关系型数据库,Mysql属于关系性数据库,Mysql数据库是一款小型的关系型数据库,它以其自身特点:体积小、速度快、成本低等,Mysql数据库是目前最受欢迎的开源数据库。

在WEB应用技术中, Mysql数据库支持不同的操作系统平台,虽然在不同平台下的安装和配置都不相同,但是差别也不是很大,Mysql在Windows平台下两种安装方式,二进制版和免安装版。安装完Mysql数据库之后,需要启动服务进程,相应的用户就可以连接数据库,用户可通过命令行或者图形界面工具登录数据库。

2.4 Tomcat介绍

Tomcat 虽然是Apache的扩展,但是它们都是可以独立运行的,二者是不互相干扰的。当配置正确的时候,Apache服务器为HTML页面的运行提供技术支持,Tomcat 的任务则是运行Servle和JSP 页面。Tomca也具有一定的HTML页面处理功能。Tomcat属于一种轻型的服务器,所以说在中小企业中并不具有普适性。但是当程序员需要开发或调试JSP 程序时,则通常会将该服务器作为首选。对于一个仅具有计算机基础知识的人来说,计算机系统具有一个好的Apache服务器,可以很好的对HTML 页面进行访问。Tomcat是非常受欢迎的服务器,因为它具有较好的扩展性,而且在运行的时候不需要太多的系统资源,拥有程序员所需要的收发邮件功能,还能够支持负载平衡,该程序能够不断的更新,程序员能够根据自己的需要增加新的功能。

2.5SpringBoot框架

Spring Boot是Pivotal团队的一个新框架,旨在简化新Spring应用程序的初始设置和开发。该框架使用特定的配置方法,无需开发人员定义样板配置。通过这种方式,Spring Boot旨在成为蓬勃发展的快速应用程序开发领域的领导者。 Spring Boot特点: 1、创建一个单独的Spring应用程序; 2、嵌入式Tomcat,无需部署WAR文件; 3、简化Maven配置; 4、自动配置Spring; 5、提供生产就绪功能,如指标,健康检查和外部配置; 6、绝对没有代码生成和XML的配置要求; 安装步骤: 最基本的是,Spring Boot是一个可以被任何项目的构建系统使用的库集合。 为简单起见,该框架还提供了一个命令行界面,可用于运行和测试Boot应用程序。 可以从Spring存储库手动下载和安装框架的已发布版本,包括集成的CLI(命令行界面)。 更简单的方法是使用Groovy enVironment Manager(GVM),它负责处理Boot版本的安装和管理。 可以从GVM命令行GVM install springboot安装Boot及其CLI。 在OS X上安装Boot时可以使用Homebrew包管理器。要完成安装,首先使用brew tap pivotal / tap切换到pivotal存储库,然后执行brew install springboot命令。

第3章 需求分析

3.1需求分析概述

任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从实际场景中确定使用人员的功能需求,从而明确目标,对整个系统的开发有一个更加准确的定位,在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,在线BLOG网 的整体界面简单,功能完善。

需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统平台是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。如果您不具备开发一个功能不合格的系统的可行性,那就是开发失败。开发系统是否有用,可以完成之前讨论过的需求,以下分析了小在线BLOG网的实际需求。

系统设计需要从用户、和管理员的实际需求开始,以了解他们需要实施哪些功能以及他们可以包括哪些管理工作。

考虑到在线BLOG网 设计的特点,应满足几个要求:

(1)它可以通过网络开展用户在线BLOG网项目信息管理工作,促进对用户在线BLOG网项目信息的统一管理。

(2)学习方法变得更加多样化,管理更加标准化;

(3)它提供了一个免费的渠道,以确保数据的实时有效沟通。

3.2可行性分析

可行性分析目的是根据所开发系统的用户需求,明确研究方向和目标,通过可行性分析确定系统的框架和功能模块。

可行性分析是对任何管理系统的需求、技术和经济的分析。其中最重要的技术方面的可行性,技术可行性是分析软件开发技术的应用开发系统是可行的。其次,分析软件系统的需求,分析软件需求能否满足预先设计的功能需求。最后讨论了系统的操作可行性和经济可行性。

3.2.1经济可行性

在开发任何软件系统之前,它将考虑其后来的经济可行性,即开发和设计软件所需的成本及其在以后运行中可带来的经济效益是否可以匹配,以及软件是否能带来经济效益给用户。在本交互式用户管理软件的设计中,本文的主要目的是为管理员提供一个新的在线BLOG网平台,这在经济上是完全可行的。

3.2.2技术可行性

系统比较重要的一个分析就是技术可行分析,没有好的技术,再好的设计也是达不到系统的要求,并且对于技术的设计,使用的技术,如何更好的利用技术将所要实现的功能模块进行详细的分析,需要对技术进行详细的了解及自己的所学知识的一个综合使用。技术可行性主要取决于系统设计和开发中使用的各种硬件设施和软件设置,是否可以更好的结合,发挥他们的优势避开他们的弊端进行完美结合,确保技术的安全使用及正常的操作。

在线BLOG网 主要是基于springboot技术开发,到目前为止,springboot技术的发展已经非常成熟。同时,它也受到许多开发人员的青睐。而且,在技术层面,Windows平台决定可以完成开发在线BLOG网 的任务。因此,系统开发在技术上是可行的。

3.3系统功能设计

软件的用户界面是最直接接触的对象,包括是否允许用户使用简单方便,请求的响应时间,主图像的整体质量,整体布局的质量。

在线BLOG网的设计基于现有的网络平台,可以实现用户管理及数据信息管理等功能。方便管理员对后台进行管理首页、个人中心、个人信息、用户管理、博客标签管理、博客分类管理、博客管理、图库相册管理、论坛管理、系统管理、管理员管理,用户;个人中心、个人信息、博客管理、图库相册管理、我的收藏。有详细的了解及统计分析,随时查看信息状态。 

系统功能设计是在系统开发和设计思想的总体任务的基础上完成的。该系统的主要任务是实现在线BLOG网管理,使用户可以通过指令完成整个在线BLOG网的操作。

从上面的描述中可以基本可以实现软件的功能:

1、开发实现在线BLOG网的整个系统程序; 

2、管理员;首页、个人中心、个人信息、用户管理、博客标签管理、博客分类管理、博客管理、图库相册管理、论坛管理、系统管理等模块信息的查看及相应操作;

3、用户:实现个人中心、个人信息、博客管理、图库相册管理、我的收藏等相应操作;

4、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行留言信息的查看及回复相应操作。

第4章 系统设计

4.1系统结构设计

在线BLOG网 的设计主要是为了满足用户的实际需求。 因此,它需要通过Internet实现,因此它必须具备硬件和软件基础。该平台最终可以通过科学技术和各种方式达到支持智能化的信息管理的目的。因此,它必须具备网络在线BLOG网管理所需的环境和各种资料,并保证实现开放性,模块性和实用性三个原则。

在线BLOG网,主要包括管理员、用户二个用户角色,对于用户角色不同,所使用的功能模块相应不同。

管理员、用户的功能,根据需求可以对系统已有的管理员等功能模块的管理维护等操作,如下图4-1所示。

图4-1 在线BLOG网结构功能图

4.2数据库设计

数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。

4.2.1实体ER图

数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。在线BLOG网使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。

概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:

管理员信息实体属性图如图4-2所示。

图4-2管理员信息实体属性图

用户信息实体属性图如图4-3所示。

图4-3用户信息实体属性图

博客信息实体属性图如图4-4所示。

图4-4博客信息实体属性图

图库相册管理实体属性图如图4-5所示。

图4-5图库相册管理实体属性图

4.2.2数据表

每个数据库的应用它们都是和区分开的,当运行到一定的程序当中,它就会与自己相关的协议与用户进行通讯。那么这个系统就会对使这些数据进行连接。当我们选择哪个桥段的时候,接下来就会简单的叙述这个数据库是如何来创建的。当点击完成按钮的时候就会自动在对话框内弹出数据源的名称,在进行点击下一步即可,直接在输入相对应的身份验证和登录密码。

根据系统功能设计的要求和功能模块的划分,在线BLOG网发布与展示平台的设计与实现一共涉及到四个数据表。下面就介绍一下各别主要数据库表的设计结构及其功能建立数据库表:

表4-1:allusers表

|列名|数据类型|长度|约束| | :- | :-: | :-: | :-: | |id|int|11|PRIMARY KEY| |username|varchar|50|DEFAULT NULL| |pwd|varchar|50|DEFAULT NULL| |cx|varchar|50|DEFAULT NULL| 表4-2:yonghu表

列名数据类型长度约束
idint11PRIMARY KEY
addtimevarchar50DEFAULT NULL
yonghumingvarchar50DEFAULT NULL
mimavarchar50DEFAULT NULL
xingmingvarchar50DEFAULT NULL
xingbievarchar50DEFAULT NULL
shoujivarchar50DEFAULT NULL
zhaopianvarchar50DEFAULT NULL

表4-3:boke表

列名数据类型长度约束
IDint11PRIMARY KEY
addtimevarchar50DEFAULT NULL
bokemingchengvarchar50DEFAULT NULL
fenleivarchar50DEFAULT NULL
biaoqianvarchar50DEFAULT NULL
tupianvarchar50DEFAULT NULL
neirongvarchar50DEFAULT NULL
faburiqivarchar255DEFAULT NULL
yonghumingvarchar2DEFAULT NULL

表4-4:tukuxiangce表

列名数据类型长度约束
idint11PRIMARY KEY
addtimevarchar50DEFAULT NULL
xiangcemingchengvarchar50DEFAULT NULL
biaoqianvarchar50DEFAULT NULL
xiangcefengmianvarchar50DEFAULT NULL
xiangceneirongvarchar50DEFAULT NULL
faburiqivarchar255DEFAULT NULL
yonghumingvarchar255DEFAULT NULL

第5章 系统实现

管理员、用户登录功能是系统中一个非常重要的功能模块。这个函数模块需要做的第一件事是设计系统的安全性。不能说任何打开登录界面的人都可以进入系统。我们想控制管理。成员的账号和密码,只有拥有权限的用户才能通过这个登录界面进入系统管理界面,这是非常重要的。用户想要登录和使用系统首先进入登录账户和登录密码,然后我们使用程序来检索,检索数据库中的账户信息一致输入账号密码,如果输入账号信息让用户登录时,如果它不存在,给一个提示,非法登陆,所以这个功能模块是非常重要的。

5.1管理员功能模块

管理员通过点击后台管理,进入页面可以进行个人中心、个人信息、用户管理、博客标签管理、博客分类管理、博客管理、图库相册管理、论坛管理、系统管理等功能模块,进行相对应操作,如图5-1所示。

图5-1管理员登录功能界面

用户管理:通过用户信息可以进行获取用户名、密码 、性别、姓名、手机、照片等信息内容等等并进行添加、删除、修改以及查看等操作如图5-2所示。

图5-2用户信息界面

博客分类管理:管理员通过列表可以获取分类等信息,进行查看博客分类管理等信息操作内容等等并进行添加、删除、修改以及查看,如图5-3所示。

图5-3博客分类管理界面

博客管理:通过博客信息可以进行获取博客名称、分类、标签、图片、发布日期、用户名等信息内容等等并进行添加、删除、修改以及查看等操作如图5-4所示。

图5-4博客信息界面

图库相册管理:管理员通过列表可以获取相册名称、标签、相册封面、发布日期、用户名等信息,进行查看图库相册等信息操作内容等等并进行添加、删除、修改以及查看,如图5-5所示。

图5-5图库相册管理管理界面

系统管理:该页面为轮播图/新闻资讯管理界面。管理员可以在此页面进行首页轮播图/新闻资讯的管理,通过新建操作可在轮播图/新闻资讯中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作如图5-6所示。

图5-6新闻资讯管理管理界面

5.2用户前后功能模块

用户通过点击前台管理,进入页面可以进行注册、登录、能模块,进行相对应操作,用户并可以对个人信息进行添加、删除、修改以及查看,如图5-7所示。

图5-7用户注册登录功能界面

用户经过登录前台首页查看通过博客标签、博客分类管理、博客信息、图库相册、个人中心、我的收藏进行查看,如图5-8所示。

图5-8前台首页管理界面

博客标签:用户通过列表可以查看博客标签并可以进行评论、收藏等信息操作,如图5-9所示。

图5-9博客标签管理界面

博客管理:用户通过列表可以填写博客名称、分类、标签、图片、发布日期、用户名等信息,进行查看博客信息等信息操作,如图5-10所示。

图5-10博客信息管理界面

论坛管理,用户通过列表进行发布贴子等等操作,如图5-11所示。

图5-11论坛管理界面

个人中心,用户通过后台可以在线修改密码等操作如图5-12所示。

图5-12个人中心理界面

博客管理,管理员通过博客管理可以在线查看博客名称、分类、标签、图片、发布日期、用户名等信息,进行查看或修改、删除操作,如图5-13所示。

图5-13博客管理界面

图库相册管理,管理员通过图库相册管理可以在线查看相册名称、标签、相册封面、发布日期、用户名等信息,进行查看或详情修改或删除,如图5-14所示。

图5-14图库相册管理界面图

我的收藏:通过列表可以收藏表名、名称、图片等等进行收藏操作 ,如图5-15所示。

图5-15我的收藏界面图

第6章 系统测试

ConfigServiceImpl.java

package com.service.impl;


import java.util.Map;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.dao.ConfigDao;
import com.entity.ConfigEntity;
import com.entity.UserEntity;
import com.service.ConfigService;
import com.utils.PageUtils;
import com.utils.Query;


/**
 * 系统用户
 * @author yangliyuan
 * @date 2019年10月10日 上午9:17:59
 */
@Service("configService")
public class ConfigServiceImpl extends ServiceImpl<ConfigDao, ConfigEntity> implements ConfigService {
	@Override
	public PageUtils queryPage(Map<String, Object> params) {
		Page<ConfigEntity> page = this.selectPage(
                new Query<ConfigEntity>(params).getPage(),
                new EntityWrapper<ConfigEntity>()
        );
        return new PageUtils(page);
	}
}

InterceptorConfig.java
package com.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import com.interceptor.AuthorizationInterceptor;

@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport{
	
	@Bean
    public AuthorizationInterceptor getAuthorizationInterceptor() {
        return new AuthorizationInterceptor();
    }
	
	@Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**");
        super.addInterceptors(registry);
	}
	
	/**
	 * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法
	 */
	@Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
		registry.addResourceHandler("/**")
        .addResourceLocations("classpath:/resources/")
        .addResourceLocations("classpath:/static/")
        .addResourceLocations("classpath:/admin/")
        .addResourceLocations("classpath:/front/")
        .addResourceLocations("classpath:/public/");
		super.addResourceHandlers(registry);
    }
}

DiscussbokeServiceImpl.java
package com.service.impl;

import org.springframework.stereotype.Service;
import java.util.Map;
import java.util.List;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
import com.utils.PageUtils;
import com.utils.Query;


import com.dao.DiscussbokeDao;
import com.entity.DiscussbokeEntity;
import com.service.DiscussbokeService;
import com.entity.vo.DiscussbokeVO;
import com.entity.view.DiscussbokeView;

@Service("discussbokeService")
public class DiscussbokeServiceImpl extends ServiceImpl<DiscussbokeDao, DiscussbokeEntity> implements DiscussbokeService {
	
	
    @Override
    public PageUtils queryPage(Map<String, Object> params) {
        Page<DiscussbokeEntity> page = this.selectPage(
                new Query<DiscussbokeEntity>(params).getPage(),
                new EntityWrapper<DiscussbokeEntity>()
        );
        return new PageUtils(page);
    }
    
    @Override
	public PageUtils queryPage(Map<String, Object> params, Wrapper<DiscussbokeEntity> wrapper) {
		  Page<DiscussbokeView> page =new Query<DiscussbokeView>(params).getPage();
	        page.setRecords(baseMapper.selectListView(page,wrapper));
	    	PageUtils pageUtil = new PageUtils(page);
	    	return pageUtil;
 	}
    
    @Override
	public List<DiscussbokeVO> selectListVO(Wrapper<DiscussbokeEntity> wrapper) {
 		return baseMapper.selectListVO(wrapper);
	}
	
	@Override
	public DiscussbokeVO selectVO(Wrapper<DiscussbokeEntity> wrapper) {
 		return baseMapper.selectVO(wrapper);
	}
	
	@Override
	public List<DiscussbokeView> selectListView(Wrapper<DiscussbokeEntity> wrapper) {
		return baseMapper.selectListView(wrapper);
	}

	@Override
	public DiscussbokeView selectView(Wrapper<DiscussbokeEntity> wrapper) {
		return baseMapper.selectView(wrapper);
	}

}

center.vue
<template>
  <div>
    <el-form
      class="detail-form-content"
      ref="ruleForm"
      :model="ruleForm"
      label-width="80px"
    >  
     <el-row>
                              <el-col :span="12">
        <el-form-item  v-if="flag=='yonghu'"  label="用户名" prop="yonghuming">
          <el-input v-model="ruleForm.yonghuming" 
              placeholder="用户名" clearable></el-input>
        </el-form-item>
      </el-col>
                        <el-col :span="12">
        <el-form-item  v-if="flag=='yonghu'"  label="密码" prop="mima">
          <el-input v-model="ruleForm.mima" 
              placeholder="密码" clearable></el-input>
        </el-form-item>
      </el-col>
                        <el-col :span="12">
        <el-form-item  v-if="flag=='yonghu'"  label="姓名" prop="xingming">
          <el-input v-model="ruleForm.xingming" 
              placeholder="姓名" clearable></el-input>
        </el-form-item>
      </el-col>
                        <el-col :span="12">
        <el-form-item v-if="flag=='yonghu'"  label="性别" prop="xingbie">
          <el-select v-model="ruleForm.xingbie" placeholder="请选择性别">
            <el-option
                v-for="(item,index) in yonghuxingbieOptions"
                v-bind:key="index"
                :label="item"
                :value="item">
            </el-option>
          </el-select>
        </el-form-item>
      </el-col>
                        <el-col :span="12">
        <el-form-item  v-if="flag=='yonghu'"  label="手机" prop="shouji">
          <el-input v-model="ruleForm.shouji" 
              placeholder="手机" clearable></el-input>
        </el-form-item>
      </el-col>
                        <el-col :span="24">  
        <el-form-item v-if="flag=='yonghu'" label="照片" prop="zhaopian">
          <file-upload
          tip="点击上传照片"
          action="file/upload"
          :limit="3"
          :multiple="true"
          :fileUrls="ruleForm.zhaopian?ruleForm.zhaopian:''"
          @change="yonghuzhaopianUploadChange"
          ></file-upload>
        </el-form-item>
      </el-col>
                                                                                                                                          <el-form-item v-if="flag=='users'" label="用户名" prop="username">
        <el-input v-model="ruleForm.username" 
        placeholder="用户名"></el-input>
      </el-form-item>
      <el-col :span="24">
      <el-form-item>
        <el-button type="primary" @click="onUpdateHandler">修 改</el-button>
      </el-form-item>
      </el-col>
      </el-row>
    </el-form>
  </div>
</template>
<script>
// 数字,邮件,手机,url,身份证校验
import { isNumber,isIntNumer,isEmail,isMobile,isURL,checkIdCard } from "@/utils/validate";

export default {
  data() {
    return {
      ruleForm: {},
      flag: '',
      usersFlag: false,
                                                                  yonghuxingbieOptions: [],
                                                                                                                                                                };
  },
  mounted() {
    var table = this.$storage.get("sessionTable");
    this.flag = table;
    this.$http({
      url: `${this.$storage.get("sessionTable")}/session`,
      method: "get"
    }).then(({ data }) => {
      if (data && data.code === 0) {
        this.ruleForm = data.data;
      } else {
        this.$message.error(data.msg);
      }
    });
                                            this.yonghuxingbieOptions = "男,女".split(',')
                                                                                                          },
  methods: {
                                                                                                                                                                                                        yonghuzhaopianUploadChange(fileUrls) {
        this.ruleForm.zhaopian = fileUrls;
    },
                                                                                            onUpdateHandler() {
                              if((!this.ruleForm.yonghuming)&& 'yonghu'==this.flag){
        this.$message.error('用户名不能为空');
        return
      }
                                                            if((!this.ruleForm.mima)&& 'yonghu'==this.flag){
        this.$message.error('密码不能为空');
        return
      }
                                                                                                                                                                                                                                                                                                                                                                              this.$http({
        url: `${this.$storage.get("sessionTable")}/update`,
        method: "post",
        data: this.ruleForm
      }).then(({ data }) => {
        if (data && data.code === 0) {
          this.$message({
            message: "修改信息成功",
            type: "success",
            duration: 1500,
            onClose: () => {
            }
          });
        } else {
          this.$message.error(data.msg);
        }
      });
    }
  }
};
</script>
<style lang="scss" scoped>
</style>

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

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

相关文章

【MySQL】半同步模式

1 半同步模式原理 1. 用户线程写入完成后 master 中的 dump 会把日志推送到 slave 端 2.slave 中的 io 线程接收后保存到 relaylog 中继日志 3. 保存完成后 slave 向 master 端返回 ack 4. 在未接受到 slave 的 ack 时 master 端时不做提交的&#xff0c;一直处于等待当收到…

Linux离线安装fontconfig

Linux离线下载yum包&#xff0c;安装字体库 一、下载安装包 以CentOS Linux release 7.9.2009下载fontconfig的rpm包的为例 http://mirror.centos.org/centos/7/按提示跳转历史库 找到对应版本的centos https://vault.centos.org/7.9.2009/os/x86_64/Packages/在Packages目…

5个免费的文章生成器,为你在线生成高质量原创文章

在ai技术发展的今天&#xff0c;我们面对文章创作再也不用感到苦恼&#xff0c;无论是没有创作灵感&#xff0c;还是不擅长写作&#xff0c;只要有了文章生成器&#xff0c;那么它就能帮助我们轻松完成任何类型的文章创作。文章生成器虽然很强大&#xff0c;但是市面上众多的文…

服务器备份

服务器备份 一、方案 FreeFileSync freeSSHd Windows任务计划程序 FreeFileSync&#xff1a;设置文件备份方案&#xff08;双向同步、镜像同步、更新同步、自定义同步&#xff09;&#xff0c;适用于本地的文件同步之外&#xff0c;还支持 Google Driver、SFTP 和 FTP 三种…

【Docker】安装Docker环境遇到的坑(VirtualBox)

利用vagrant工具在VirtualBox安装CentOS7环境后&#xff0c;安装Docker环境遇到的坑 前期准备工作 1、卸载原有环境 sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engi…

10 Java数据结构:包装类、数组(Array工具类)、ArrayList

文章目录 前言一、包装类1、Integer&#xff08;1&#xff09;基本用法&#xff08;2&#xff09;JDK5前的包装类用法&#xff08;了解即可&#xff0c;能更好帮助我们理解下面的自动装箱和自动拆箱机制&#xff09;&#xff08;3&#xff09;自动装箱与自动拆箱机制 --- 导致&…

bbr 收敛动力学背后的数学原理

我进一步把 bbr 模型简化为更一般的形式。设 x 为 bbr 流的 estimated bw&#xff0c;wₓ 为 bbr 流的 inflight&#xff0c;C 为瓶颈带宽&#xff0c;R 为传播时延&#xff0c;R_s 为总时延&#xff0c;pacing_rate 增益为 g&#xff1a; I ( t ) t o t a l _ i n f l i g h …

火绒使用详解 为什么选择火绒?使用了自定义规则及其高级功能的火绒,为什么能吊打卡巴斯基,360,瑞星,惠普联想戴尔的电脑管家等?

目录 前言 必看 为什么选择火绒&#xff1f; 使用了自定义规则及其高级功能的火绒&#xff0c;为什么能吊打卡巴斯基&#xff0c;360&#xff0c;瑞星&#xff0c;惠普联想戴尔的电脑管家等&#xff1f; 原因如下&#xff1a; 火绒的主要优势 1. 轻量化设计 2. 强大的自…

CocosCreator 3.8 IOS 热更新失败问题解决方案

CocosCreator 3.8 IOS 热更新失败问题解决方案 问题描述 Creator 版本&#xff1a; 3.8.0目标平台&#xff1a; ios 模拟器/真机重现方式&#xff1a;安卓构建版本生成的热更新包&#xff0c;上传到OSS&#xff0c;使用ios进行更新。 19:18:36 [ERROR]: [ERROR] file /Applica…

自动化测试—等待方式详解

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在自动化测试中&#xff0c;等待是一个重要的技术&#xff0c;用于处理页面加载、元素定位、元素状态改变等延迟问题。 等待能够确保在条件满足后再进行后续操作…

Web前端:CSS篇(三)盒子模型,弹性盒子

CSS 盒子模型 所有HTML元素可以看作盒子&#xff0c;在CSS中&#xff0c;"box model"这一术语是用来设计和布局时使用。 CSS盒模型本质上是一个盒子&#xff0c;封装周围的HTML元素。 盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。 盒子模型的作用…

8.18 day bug

bug1 搞懂了用法和特性&#xff0c;bug自然而然就没了 Git branch -a 列出所以分支 git branch&#xff1a; 输入该命令后&#xff0c;会列出当前仓库中所有的分支。当前所在的分支会以星号(*)标记出来 gitpod /workspace/project (reset-orphan-branch|CHERRY-PICKING) $ g…

C# SolidWorks 二次开发-103.模拟库拖拽

最近躺平状态&#xff0c;所有没有更新。 为了搜索量再高一点&#xff0c;我决定让排名上升一个名次&#xff0c;今天来写一篇关于如何假装自己有个库。 如上图&#xff0c;进行一个拖拽示例&#xff0c;从自己的窗体中将文件带入solidworks中打开 或者 装配动作。与手动从文…

Jenkins汉化配置详解

Window安装构建神器Jenkins Window安装构建神器Jenkins详细教程-CSDN博客DevOps&#xff0c;CI&#xff0c;CD&#xff0c;自动化简单介绍选择其他需要和Jenkins一起安装的服务&#xff0c;点击Next。https://blog.csdn.net/qq_37237487/article/details/141299623 登录进入J…

从新手到专家必读书籍:官方推荐.NET技术体系架构指南

前言 Microsoft 官方推荐了一系列有关 .NET 体系结构的指南&#xff0c;旨在帮助开发人员掌握最新的技术和最佳实践。这些资源覆盖了从微服务架构到云原生应用开发等多个主题&#xff0c;是开发高质量 .NET 应用程序不可或缺的参考资料。 通过这些指南&#xff0c;可以深入了…

图纸操作权限守护者:彩虹图纸管理系统的权限功能详解

在产品研发设计过程中&#xff0c;图纸作为核心机密资料&#xff0c;其安全性与保密性至关重要。一旦图纸发生泄密或丢失&#xff0c;将给企业带来不可估量的损失。因此&#xff0c;图纸管理系统的权限功能成为保障数据安全的重要防线。彩虹图纸管理系统凭借其强大的权限管理功…

不同主机之间的网络通信学习

IPC 进程间通信方式 共享内存 //最高效的进程间通信方式 共享内存: 1.是一块&#xff0c;内核预留的空间 2.最高效的通信方式 //避免了用户空间 到 内核空间的数据拷贝 IPC通信方式 ---操作流程类似的 操作: system v &#xff1a; …

全面解析去中心化应用,深入了解 DApps 构建与发展,掌握区块链核心知识!

来源&#xff1a;https://cointelegraph.com/learn/what-are-dapps-everything-there-is-to-know-about-decentralized-applications 编译&#xff1a;TinTinLand 社区 关键要点 ➤ 去中心化应用程序&#xff08;DApps&#xff09;类似于人们每天使用的应用程序&#xff0c;但…

ArcGIS Pro基础:设置2个窗口同步联动界面

如上所示&#xff0c;通过1步骤&#xff0c;新建了2个地图窗口&#xff0c;得到2和3所表示的【地图1】、【地图2】&#xff0c;一个是影像图&#xff0c;另一个是地形图&#xff0c; 假如有个需求&#xff0c;是将2个窗口联动起来&#xff1a;在观察影像的同时&#xff0c;也同…

dockdaemon远程管理

1.启动和查看服务 2.查看版本 管理步骤 1.关闭docker守护进程 2.修改dock daemon的进程⽂件 发现docker 虽然关闭了&#xff0c;依然有sock⽂件 创建时间也⾮常早 进⼊配置⽂件 删除相关sock的⽂件 再次启动&#xff0c;发现有提示 3.加载配置⽂件、 4.重新开启docker守护进程、…