【开源】基于JAVA+Vue+SpringBoot的陕西非物质文化遗产网站

在这里插入图片描述


目录

  • 一、摘要
    • 1.1 项目介绍
    • 1.2 项目录屏
  • 二、功能模块
    • 2.1 设计目标
    • 2.2 研究内容
    • 2.3 研究方法与过程
      • 2.3.1 系统设计
      • 2.3.2 查阅文献
      • 2.3.3 网站分析
      • 2.3.4 网站设计
      • 2.3.5 网站实现
      • 2.3.6 系统测试与效果分析
  • 三、系统展示
  • 四、核心代码
    • 4.1 查询民间文学
    • 4.2 查询传统音乐
    • 4.3 增改传统舞蹈
    • 4.4 网页页签
    • 4.5 网页数据展示
  • 五、免责说明


一、摘要

1.1 项目介绍

基于JAVA+Vue+SpringBoot+MySQL的陕西非物质文化遗产网站,包含了陕西地市、民间文学、传统音乐、传统舞蹈、传统戏剧、传统体育模块,还包含系统自带的用户管理、部门管理、角色管理、菜单管理、日志管理、数据字典管理、文件管理、图表展示等基础模块,陕西非物质文化遗产网站基于角色的访问控制,给视频管理员、普通用户使用,可将权限精确到按钮级别,您可以自定义角色并分配权限,系统适合设计精确的权限约束需求。

1.2 项目录屏


二、功能模块

非物质文化遗产与互联网相结合,为非物质文化遗产的数字化传播提供了重要契机。作为十三朝古都的陕西省,存在着大量的工艺美术、民间传 说、音乐、礼仪等非遗资源。目前陕西的部分非遗数字化资源可以通过相关的博物馆网站浏览和欣赏,但对数量庞大的陕西非遗资源来说,目前这种分布式资源不利于用户系统化的了解陕西非遗文化。因此,构建一个陕西非物质文化遗产资源欣赏专题网站,帮助用户系统化的了解陕西非遗文化,塑造大众心目中独特的陕西文化IP形象。

2.1 设计目标

网站应主要包括后台数据库设计和前端应用程序的开发两个方面。对于前者要求研究并建立起数据一致性和完整性强、数据安全性好的数据库;后者则要求应用程序功能完备,具有界面美观、易操作、易使用等特点。

2.2 研究内容

对于非遗的分类,依据国家2021年非遗名录对非遗类型的划分,分为民间文学、传统音乐、传统舞蹈、传统戏剧、曲艺、传统体育、游艺与杂技、传统美术、传统技艺、传统医药、民俗11大类。网站的建设采用用户和管理员两大系统,用户系统可以查看网站首页、科普页、个人中心等,管理员可用户管理、系统管理,一方面方便用户了解陕西非遗文化,同时方便后台人员对于网站的管理。

2.3 研究方法与过程

2.3.1 系统设计

网站可以使用 IDEA 为主要开发者工具,使用 MySQL 为数据库开发平台,Windows10 操作系统为运行环境。前台运用 VueJavaScript 等前台布局脚本语言,后台运用 JAVA 技术进行开发。

2.3.2 查阅文献

了解陕西非物质文化遗产现状,明确基于JavaSript 建立陕西非物质文化遗产网站的意义和价值。

2.3.3 网站分析

对项目进行用户需求分析、系统功能分析、网站架构分析、网站界面分析等。

2.3.4 网站设计

进行系统结构设计、功能模块设计、数据库设计、UI界面设计等内容。

2.3.5 网站实现

软硬件环境准备、系统功能实现。

2.3.6 系统测试与效果分析

完成所有系统功能后,设计测试计划,对系统功能进行测试与效果分析。


三、系统展示

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


四、核心代码

4.1 查询民间文学

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询民间文学")
public Result<IPage<BuildingGarden>> getByPage(@ModelAttribute BuildingGarden buildingGarden ,@ModelAttribute PageVo page){
    QueryWrapper<BuildingGarden> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(buildingGarden.getTitle())) {
        qw.like("title",buildingGarden.getTitle());
    }
    if(!ZwzNullUtils.isNull(buildingGarden.getStatus())) {
        qw.eq("status",buildingGarden.getStatus());
    }
    if(!ZwzNullUtils.isNull(buildingGarden.getContent())) {
        qw.like("content",buildingGarden.getContent());
    }
    IPage<BuildingGarden> data = iBuildingGardenService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<BuildingGarden>>().setData(data);
}

