VUE.js

后端:

BookMapper:

<select id="selectBybookname" resultMap="BaseResultMap" parameterType="java.lang.String" >
  select
  <include refid="Base_Column_List" />
  from t_book
  <where>
    <if test="bookname != null and bookname !=''">
      and bookname like CONCAT('%',#{bookname},'%')
    </if>
  </where>
</select>
List<Book> selectBybookname(@Param("bookname") String book);

BookService:

package com.zking.ssm.service;

import com.zking.ssm.model.Book;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface BookService {
    int insertSelective(Book record);

    List<Book> selectBybookname(String bookname);
}

BookController:

package com.zking.ssm.controller;

import com.zking.ssm.model.Book;
import com.zking.ssm.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/book")
public class BookController {
    @Autowired
    private BookService bookService;
    @RequestMapping("/list")
        public Map list(Book book){
        List<Book> books = this.bookService.selectBybookname(book.getBookname());
        Map map = new HashMap();
        map.put("code",200);
        map.put("data",books);
        return map;
    }

    @RequestMapping("/save")
    public Map add(Book book){
        int i = this.bookService.insertSelective(book);
        Map map = new HashMap();
        map.put("code",200);
        map.put("data",i > 0 ? "成功" : "失败");
        return map;
    }

}

BookServiceImpl:

package com.zking.ssm.service.impl;

import com.zking.ssm.mapper.BookMapper;
import com.zking.ssm.model.Book;
import com.zking.ssm.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper bookMapper;
    @Override
    public int insertSelective(Book record) {
        return bookMapper.insertSelective(record);
    }

    @Override
    public List<Book> selectBybookname(String bookname) {
        return bookMapper.selectBybookname(bookname);
    }
}

前端:

<template>
  <div>
    <h1 align="center">SSM阶段机试,ts={
  {ts}}</h1>
    <!-- 弹出层 -->
    <el-dialog title="书籍新增" :visible.sync="dialogFormVisible">
      <el-form :model="form" :rules="rules" ref="form">
        <el-form-item label="书籍名称" :label-width="formLabelWidth" prop="bookname">
          <el-input v-model="form.bookname" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="书籍价格" :label-width="formLabelWidth" prop="price">
          <el-input v-model="form.price" autocomplete="off"></el-input>
        </el-form-item>
        <el-form-item label="书籍类别" :label-width="formLabelWidth" prop="booktype">
          <el-select v-model="form.booktype" placeholder="请选择书籍类别">
            <el-option label="神话" value="神话"></el-option>
            <el-option label="历史" value="历史"></el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="add">确 定</el-button>
      </div>
    </el-dialog>
    <!-- 搜索框 -->
    <el-form :inline="true" class="demo-form-inline">
      <el-form-item label="书籍名称">
        <el-input v-model="bookname" placeholder="请输入书籍名称"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit">查询</el-button>
        <el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
      </el-form-item>
    </el-form>
    <!-- 表格 -->
    <el-table :data="tableData" stripe style="width: 100%">
      <el-table-column prop="bookname" label="书籍名称" width="590">
      </el-table-column>
      <el-table-column prop="price" label="书籍价格" width="590">
      </el-table-column>
      <el-table-column prop="booktype" label="书籍类别">
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
  export default {
    data: function() {
      return {
        ts: new Date().getTime(),
        tableData: [],
        dialogFormVisible: false,
        bookname: '',
        form: {
          bookname: '',
          price: '',
          booktype: ''
        },
        formLabelWidth: '120px',
        rules: {
          bookname: [{
            required: true,
            message: '请输入书籍名称',
            trigger: 'blur'
          }],
          price: [{
            required: true,
            message: '请输入书籍价格',
            trigger: 'blur'
          }],
          booktype: [{
            required: true,
            message: '请选择书籍类别',
            trigger: 'change'
          }]
        }
      };
    },
    methods: {
      list(param) {
        let url = this.axios.urls.LIST;
        this.axios.post(url, param).then(res => {
          this.tableData = res.data.data;
        });
      },
      onSubmit() {
        let param = {
          bookname: this.bookname
        };
        this.list(param);
      },
      add() {
        this.$refs['form'].validate((valid) => {
          if (valid) {
            let url = this.axios.urls.SAVE;
            this.axios.post(url, this.form).then(res => {
              let code = res.data.code;
              if (code == 200) {
                this.dialogFormVisible = false;
                this.list();
              } else {
                console.error('添加失败');
              }
            });
          } else {
            console.log('error submit!!');
            return false;
          }
        });
      }
    },
    created() {
      this.list();
    }
  };
</script>
<style>
</style>

相关推荐

  1. vue引入vuex

    2023-12-08 10:10:03       40 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-08 10:10:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-08 10:10:03       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-08 10:10:03       82 阅读
  4. Python语言-面向对象

    2023-12-08 10:10:03       91 阅读

热门阅读

  1. 移除、混淆静态库中多余的符号(待续)

    2023-12-08 10:10:03       60 阅读
  2. 九、C#笔记

    2023-12-08 10:10:03       47 阅读
  3. Docker创建RocketMQ和RocketMQ控制台

    2023-12-08 10:10:03       62 阅读
  4. CEPH搭建

    2023-12-08 10:10:03       57 阅读
  5. 【Docker】安装Jenkins 亲测 傻瓜式安装

    2023-12-08 10:10:03       62 阅读
  6. 苍穹外卖项目(黑马)学习笔记

    2023-12-08 10:10:03       448 阅读
  7. 面试经典150题(3-4)

    2023-12-08 10:10:03       66 阅读
  8. Linux环境变量export命令笔记231207

    2023-12-08 10:10:03       70 阅读
  9. HttpURLConnection OOM问题记录

    2023-12-08 10:10:03       70 阅读
  10. ChatGPT(INSCODE AI 创作助手自动创作的)

    2023-12-08 10:10:03       102 阅读
  11. stm32中滴答定时器与普通定时器的区别

    2023-12-08 10:10:03       63 阅读
  12. 基于微信小程序的智慧校园导航系统研究

    2023-12-08 10:10:03       65 阅读