Layui 2.8.18-rc.1 table 外部搜索 前端+后端 用 Node.js+express+Mysql

前端(根据ID编号搜索):

点1,就搜索出ID 是1,不填就空着点搜索全部数据

前端代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Demo</title>
  <!-- 请勿在项目正式环境中引用该 layui.css 地址 -->
  <link href="./layui/css/layui.css" rel="stylesheet">
</head>
<body class="layui-fluid" style="padding-top: 20px;">
<form class="layui-form layui-row layui-col-space16">
  <div class="layui-col-md4">
    <div class="layui-input-wrap">
      <div class="layui-input-prefix">
        <i class="layui-icon layui-icon-username"></i>
      </div>
      <input type="text" name="id" value="" placeholder="请输入搜索内容" class="layui-input" lay-affix="clear">
    </div>
  </div>
  
  <div class="layui-btn-container layui-col-xs12">
    <button class="layui-btn" lay-submit lay-filter="demo-table-search">搜索</button>
    <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  </div>
</form>
<table class="layui-hide" id="ID-table-demo-search"></table>
  
<!-- 请勿在项目正式环境中引用该 layui.js 地址 -->
<script src="./layui/layui.js"></script>
<script>
layui.use(function(){
  var table = layui.table;
  var form = layui.form;
  var laydate = layui.laydate;
  // 创建表格实例
  table.render({
    elem: '#ID-table-demo-search',
    url: '/byId', // 此处为静态模拟数据,实际使用时需换成真实接口
    cols: [[
      {
      		checkbox: true,
      		fixed: true
      	},
      	{
      		field: 'id',
      		title: '编号',
      		width: 80,
      		fixed: 'left',
      		totalRowText: '合计:'
      	},
      	{
      		field: 'name',
      		title: '商品名称',
      		width: 150
      	},
      	{
      		field: 'dw',
      		title: '单位'
      	},
      	{
      		field: 'sl',
      		title: '数量',
      		totalRow: true
      	},
      	{
      		field: 'dj',
      		title: '单价'
      	},
      	{
      		field: 'img',
      		title: '图片',
      		templet: '<div><img src="{
   
   {= d.img}}" height="100%"></div>'
      	},
      	{
      		field: 'bdate',
      		title: '日期'
      	}
    ]],
    page: true,
    height: 310
  });
  // 日期
  laydate.render({
    elem: '.demo-table-search-date'
  });
  // 搜索提交
  form.on('submit(demo-table-search)', function(data){
    var field = data.field; // 获得表单字段
    // 执行搜索重载
    table.reload('ID-table-demo-search', {
      page: {
        curr: 1 // 重新从第 1 页开始
      },
	  url: '/byId',
      where: field // 搜索的字段
    });
    // layer.msg('搜索成功<br>此处为静态模拟数据,实际使用时换成真实接口即可');
    return false; // 阻止默认 form 跳转
  });
});
</script>

</body>
</html>

后端代码(重点位)

const mysql = require('mysql');
 
// 数据库配置
module.exports = {
    config: {
        host: "localhost",
        port: "3306",
        user: "root",
        password: "123456",
        database: "bpc"
    },
    // 连接数据库,使用连接池的方式
    // 连接池对象
    sqlConnect: function (sql, sqlArr, callback) {
        var pool = mysql.createPool(this.config);
        pool.getConnection((err, conn) => {
            console.log("数据库连接池");
            if (err) {
                console.log("连接失败");
                return;
            } else {
                console.log("连接成功...");
            }
            // 事件驱动回调
            conn.query(sql, sqlArr, callback);
            // 释放连接
            conn.release();
        })
    }
}



// 中间件
----------------------------------------------------
// 根据id查
getGoodsId = (req, res) => {
    let { id } = req.query;
	// console.log(req.query);
	// console.log({ id });
	if (id !='' && id!= undefined){
		var sql = "select * from Goods where id = ?";
	} else {
		var sql = "select * from Goods";
	};
    
    var sqlArr = [id];
    var callBack = (err, data) => {
        if (err) {
            res.send({
                code: 400,
                msg: '获取出错!',
            })
        } else {
            res.send({
                msg: 'success',
                'data': data,
				code: 0
            })
        }
    }
    dbConfig.sqlConnect(sql, sqlArr, callBack);
}

// 路由
---------------------------------------------------------
//根据id查
router.get('/byId', goodsController.getGoodsId);

猜你喜欢

转载自blog.csdn.net/PieroPc/article/details/133951923