Springboot+MybatisPlus+layui簡易賬單管理項目

1.項目整體效果如下:
在這裏插入圖片描述
2.數據庫設計:
表一:
在這裏插入圖片描述
表二:
在這裏插入圖片描述
3.搭建項目
在這裏插入圖片描述
查詢所有賬單接口
在這裏插入圖片描述
查詢所有賬單的實現類
在這裏插入圖片描述
在這裏插入圖片描述
前段控制器

import java.util.HashMap;
import java.util.Map;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.dubbo.config.annotation.Reference;
import com.sxt.service.IBillsService;
import com.sxt.utils.DataGridView;
import com.sxt.vo.BillsVo;

/**

  • 前端控制器

  • @author DPF

  • @since 2019-09-04
    */
    @Controller
    @RequestMapping("/bills")
    public class BillsController {

    @Reference
    private IBillsService billService;

    /**

    • 跳轉到頁面
      */
      @RequestMapping(“toIndex”)
      public String toIndex() {
      return “index”;
      }

    /**

    • 加載所有的數據
      */
      @RequestMapping(“loadAllBills”)
      @ResponseBody
      public DataGridView loadAllBills(BillsVo billsVo) {
      return this.billService.queryAllBills(billsVo);
      }

    /**

    • 添加賬單
      */
      @RequestMapping(“addBill”)
      @ResponseBody
      public Map<String, Object> addBill(BillsVo billsVo) {
      Map<String, Object> map =new HashMap<>();
      Integer code =0;
      String msg=“添加成功”;
      try {
      this.billService.save(billsVo);
      } catch (Exception e) {
      e.printStackTrace();
      code=-1;
      msg=“添加失敗”;
      }
      map.put(“code”, code);
      map.put(“msg”, msg);
      return map;
      }
      }

import java.util.List;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.alibaba.dubbo.config.annotation.Reference;
import com.sxt.domain.Billtype;
import com.sxt.service.IBilltypeService;

/**

  • 前端控制器

  • @author DPF

  • @since 2019-09-04
    */
    @Controller
    @RequestMapping("/billtype")
    public class BilltypeController {

    @Reference
    private IBilltypeService billtypeService;
    /**

    • 查詢所有的賬單類型
      */
      @RequestMapping(“loadAllBillType”)
      @ResponseBody
      public List loadAllBillType(){
      return this.billtypeService.list();
      }
      }

主頁面

所有賬單

記賬管理

查詢 重置 添加
<!-- 數據表格開始 -->
<table class="layui-hide" id="billTable" lay-filter="billTable"></table>

<!-- 添加和修改的彈出層開始 -->
<div style="display: none;padding: 20px" id="saveOrUpdateDiv" >
	<form class="layui-form"  lay-filter="dataFrm" id="dataFrm">
		<div class="layui-form-item">
			<label class="layui-form-label">收支類型:</label>
			<div class="layui-input-block" id="radio_typeid">
		</div>
		<div class="layui-form-item">
			<label class="layui-form-label">標題:</label>
			<div class="layui-input-block">
				 <input class="layui-input" name="title" lay-verify="required"  />
			</div>
		</div>
		<div class="layui-form-item">
		<div class="layui-inline">
			<label class="layui-form-label">時間</label>
			<div class="layui-input-inline">
				<input type="text" name="billtime" id="billtime"
					readonly="readonly" placeholder="yyyy-MM-dd HH:mm:ss"
					autocomplete="off" class="layui-input">
			</div>
		</div>
		<div class="layui-inline">
			<label class="layui-form-label">金額</label>
			<div class="layui-input-inline">
				<input type="text" name="price" lay-verify="number"
					autocomplete="off"
					class="layui-input">
			</div>
		</div>
		</div>
		<div class="layui-form-item">
			<label class="layui-form-label">說明:</label>
			<div class="layui-input-block">
				 <textarea class="layui-textarea" name="remark" lay-verify="content"></textarea>
			</div>
		</div>
		<div class="layui-form-item" style="text-align: center;">
		    <div class="layui-input-block">
		      <button type="button" class="layui-btn layui-btn-normal layui-btn-sm layui-icon layui-icon-release" lay-filter="doSubmit" lay-submit="">提交</button>
		      <button type="reset" id="dataFrmResetBtn" class="layui-btn layui-btn-warm layui-btn-sm layui-icon layui-icon-refresh" >重置</button>
		    </div>
	  	</div>
	</form>

</div>
<!-- 添加和修改的彈出層結束 -->


<script type="text/javascript" src="/resources/layui/layui.js"></script>

<script type="text/javascript">
  layui.use([ 'jquery', 'layer', 'form', 'table','laydate' ], function() {
		var $ = layui.jquery;
		var layer = layui.layer;
		var form = layui.form;
		var table = layui.table;
		var laydate=layui.laydate;
		//渲染時間
		laydate.render({
			elem:'#startTime',
			type:'datetime'
		});
		laydate.render({
			elem:'#endTime',
			type:'datetime'
		});
		laydate.render({
			elem:'#billtime',
			type:'datetime'
		});
		
	//初始化查詢條件和添加的類型
	$.get("/billtype/loadAllBillType",function(obj){
		var typeidDom=$("#typeid");
		var radio_typeid=$("#radio_typeid");
		var html="<option value=''>請選擇類型</option>"
		var radioHtml="";
		$.each(obj,function(index,item){
			html+="<option value="+item.id+">"+item.name+"</option>";
			radioHtml+='<input type="radio" name="typeid" value='+item.id+' title='+item.name+'>';
		});
		typeidDom.html(html);
		radio_typeid.html(radioHtml);
		form.render("select");
		form.render("radio");
	})

		
		//渲染數據表格
		var tableIns=table.render({
			 elem: '#billTable'   //渲染的目標對象
		    ,url:'/bills/loadAllBills' //數據接口
		    ,title: '賬單數據'//數據導出來的標題
		    ,height:'full-200'
		    ,cellMinWidth:100 //設置列的最小默認寬度
		    ,page: true  //是否啓用分頁
		    ,cols: [ [   //列表數據
		      {field:'id', title:'ID',align:'center'}
		      ,{field:'title', title:'標題',align:'center'}
		      ,{field:'typename', title:'類型',align:'center'} 
		      ,{field:'billtime', title:'記錄時間',align:'center'}
		      ,{field:'price', title:'金額',align:'center'}
		      ,{field:'remark', title:'備註',align:'center'}
		    ] ]
		});
		
		//模糊查詢
		$("#doSearch").click(function(){
			var params=$("#searchFrm").serialize();
			tableIns.reload({
				url:"/bills/loadAllBills?"+params,
				page:{curr:1}
			})
		});
		$("#addBill").click(function(){
			openAddBill();
		});
		var url;
		var mainIndex;
		//打開添加頁面
		function openAddBill(){
			mainIndex=layer.open({
				type:1,
				title:'添加賬單',
				content:$("#saveOrUpdateDiv"),
				area:['800px','550px'],
				success:function(index){
					//清空表單數據       
					$("#dataFrm")[0].reset();
					form.val("dataFrm",{typeid:1});
					url="/bills/addBill";
				}
			});
		}
		//保存
		form.on("submit(doSubmit)",function(obj){
			//序列化表單數據
			var params=$("#dataFrm").serialize();
			$.post(url,params,function(obj){
				layer.msg(obj.msg);
				//關閉彈出層
				layer.close(mainIndex)
				//刷新數據 表格
				tableIns.reload();
			})
		});
		
  });
</script>

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章