uniapp+springboot实现知识点显示

简介: uniapp+springboot实现知识点显示

uniapp+springboot实现知识点显示

简介

本文讲解结合uniapp,原生组件,制作一个知识点显示的系统,包含增删改查。

数据库

-- ----------------------------
-- Table structure for middle_school_chemistry_knowledge
-- ----------------------------
DROP TABLE IF EXISTS `middle_school_chemistry_knowledge`;
CREATE TABLE `middle_school_chemistry_knowledge`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `knowledge_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `knowledge_description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 11 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = DYNAMIC;
-- ----------------------------
-- Records of middle_school_chemistry_knowledge
-- ----------------------------
INSERT INTO `middle_school_chemistry_knowledge` VALUES (1, '化学元素', '元素的定义、分类和性质,包括原子结构和周期律等');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (2, '化学反应', '化学反应的基本概念、类型及其表示方法');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (3, '离子反应', '酸碱中离子反应的原理和应用');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (4, '氧化还原反应', '氧化还原反应的原理、判定方法和应用');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (5, '化学键', '共价键、离子键、金属键等化学键的组成、性质及其在化学反应中的应用');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (6, '物质的结构与性质', '物质的结构对其性质的影响,如晶体的构造和性质等');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (7, '常见物质的性质与用途', '常见物质的物理性质、化学性质及其在生产和日常生活中的应用');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (8, '化学式与化合价', '离子化合物、分子化合物的化学式及其相应的化合价');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (9, '物质的变化与能量', '化学反应中能量的变化,如热化学反应等');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (10, '化学实验基本操作', '化学实验中常见的基本操作和实验室安全知识');
INSERT INTO `middle_school_chemistry_knowledge` VALUES (11, '物质的变化与能量', '化学反应中能量的变化,如热化学反应等');

后端代码

项目结构

Bean

Result
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
    /**
     * 状态码,0表示成功,其他表示失败
     */
    private int code;
    /**
     * 提示信息
     */
    private String message;
    /**
     * 返回的数据
     */
    private T data;
    /**
     * 成功时的构造函数
     *
     * @param data 数据
     */
    public Result(T data) {
        this.code = 0;
        this.message = "success";
        this.data = data;
    }
    public Result(T data, Boolean success, String message) {
        if (success) {
            this.code = 0;
            this.message = "success";
        } else {
            this.code = 1;
            this.message = message;
        }
        this.data = data;
    }
    /**
     * 失败时的构造函数
     *
     * @param code    状态码
     * @param message 提示信息
     */
    public Result(int code, String message) {
        this.code = code;
        this.message = message;
        this.data = null;
    }
}
ChemistryKnowledge
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@Data
@TableName("middle_school_chemistry_knowledge")
public class ChemistryKnowledge {
    @TableId
    private Integer id;
    private String knowledgeName;
    private String knowledgeDescription;
}

Mapper

ChemistryKnowledgeMapper
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.example.ssmc.Bean.ChemistryKnowledge;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ChemistryKnowledgeMapper extends BaseMapper<ChemistryKnowledge> {
}

Service

ChemistryKnowledgeService
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.ssmc.Bean.ChemistryKnowledge;
public interface ChemistryKnowledgeService extends IService<ChemistryKnowledge> {
}

Impl

ChemistryKnowledgeServiceImpl
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.ssmc.Bean.ChemistryKnowledge;
import com.example.ssmc.Mapper.ChemistryKnowledgeMapper;
import com.example.ssmc.Service.ChemistryKnowledgeService;
import org.springframework.stereotype.Service;
@Service
public class ChemistryKnowledgeServiceImpl extends ServiceImpl<ChemistryKnowledgeMapper, ChemistryKnowledge> implements ChemistryKnowledgeService {
}

前端代码

项目结构

效果展示

制作了显示效果,删除效果,添加效果。

完整代码

<template>
  <view class="container">
    <uni-card :is-shadow="false" is-full>
      <text class="uni-h6">知识点复习</text>
    </uni-card>
    <div v-for="(point, i) in points" :key="i">
      </br>
      <uni-section :title="point.knowledgeName" type="line">
        <uni-card :is-shadow="false">
          <text class="uni-body">{{point.knowledgeDescription}}</text>
        </uni-card>
        <button class="mini-btn center" type="warn" size="mini" @click="deletePoint(point.id)">按钮</button>
      </uni-section>
    </div>
    <div style="display:flex;">
      <v-btn fab class="floating-button" color="#2196F3" @click="$refs.inputDialog.open()">
        <span class="btn-text">+</span>
      </v-btn>
    </div>
    <view>
      <!-- 输入框示例 -->
      <uni-popup ref="inputDialog" type="dialog">
        <uni-popup-dialog ref="inputClose" mode="confirm"  title="添加新的知识点"
          placeholder="请填写知识点名称和描述" @confirm="submitForm">
          <input class="uni-input" focus placeholder="知识点名称" v-model="knowledgeName"></input>
          <br>
          <input class="uni-input" focus placeholder="知识点描述" v-model="knowledgeDescription"></input>
        </uni-popup-dialog>
      </uni-popup>
    </view>
  </view>