4.2 查询传统音乐

@RequestMapping(value = "/getByPage", method = RequestMethod.GET)
@ApiOperation(value = "查询传统音乐")
public Result<IPage<CompetitionRegistration>> getByPage(@ModelAttribute CompetitionRegistration competitionRegistration ,@ModelAttribute PageVo page){
    QueryWrapper<CompetitionRegistration> qw = new QueryWrapper<>();
    if(!ZwzNullUtils.isNull(competitionRegistration.getTitle())) {
        qw.like("title",competitionRegistration.getTitle());
    }
    if(!ZwzNullUtils.isNull(competitionRegistration.getStatus())) {
        qw.eq("status",competitionRegistration.getStatus());
    }
    if(!ZwzNullUtils.isNull(competitionRegistration.getContent())) {
        qw.like("content",competitionRegistration.getContent());
    }
    IPage<CompetitionRegistration> data = iCompetitionRegistrationService.page(PageUtil.initMpPage(page),qw);
    return new ResultUtil<IPage<CompetitionRegistration>>().setData(data);
}

4.3 增改传统舞蹈

@RequestMapping(value = "/insertOrUpdate", method = RequestMethod.POST)
@ApiOperation(value = "增改传统舞蹈")
public Result<EducationTeaching> saveOrUpdate(EducationTeaching educationTeaching){
    User currUser = securityUtil.getCurrUser();
    educationTeaching.setUserName(currUser.getNickname());
    if(Objects.equals(0,educationTeaching.getSortOrder().compareTo(BigDecimal.ZERO))) {
        educationTeaching.setSortOrder(BigDecimal.valueOf(iEducationTeachingService.count() + 1L));
    }
    if(iEducationTeachingService.saveOrUpdate(educationTeaching)){
        return new ResultUtil<EducationTeaching>().setData(educationTeaching);
    }
    return ResultUtil.error();
}

4.4 网页页签

<div class="process">
    <div class="heng"></div>
    <span class="title1">陕西非物质文化遗产</span>
    <span class="notes">Recruitment process</span>
    <div class="processBox">
        <div class="step">
            <img class="stepImg" src="../assets/step1.png" alt="" />
            <span class="name1">陕西地市</span>
            <span class="time">陕西地市相关信息</span>
        </div>
        <div class="arrow"></div>
        <div class="step">
            <img class="stepImg" src="../assets/step2.png" alt="" />
            <span class="name1">传统音乐</span>
            <span class="time">传统音乐相关信息</span>
        </div>
        <div class="arrow"></div>
        <div class="step">
            <img class="stepImg" src="../assets/step3.png" alt="" />
            <span class="name1">传统舞蹈</span>
            <span class="time">传统舞蹈相关信息</span>
        </div>
        <div class="arrow"></div>
        <div class="step">
            <img class="stepImg" src="../assets/step4.png" alt="" />
            <span class="name1">传统戏剧</span>
            <span class="time">传统戏剧相关信息</span>
        </div>
    </div>

4.5 网页数据展示

<el-row :gutter="20" v-for="(item,index) in positionList" :key="index" style="width: 100%;margin-bottom: 20px;">
    <div class="spotCollPosDiv">NO: {{ index + 1 }}</div>
    <el-col :span="24">
        <el-row :gutter="20">
            <el-col :span="6">
                <img :src="item.image" style="width:100%" />
            </el-col>
            <el-col :span="1">
            </el-col>
            <el-col :span="17">
                <el-row :gutter="20">
                    <el-col :span="24">
                        <el-row :gutter="20" class="spanContext">
                            <span class="spanContextLabel"> 传统音乐标题:</span> {{item.title}}
                        </el-row>
                    </el-col>
                    <el-col :span="24">
                        <el-row :gutter="20" class="spanContext">
                            <span class="spanContextLabel"> 发布状态:</span> {{item.status}}
                        </el-row>
                    </el-col>
                    <el-col :span="24">
                        <el-row :gutter="20" class="spanContext">
                            <span class="spanContextLabel"> 发布人:</span> {{item.userName}}
                        </el-row>
                    </el-col>
                    <el-col :span="24">
                        <el-row :gutter="20" class="spanContext">
                            {{item.content}}
                        </el-row>
                    </el-col>
                </el-row>
            </el-col>
        </el-row>
    </el-col>
