VUE+SPRINGBOOT+语音技术实现智能语音歌曲管理系统


语音控制歌曲的播放、暂停、增删改查




<template><div class="Music-container"><div style="margin: 10px 0"><!--检索部分--><el-input style="width: 200px;" placeholder="请输入歌曲名称"v-model="send.name"></el-input><el-input style="width: 200px;" placeholder="请输入歌曲拥有者"v-model="send.user" class="ml-10"></el-input><el-input style="width: 200px;" placeholder="请输入歌曲分类"v-model="send.category"class="ml-10"></el-input><el-button class="ml-10" type="primary" @click="selectListPage">搜索<i class="el-icon-search"></i></el-button><el-button type="warning" @click="reset">重置<i class="el-icon-refresh"></i></el-button><!--检索部分结束--><!--新增与删除--><!-- <el-button type="primary" @click="insertWindow">新增<i class="el-icon-circle-plus-outline"></i></el-button>--><el-popconfirmclass="ml-10"confirm-button-text="确定"cancel-button-text="取消"icon="el-icon-info"icon-color="red"title="确认要批量删除吗?"@confirm="confirmRemoveIdList"><el-button type="danger" slot="reference">批量删除<iclass="el-icon-remove-outline"></i></el-button></el-popconfirm><el-upload style="display: inline-block":action="'http://'+WHITE_IP+'/music/list_import'"name="multipartFile":show-file-list="false"accept="xlsx":on-success="onImportSuccess"><!-- <el-button type="primary" class="ml-10">导入<i class="el-icon-upload2"></i></el-button>--></el-upload><!-- <el-button type="primary" class="ml-10" @click="list_export">导出<i class="el-icon-download"></i></el-button>--></div><!--表格部分--><el-table :data="list" boder stripe:header-cell-style="{'text-align':'center'}":cell-style="{'text-align':'center'}"borderwidth="220"@selection-change="onSelectChange":header-cell-class-name="headerBg"><el-table-column type="selection" width="60"></el-table-column><!--选择框--><el-table-column type="index" :index="hIndex" label="序号" width="80"/><el-table-column prop="name" label="歌曲名称"></el-table-column><el-table-column prop="title" label="歌曲标题"></el-table-column><el-table-column prop="url" label="歌曲地址"></el-table-column><el-table-column prop="image" label="歌曲背景"></el-table-column><el-table-column prop="user" label="所属用户"></el-table-column><el-table-column prop="category" label="所属分类"></el-table-column><!-- <el-table-column prop="mark" label="可以使用"></el-table-column>--><el-table-column label="歌曲正常使用" width="160"><template slot-scope="scope"><el-switch v-model="scope.row.mark" active-color="#13ce66" inactive-color="#cccccc"@change="changeEnable(scope.row)"></el-switch></template></el-table-column><el-table-column label="操作" width="300"><template #default="scope"><el-button type="success" @click="updateWindow(scope.row)">编辑<iclass="el-icon-edit"></i></el-button><el-popconfirmclass="ml-10"confirm-button-text="确定"cancel-button-text="取消"icon="el-icon-info"icon-color="red"title="确认要删除吗?"@confirm="confirmDelete(scope.row.id)"><el-button type="danger" slot="reference">删除<iclass="el-icon-remove-outline"></i></el-button></el-popconfirm></template></el-table-column></el-table><!--分页部分--><div class="pd-10"><el-pagination@size-change="onSizeChange"@current-change="onCurrentChange":page-sizes="[10, 15, 20, 50]":current-page="send.currentPage":page-size="send.pageSize"layout="total, sizes, prev, pager, next, jumper":total="send.total"></el-pagination></div><!--新增或修改弹窗--><el-dialog title="歌曲详情" :visible.sync="sendFormFlag" :close-on-click-modal="false"><el-form label-width="120px" size="small"><el-form-item label="歌曲名称"><el-input v-model="sendForm.name" autocomplete="off"></el-input></el-form-item><el-form-item label="歌曲标题"><el-input v-model="sendForm.title" autocomplete="off"></el-input></el-form-item><!--角色的选择--><el-form-item label="歌曲地址"><el-input v-model="sendForm.url" autocomplete="off"></el-input></el-form-item><!----><el-form-item label="歌曲背景"><el-input v-model="sendForm.image" autocomplete="off"></el-input></el-form-item><el-form-item label="所属用户"><el-input v-model="sendForm.user" autocomplete="off"></el-input></el-form-item><el-form-item label="所属分类"><el-input v-model="sendForm.category" autocomplete="off"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button type="primary" @click="confirmInsertOrUpdate">确 定</el-button><el-button @click="sendFormFlag = false">取 消</el-button></div></el-dialog></div>
</template><script>
import {WHITE_IP} from "../../public/config";
import router from "@/js_router/router";export default {name: "Music",data() {return {WHITE_IP: WHITE_IP, // ip地址list: [], // 该页面主列表roleList: [], // 角色列表headerBg: 'headerBg',send: { // 发送数据currentPage: 1,pageSize: 10,total: 0,user: '',category: ''},sendForm: {removeIdList: []}, // 新增发送数据sendFormFlag: false, // 是否展示新增发送数据}},//------------------------created() {// 请求分页数据this.selectListPage()},methods: {changeEnable(row) {// @change自动改变了布尔值// console.log(row.enable)this.$http.post("music/music_enable", {id: row.id, mark: row.mark}).then(res => {if (res.data.code === "200") {if (row.mark) {this.$message.success('歌曲正常使用')} else {this.$message.info('歌曲无法使用')}} else {this.$message.error('操作失败,' + res.data.message)}})},hIndex(index) {// 当前页数 - 1 * 每页数据条数 + index + 1 ( index 是索引值,从0开始)return (this.send.currentPage - 1) * this.send.pageSize + index + 1},/*导入成功*/onImportSuccess() {this.$message.success("文件导入成功")this.selectListPage()},/*导出*/list_export() {window.open(`http://${WHITE_IP}/music/list_export`)},/*重置函数*/reset() {this.send.name = ''this.send.user = ''this.send.category = ''this.selectListPage()},/*当前页变化时*/onCurrentChange(currentPage) {this.send.currentPage = currentPagethis.selectListPage()},/*每页条数变化时*/onSizeChange(pageSize) {this.send.pageSize = pageSizethis.selectListPage()},/*分页查询*/selectListPage() {this.$http.post("/music/list_page", this.send).then(res => {console.log(res)if (res.data.code === "200") {this.send.total = res.data.object.totalthis.list = res.data.object.data} else {this.$message.error('查询失败,' + res.data.code)router.push("/login")}})},/*复选框变化时*/onSelectChange(val) {this.sendForm.removeIdList = val},/*确认批量删除*/confirmRemoveIdList() {if (this.sendForm.removeIdList === undefined) {return}this.sendForm.removeIdList = this.sendForm.removeIdList.map(v => v.id) // [{},{},{}] =>[1,2,3]this.$http.post("music/list_delete", this.sendForm).then(res => {if (res.data.code === "200") {this.$message.success('批量删除成功')} else {this.$message.error('批量删除失败,' + res.data.message)}this.selectListPage()})this.selectListPage()},/*确认删除*/confirmDelete(id) {this.sendForm.id = idthis.$http.post("/music/delete_admin", this.sendForm).then(res => {if (res.data.code === "200") {this.$message.success('删除成功')} else {this.$message.error('删除失败,' + res.data.message)}this.selectListPage()})},/*修改窗口*/updateWindow(row) {this.sendFormFlag = truethis.sendForm = JSON.parse(JSON.stringify(row))},/*确认新增或修改*/confirmInsertOrUpdate() {this.sendFormFlag = falsethis.$http.post("/music/insertOrUpdate", this.sendForm).then(res => {console.log(res.data)if (res.data.code === "200") {this.$message.success('保存成功')} else {this.$message.error('保存失败,' + res.data.message)}this.selectListPage()})},/*新增窗口*/insertWindow() {this.sendFormFlag = truethis.sendForm = {} // 初始化新增空白表单},}
}
</script><style scoped>
</style>
相关文章:
VUE+SPRINGBOOT+语音技术实现智能语音歌曲管理系统
语音控制歌曲的播放、暂停、增删改查 <template><div class"Music-container"><div style"margin: 10px 0"><!--检索部分--><el-input style"width: 200px;" placeholder"请输入歌曲名称"v-model"sen…...
使用 SignalR 在 .NET Core 8 最小 API 中构建实时通知
示例代码:https://download.csdn.net/download/hefeng_aspnet/90448094 介绍 构建实时应用程序已成为现代 Web 开发中必不可少的部分,尤其是对于通知、聊天系统和实时更新等功能。SignalR 是 ASP.NET 的一个强大库,可实现服务器端代码和客户…...
Kotlin 集合函数:map 和 first 的使用场景
Kotlin 提供了丰富的集合操作函数,使开发者可以更加简洁、高效地处理数据。其中,map 和 first 是两个常用的函数,分别用于转换集合和获取集合中的第一个元素。 1. map 的使用场景 场景 1:对象列表转换 在开发中,我们…...
Spring Cloud 框架为什么能处理高并发
Spring Cloud框架能够有效处理高并发场景,核心在于其微服务架构设计及多组件的协同作用,具体机制如下: 一、分布式架构设计支撑高扩展性 服务拆分与集群部署 Spring Cloud通过微服务拆分将单体系统解耦为独立子服务,每个服务可独…...
【Python爬虫高级技巧】BeautifulSoup高级教程:数据抓取、性能调优、反爬策略,全方位提升爬虫技能!
大家好,我是唐叔!上期我们聊了 BeautifulSoup的基础用法 ,今天带来进阶篇。我将分享爬虫老司机总结的BeautifulSoup高阶技巧,以及那些官方文档里不会告诉你的实战经验! 文章目录 一、BeautifulSoup性能优化技巧1. 解析…...
复古未来主义屏幕辉光像素化显示器反乌托邦效果PS(PSD)设计模板样机 Analog Retro-Futuristic Monitor Effect
这款模拟复古未来主义显示器效果直接取材于 90 年代赛博朋克电影中的黑客巢穴,将粗糙的屏幕辉光和像素化的魅力强势回归。它精准地模仿了老式阴极射线管显示器,能将任何图像变成故障频出的监控画面或高风险的指挥中心用户界面。和……在一起 2 个完全可编…...
Spring Boot + MySQL + MyBatis(注解和XML配置两种方式)集成Redis的完整启用及配置详解,包含代码示例、注释说明和表格总结
以下是 Spring Boot MySQL MyBatis(注解和XML配置两种方式)集成Redis的完整启用及配置详解,包含代码示例、注释说明和表格总结: 1. 添加依赖 在pom.xml中添加Spring Boot对MySQL、MyBatis和Redis的支持依赖: <d…...
Webpack vs Vite:现代前端构建工具的巅峰对决与选型指南
构建工具的进化革命当雪碧瓶上的水珠折射出前端工程的变迁史,Webpack与Vite的决战已然成为现代前端开发的分水岭。这场始于打包理念的革命,正在重塑整个前端生态的底层逻辑。本文将从原理架构、性能表现、开发体验三个维度,结合真实项目数据对…...
2023-2024总结记录
概括经历 这一年算是一个人生节点,2023年花了一整年的时间在准备考研,基本上等于一个人奋战,我不怎么去图书馆,只呆在无人的实验室,还好有对象陪我,不然可能要抑郁了。作息上还是很随意,什么时…...
技术驱动革新,强力巨彩LED软模组助力创意显示
随着LED显示技术的不断突破,LED软模组因其独特的柔性特质和个性化显示效果,正逐渐成为各类应用场景的新宠。强力巨彩软模组R3.0H系列具备独特的可塑造型能力与技术创新,为商业展示、数字艺术、建筑装饰等领域开辟全新视觉表达空间。 LED…...
Spring 核心技术解析【纯干货版】- XVIII:Spring 网络模块 Spring-WebSocket 模块精讲
在现代 Web 开发中,实时通信已成为提升用户体验的关键技术之一。传统的 HTTP 轮询方式存在较高的延迟和带宽开销,而 WebSocket 作为一种全双工通信协议,能够在客户端和服务器之间建立持久连接,实现高效的双向数据传输。 Spring 框…...
Spark,HDFS概述
HDFS组成构架: 注: NameNode(nn):就是 Master,它是一个主管、管理者。 (1) 管理 HDFS 的名称空间; (2) 配置副本策略。记录某些文件应该保持几个副本; (3) 管理数据块(…...
【数据结构】图论进阶:生成树、生成森林与权值网络的终极解析
图的基本概念 导读一、图中的树与森林1.1 生成树与生成森林1.1.1 生成树1.1.2 生成森林1.1.3 生成树、生成森林与连通分量结点的关系边的关系 1.2 有向图中的树与森林1.2.1 有向树与有向森林1.2.2 生产有向树与生成有向森林1.2.3 有向树与生成有向树的区别1.2.4 有向森林与生成…...
C和C++(list)的链表初步
链表是构建其他复杂数据结构的基础,如栈、队列、图和哈希表等。通过对链表进行适当的扩展和修改,可以实现这些数据结构的功能。想学算法,数据结构,不会链表是万万不行的。这篇笔记是一名小白在学习时整理的。 C语言 链表部分 …...
深入浅出 TypeScript 泛型:类型安全的艺术与实践
文章目录 一、泛型的核心概念1.1 类型参数:代码中的类型变量1.2 类型推断:让代码保持简洁 二、泛型的四大应用场景2.1 泛型函数:打造通用工具库2.2 泛型接口:定义灵活的数据结构2.3 泛型类:构建类型安全的容器2.4 泛型…...
【KWDB创作者计划】_KaiwuDB 2.1.0 单节点裸机部署
大家好,这里是 DBA学习之路,专注于提升数据库运维效率。 目录 前言KWDB 介绍安装准备环境信息配置要求操作系统软件依赖端口要求安装包下载 部署 KWDB简单实用连接数据库创建数据库创建用户创建时序表 前言 今天无意间在墨天轮看到一个征文活动 征文大赛…...
洛谷题单3-P5720 【深基4.例4】一尺之棰-python-流程图重构
题目描述 《庄子》中说到,“一尺之棰,日取其半,万世不竭”。第一天有一根长度为 a a a 的木棍,从第二天开始,每天都要将这根木棍锯掉一半(每次除 2 2 2,向下取整)。第几天的时候木…...
前端快速入门学习3——CSS介绍与选择器
1.概述 CSS全名是cascading style sheets,中文名层叠样式表。 用于定义网页样式和布局的样式表语言。 通过 CSS,你可以指定页面中各个元素的颜色、字体、大小、间距、边框、背景等样式,从而实现更精确的页面设计。 HTML与CSS的关系:HTML相当…...
Redash:一个开源的数据查询与可视化工具
Redash 是一款免费开源的数据可视化与协作工具,可以帮助用户快速连接数据源、编写查询、生成图表并构建交互式仪表盘。它简化了数据探索和共享的过程,尤其适合需要团队协作的数据分析场景。 数据源 Redash 支持各种 SQL、NoSQL、大数据和 API 数据源&am…...
嵌入式Linux驱动—— 1 GPIO配置
目录 1.GPIO操作 1.1 IO命名 1.2 GPIO 时钟使能(CCM) 1.3 IO 复用(IOMUXC) 1.4 IO 配置 1.5 GPIO 配置 1.GPIO操作 GPIO操作主要是以下流程: 使能某组GPIO模块(GPIO1、2、...)&#…...
[ICLR 2025]Biologically Plausible Brain Graph Transformer
论文网址:Biologically Plausible Brain Graph Transformer 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 …...
SpringBoot+MyBatis Plus+PageHelper+vue+mysql 实现用户信息增删改查功能
静态资源展示 (1)静态资源下载 (2)下载后文件放到resources/static 目录下 (3) main函数启动项目访问对应文件,http://127.0.0.1:8080/user-list.html 数据库添加表和数据 SET FOREIGN_KEY_CHECKS0;-- --------…...
企业常用Linux服务搭建
1.需要两台centos 7服务器,一台部署DNS服务器,另一台部署ftp和Samba服务器。 2. 部署DNS 服务器 #!/bin/bash# 更新系统 echo "更新系统..." sudo yum update -y# 安装 BIND 和相关工具 echo "安装 BIND 和相关工具..." sudo y…...
Qwen-7B-Chat 本地化部署使用
通义千问 简介 通义千问是阿里云推出的超大规模语言模型,以下是其优缺点: 优点 强大的基础能力:具备语义理解与抽取、闲聊、上下文对话、生成与创作、知识与百科、代码、逻辑与推理、计算、角色扮演等多种能力。可以续写小说、编写邮件、解…...
QGIS获取建筑矢量图-Able Software R2V
1.QGIS截图 说明:加载天地图矢量图层,然后进行截图。 2.Able Software R2V 说明:Able Software R2V 是一款将光栅图像(如扫描图纸、航拍照片)自动转换为矢量图形(如DXF格式)的软件&a…...
CSS:换行与不换行
一、CSS 不允许换行 在 CSS 中,有几种方法可以控制文本不换行: 1. 使用 white-space 属性 .no-wrap {white-space: nowrap; } white-space: nowrap; 会强制文本在一行显示,不换行。 2. 使用 overflow 和 text-overflow 通常与 white-sp…...
【MiniMind】不能全局用 `pip install --upgrade pip`
Q:WARNING: Running pip as the ‘root’ user can result in broken permissions and conflicting behaviour with the system package manager, possibly rendering your system unusable. It is recommended to use a virtual environment instead: https://pip.…...
form实现pdf文件转换成jpg文件
说明: 我希望将pdf文件转换成jpg文件 请去下载并安装 Ghostscript,gs10050w64.exe 配置环境变量:D:\Program Files\gs\gs10.05.0\bin 本地pdf路径:C:\Users\wangrusheng\Documents\name.pdf 输出文件目录:C:\Users\wan…...
STM32单片机入门学习——第13节: [6-1] TIM定时中断
写这个文章是用来学习的,记录一下我的学习过程。希望我能一直坚持下去,我只是一个小白,只是想好好学习,我知道这会很难,但我还是想去做! 本文写于:2025.04.04 STM32开发板学习——第13节: [6-1] TIM定时中断 前言开发板说明引用解答和科普一…...
量子纠错码实战:从Shor码到表面码
引言:量子纠错的必要性 量子比特的脆弱性导致其易受退相干和噪声影响,单量子门错误率通常在10⁻~10⁻量级。量子纠错码(QEC)通过冗余编码测量校正的机制,将逻辑量子比特的错误率降低到可容忍水平。本文从首个量子纠错…...