</template>
<script>
import axios from 'axios';
  export default {
    data() {
      return {
        points:[],
        formVisible: false,
          knowledgeName: '',
          knowledgeDescription: ''
      }
    },
    methods: {
        submitForm() {
            const url = 'http://localhost:8081/knowledge/';
            const data = {
                knowledgeName: this.knowledgeName,
                knowledgeDescription: this.knowledgeDescription
            };
            axios({
                method: 'post',
                url: url,
                data: data,
            }).then((response) => {
                console.log(response);
                this.$refs.inputClose.close();
                // 刷新表格数据或者其他动作
                location.reload();
            }).catch((error) => {
                console.error(error);
            });
        },
        deletePoint(id){
                axios.delete(`api/knowledge/${id}`).then((response) => {
                    console.log(response)
                    // 刷新表格数据或者其他动作
                    location.reload();
                }).catch((error) => {
                    console.error(error);
                });
            }
    },
    mounted(){
      let _this = this;
      axios.get("api/knowledge/").then(res =>{
        _this.points = res.data
        console.log(this.points)
      })
    }
  }
</script>
<style>
.warp {
    padding: 10px;
  }
.button {
  margin-bottom: 10px;
}
.floating-button {
  border: 2px solid #2196F3;
  position: fixed;
  bottom: 24px;
  left: 24px;
  border-radius: 50%;
  width: 60px;
  height: 60px;
}
.btn-text {
  margin-top: 5%;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 50px;
  line-height: 1;
}
.center {
  display: flex;
  justify-content: center;
  align-items: center;
}
</style>
相关文章
|
4月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
115 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
4月前
|
小程序 前端开发 JavaScript
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
【避坑宝】是一款企业黑红名单吐槽小程序,旨在帮助打工人群体辨别企业优劣。该平台采用SpringBoot+MybatisPlus+uniapp+uview2等技术栈构建,具备丰富的注释与简洁的代码结构,非常适合实战练习与学习。通过小程序搜索“避坑宝”即可体验。
114 0
【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序
|
4月前
|
缓存 前端开发 小程序
SpringBoot+uniapp实现网页授权获取用户基本信息
本文详细介绍了微信网页授权登录的实现过程,作者原本计划在一个项目中使用该功能,但由于公众号未认证而放弃。文中分享了如何通过测试公众号实现网页授权并获取用户基本信息,包括配置授权回调域名、获取access_token及刷新等步骤。适合初次接触或希望回顾此流程的读者。此外,还提供了常见错误解决方案,强调了正确配置回调域名的重要性,并提醒避免重复使用已失效的code。通过本文,读者可以更好地理解和应用微信网页授权。
66 0
SpringBoot+uniapp实现网页授权获取用户基本信息
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
135 7
基于SpringBoot+Vue+uniapp的房屋租赁App的详细设计和实现(源码+lw+部署文档+讲解等)
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的武汉市公交路线查询系统的详细设计和实现(源码+lw+部署文档+讲解等)
121 7
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的旅游攻略系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的旅游攻略系统的详细设计和实现(源码+lw+部署文档+讲解等)
122 7
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的公园管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的公园管理系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
2月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 实现动态路由和菜单功能,快速搭建前后端分离的应用框架。首先,确保开发环境已安装必要的工具,然后创建并配置 Spring Boot 项目,包括添加依赖和配置 Spring Security。接着,创建后端 API 和前端项目,配置动态路由和菜单。最后,运行项目并分享实践心得,包括版本兼容性、安全性、性能调优等方面。
173 1
|
1月前
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
111 62
|
4天前
|
存储 JavaScript 前端开发
基于 SpringBoot 和 Vue 开发校园点餐订餐外卖跑腿Java源码
一个非常实用的校园外卖系统,基于 SpringBoot 和 Vue 的开发。这一系统源于黑马的外卖案例项目 经过站长的进一步改进和优化,提供了更丰富的功能和更高的可用性。 这个项目的架构设计非常有趣。虽然它采用了SpringBoot和Vue的组合,但并不是一个完全分离的项目。 前端视图通过JS的方式引入了Vue和Element UI,既能利用Vue的快速开发优势,
39 13

热门文章

最新文章