</el-row>

五、免责说明

  • 本项目仅供个人学习使用,商用授权请联系博主,否则后果自负。
  • 博主拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,拥有最终解释权。
  • 如有问题,欢迎在仓库 Issue 留言,看到后会第一时间回复,相关意见会酌情考虑,但没有一定被采纳的承诺或保证。

下载本系统代码或使用本系统的用户,必须同意以下内容,否则请勿下载!

  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和博主无关,博主对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),博主概不承担任何责任。
  4. 必须了解使用本软件的风险,博主不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

在这里插入图片描述

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

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

相关文章

代码随想录算法训练营Day46|139.单词拆分、多重背包理论基础、背包问题总结

目录 139.单词拆分 方法一&#xff1a;回溯法 算法实现 方法二&#xff1a;背包问题 算法实现 多重背包理论基础 思路 算法实现 背包问题总结 前言 背包递推公式 遍历顺序 0-1背包 完全背包 139.单词拆分 题目链接 文章链接 方法一&#xff1a;回溯法 在回溯专题…

Endnote常见设置(硕士毕业论文参考文献修改)

1、根据大多数期刊或学校使用的标准&#xff0c;英文名首字母大写后续字母小写。 2、需要手动调整Endnote中的参考文献相关内容 3、关于姓名大小写设置 AS IS是不更改大小写&#xff0c;EndNote库中文献的大小是什么样&#xff0c;Word中就显示什么样。选择Normal为首字母大…

HDMI2.1之eARC简介-Dolby Atmos和DTS:X

文章目录 eARC目的更大的带宽更高质量音频支持对象型音频与CEC&#xff08;Consumer Electronics Control&#xff09;的兼容性&#xff1a; 适应流媒体发展Dolby AtmosDTS:X高分辨率音频更高的音频位深度和采样率低延迟音频 对象型音频格式独立对象三维定位动态音场适应性和灵…

嵌入式——串行外围设备接口(SPI)

目录 一、初识SPI 1. 介绍 2. 特性 补&#xff1a; 二、物理层 1. SS &#xff08;Slave Select&#xff09; 2. SCK &#xff08;Serial Clock&#xff09; 3. MOSI &#xff08;Master Output, Slave Input&#xff09; 4. MISO &#xff08;Master Input&#xff0…

虚拟机Windows Server 2016 安装 MySQL8

目录 一、下载MySQL8 1.下载地址&#xff1a; 2.创建my.ini文件 二、安装步骤 第一步&#xff1a;命令窗口 第二步&#xff1a;切换目录 第三步&#xff1a;安装服务 第四步&#xff1a;生成临时密码 第五步&#xff1a;启动服务 第六步&#xff1a; 修改密码 三…

【Linux系统化学习】进程替换

目录 进程程序替换 替换原理 ​编辑替换函数 函数解释 命名理解 函数使用 execl execlp execv execvp 调用其它程序 进程程序替换 替换原理 用fork创建子进程后执行的是和父进程相同的程序(但有可能执行不同的代码分支),子进程往往要调用一种exec函数以执行另一个…

0203-2-输入输出系统

第六章&#xff1a;输入输出系统 I/O系统的功能&#xff0c;模型和接口 I/O系统管理的对象是I/O设备和相应的设备控制器。 I/O系统的基本功能 隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确共享错误处理 I/O软件的层次结…

重写Sylar基于协程的服务器(4、协程调度模块的设计)

重写Sylar基于协程的服务器&#xff08;4、协程调度模块的设计&#xff09; 重写Sylar基于协程的服务器系列&#xff1a; 重写Sylar基于协程的服务器&#xff08;0、搭建开发环境以及项目框架 || 下载编译简化版Sylar&#xff09; 重写Sylar基于协程的服务器&#xff08;1、日…

2.03作业

1.请编程实现单向循环链表的头插&#xff0c;头删&#xff0c;尾插&#xff0c;尾删。 2.请编程实现单向循环链表约瑟夫环 约瑟夫环&#xff1a;用循环链表编程实现约瑟夫问题 n个人围成一圈&#xff0c;&#xff0c;从某人开始报数&#xff0c;1,2&#xff0c;......,m,数到…

牛客-NC249946-小d和孤独的区间

牛客-小d和孤独的区间 题目如上 1 s 1s 1s的时间限制&#xff0c;说明我们应该找到一种“巧法” 根据提示&#xff0c;我们只需要找到“中间全部都是 0 0 0&#xff0c;只有一个1的区间”即可 但是在找的途中&#xff0c;我们不仅要顾及当前 1 1 1之前的 0 0 0的个数&#xff…

JProfiler for Mac:提升性能和诊断问题的终极工具

在当今的高性能计算和多线程应用中&#xff0c;性能优化和问题诊断是至关重要的。JProfiler for Mac 是一个强大的性能分析工具&#xff0c;旨在帮助开发者更好地理解其应用程序的运行情况&#xff0c;提升性能并快速诊断问题。 JProfiler for Mac 的主要特点包括&#xff1a;…

常见API

文章目录 Math类1.1 概述1.2 常见方法 System类2.1 概述2.2 常见方法 Runtime3.1 概述3.2 常见方法 Object类4.1 概述4.2 常见方法 Objects类5.1 概述5.2 常见方法 BigInteger类6.1 引入6.2 概述6.3 常见方法6.4 底层存储方式&#xff1a; 7 BigDecimal类7.1 引入7.2 概述7.3 常…

PAT-Apat甲级题1005(python和c++实现)

PTA | 1005 Spell It Right 1005 Spell It Right 作者 CHEN, Yue 单位 浙江大学 Given a non-negative integer N, your task is to compute the sum of all the digits of N, and output every digit of the sum in English. Input Specification: Each input file cont…

kubernetes-深入理解Pod对象:调度

一、创建一个Pod的工作流程 Pod创建流程&#xff1a; 1、kubectl 向 APIServer 发起一个 Pod 创建请求。 2、APIServer 接受到 Pod 创建请求后&#xff0c;不是直接创建 Pod&#xff0c;而是将 Pod 的数据写入 etcd 中&#xff0c;待写入操作执行完成&#xff0c;APIServer 将…

vue3 之 组合式API - setup选项

首先我们先看下setup选项的写法和执行时机 setup选项中写代码的特点 语法糖 总结 setup选项的执行时机&#xff1f; beforeCreate钩子之前 自动执行 setup写代码的特点是什么&#xff1f; 定义数据 函数 然后以对象方式return 经过语法糖的封装更简单的使用组合式API set…

mybatis-plus 3.5.1 自动填充无效问题

使用了mybatis-plus的自动填充功能,但是我debug的时候进都进不去 这是为什么? 我在新增的时候连insertFill方法都进不去 原因是,我没有在我的新增实体类上加上 fill FieldFill.INSERT 还有些问题是配置类, 没有扫描到的问题,这个网上一搜一大把 注意,这个实体类是你新增的…

BUUCTF-Real-[struts2]s2-013

struts2的标签中 <s:a> 和 <s:url> 都有一个 includeParams 属性&#xff0c;可以设置成如下值none - URL中不包含任何参数&#xff08;默认&#xff09; get - 仅包含URL中的GET参数 all - 在URL中包含GET和POST参数 当includeParamsall的时候&#xff0c;会将本次…

ep-bg-purple-dark element-plus 不生效

element-plus 官网里面的 Layout 布局中的示例&#xff0c;官方文档中添加类名 class"grid-content ep-bg-purple-dark" 有相应的样式 import element-plus/theme-chalk/index.css //默认css样式 英文 import element-plus/dist/index.css 两…

ctfshow web-76

开启环境: c?><?php $anew DirectoryIterator("glob:///*"); foreach($a as $f) {echo($f->__toString(). );} exit(0); ?> cinclude("/flagc.txt");exit(); c?><?php $anew DirectoryIterator("glob:///*"); foreach($a…

图解Java多线程设计模式

第5章Producer-Consumer模式 Producer是生产者的意思&#xff0c;指的是生成数据的线程。Consumer则是"消费者"的意思&#xff0c;指的是使用数据的线程。生产者安全地将数据交给消费者。但当虽然仅是这样看似简单的操作&#xff0c; 但当生产者和消费者以不同的线…