就餐对象管理模块
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java
new file mode 100644
index 0000000..fbc88d8
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/bean/CustomerSearchBean.java
@@ -0,0 +1,15 @@
+package com.supwisdom.dlpay.restaurant.bean;
+
+import com.supwisdom.dlpay.system.bean.PageBean;
+
+public class CustomerSearchBean extends PageBean {
+    private String custname;
+
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
new file mode 100644
index 0000000..2663282
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/controller/CustomerController.java
@@ -0,0 +1,119 @@
+package com.supwisdom.dlpay.restaurant.controller;
+
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.util.ExportExcel;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.WebConstant;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+@Controller
+@RequestMapping("/customer")
+public class CustomerController {
+
+    @Autowired
+    private CustomerService customerService;
+
+    @RequestMapping("/index")
+    public String indexView(ModelMap model) {
+
+        return "restaurant/customer/index";
+    }
+
+    @RequestMapping("/list")
+    @PreAuthorize("hasPermission('/customer/list','')")
+    @ResponseBody
+    public PageResult<TCustomer> getDataList(@RequestParam("page") Integer pageNo,
+                                             @RequestParam("limit") Integer pageSize,
+                                             @RequestParam(value = "searchkey", required = false) String searchKey) {
+        try {
+            if (null == pageNo || pageNo < 1) pageNo = WebConstant.PAGENO_DEFAULT;
+            if (null == pageSize || pageSize < 1) pageSize = WebConstant.PAGESIZE_DEFAULT;
+            CustomerSearchBean searchBean = new CustomerSearchBean();
+            searchBean.setPageNo(pageNo);
+            searchBean.setCustname(searchKey);
+            searchBean.setPageSize(pageSize);
+            return customerService.getCustomerByCustname(searchBean);
+        } catch (Exception e) {
+            e.printStackTrace();
+            return new PageResult<>(99, "系统查询错误");
+        }
+    }
+
+
+    @GetMapping("/loadadd")
+    @PreAuthorize("hasPermission('/customer/loadadd','')")
+    public String loadadd(Model model) {
+        return "restaurant/customer/form";
+    }
+
+    @PostMapping("/add")
+    @PreAuthorize("hasPermission('/customer/add','')")
+    @ResponseBody
+    public JsonResult add(@RequestBody TCustomer customer) {
+        if (customer != null) {
+            return customerService.saveCustomer(customer);
+        } else {
+            return JsonResult.error("添加失败");
+        }
+    }
+
+    @PostMapping("/delete")
+    @PreAuthorize("hasPermission('/customer/delete','')")
+    @ResponseBody
+    public JsonResult delete(@RequestParam Integer  custid) {
+        return customerService.deleteCustomer(custid);
+    }
+
+
+    @GetMapping("/loadimport")
+
+    @PreAuthorize("hasPermission('/customer/loadimport','')")
+
+    public String loadimport(Model model) {
+        return "restaurant/customer/import";
+    }
+
+
+    @RequestMapping("/download")
+    @PreAuthorize("hasPermission('/customer/download','')")
+    @ResponseBody
+    public JsonResult downloadfile(HttpServletRequest request, HttpServletResponse response) throws Exception{
+        String[] titles0 = {"姓名",	"市名卡号",	"市名卡银行卡号","手机(选填)"
+        }; //表头
+        String[][] info0 = {{"张三",	"123456",	"3000000","12341234123"
+        }}; // 示例内容
+        String fileName0 = "客户导入模板";// 保存数据
+
+        try {
+            ExportExcel.queryexcel(fileName0, titles0,info0,request, response);
+            return JsonResult.ok("操作成功");
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return JsonResult.error("操作失败");
+    }
+
+    @PostMapping("/import")
+    @PreAuthorize("hasPermission('/customer/import','')")
+    @ResponseBody
+    public JsonResult importFile(@RequestParam(value = "file",required = false) MultipartFile file, HttpServletRequest request) throws Exception{
+//    System.out.println("---------under the upload file:"+file);
+        return customerService.importFile(file,request);
+    }
+
+
+
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
new file mode 100644
index 0000000..b18d3ff
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/dao/CustomerDao.java
@@ -0,0 +1,20 @@
+package com.supwisdom.dlpay.restaurant.dao;
+
+
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface CustomerDao extends JpaRepository<TCustomer, Integer> {
+
+
+    Page<TCustomer> findAllByCustnameContaining(String custname, Pageable pageable);
+
+
+    Integer countByCardno(String cardno);
+
+    Integer countByBankcardno(String bankcardno);
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
new file mode 100644
index 0000000..4113575
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/domain/TCustomer.java
@@ -0,0 +1,100 @@
+package com.supwisdom.dlpay.restaurant.domain;
+
+
+import javax.persistence.*;
+
+@Entity
+@Table(name = "TB_CUSTOMER")
+@SequenceGenerator(name="SEQ_CUSTOMER",sequenceName="SEQ_CUSTOMER",allocationSize=1,initialValue = 100000)
+public class TCustomer {
+    private Integer custid;
+    private String custname;
+    private String operid;
+    private String cardno;
+    private String idno;
+    private String bankcardno;
+    private String phone;
+    private String batchno;
+
+
+    @Id
+    @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQ_CUSTOMER")
+    @Column(name = "custid", unique = true, nullable = false, length = 9)
+    public Integer getCustid() {
+        return custid;
+    }
+
+    public void setCustid(Integer custid) {
+        this.custid = custid;
+    }
+
+
+    @Column(name = "OPERID", length = 100)
+    public String getOperid() {
+        return operid;
+    }
+
+    public void setOperid(String operid) {
+        this.operid = operid;
+    }
+
+
+    @Column(name = "CARDNO", length = 30)
+    public String getCardno() {
+        return cardno;
+    }
+
+    public void setCardno(String cardno) {
+        this.cardno = cardno;
+    }
+
+
+    @Column(name = "IDNO", length = 20)
+    public String getIdno() {
+        return idno;
+    }
+
+    public void setIdno(String idno) {
+        this.idno = idno;
+    }
+
+
+    @Column(name = "BANKCARDNO", length = 30)
+    public String getBankcardno() {
+        return bankcardno;
+    }
+
+    public void setBankcardno(String bankcardno) {
+        this.bankcardno = bankcardno;
+    }
+
+
+    @Column(name = "BATCHNO", length = 14)
+    public String getBatchno() {
+        return batchno;
+    }
+
+    public void setBatchno(String batchno) {
+        this.batchno = batchno;
+    }
+
+
+    @Column(name = "CUSTNAME", length = 30)
+    public String getCustname() {
+        return custname;
+    }
+
+    public void setCustname(String custname) {
+        this.custname = custname;
+    }
+
+
+    @Column(name = "PHONE", length = 11)
+    public String getPhone() {
+        return phone;
+    }
+
+    public void setPhone(String phone) {
+        this.phone = phone;
+    }
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
new file mode 100644
index 0000000..661b328
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/CustomerService.java
@@ -0,0 +1,31 @@
+package com.supwisdom.dlpay.restaurant.service;
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.bean.DeviceSearchBean;
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.domain.TDevice;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+public interface CustomerService {
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,readOnly = true)
+    PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param);
+
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    JsonResult saveCustomer(TCustomer customer);
+
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    JsonResult deleteCustomer(Integer custid);
+
+
+    @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
+    JsonResult importFile(MultipartFile file, HttpServletRequest request) throws Exception;
+}
diff --git a/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
new file mode 100644
index 0000000..67b05ad
--- /dev/null
+++ b/src/main/java/com/supwisdom/dlpay/restaurant/service/impl/CustomerServiceImpl.java
@@ -0,0 +1,114 @@
+package com.supwisdom.dlpay.restaurant.service.impl;
+
+import com.supwisdom.dlpay.api.bean.JsonResult;
+import com.supwisdom.dlpay.framework.util.ImportExcelUtil;
+import com.supwisdom.dlpay.framework.util.PageResult;
+import com.supwisdom.dlpay.framework.util.StringUtil;
+import com.supwisdom.dlpay.restaurant.bean.CustomerSearchBean;
+import com.supwisdom.dlpay.restaurant.dao.CustomerDao;
+import com.supwisdom.dlpay.restaurant.domain.TCustomer;
+import com.supwisdom.dlpay.restaurant.service.CustomerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.domain.Sort;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+
+@Service
+public class CustomerServiceImpl implements CustomerService {
+
+    @Autowired
+    private CustomerDao customerDao;
+
+
+
+    @Override
+    public PageResult<TCustomer> getCustomerByCustname(CustomerSearchBean param) {
+        Pageable pageable = PageRequest.of(param.getPageNo() - 1, param.getPageSize()
+                , Sort.by("custid"));
+        if (null != param.getCustname()) {
+            return new PageResult<>(customerDao.findAllByCustnameContaining(param.getCustname(), pageable));
+        }
+        return new PageResult<>(customerDao.findAll(pageable));
+    }
+    @Override
+    public JsonResult saveCustomer(TCustomer customer) {
+
+        customerDao.save(customer);
+        return JsonResult.ok("成功");
+    }
+
+    @Override
+    public JsonResult deleteCustomer(Integer custid) {
+
+        customerDao.deleteById(custid);
+        return JsonResult.ok("成功");
+    }
+
+
+
+
+    @Override
+    public JsonResult importFile(MultipartFile file, HttpServletRequest request) throws Exception {
+        String fname = file.getOriginalFilename();
+        if (!fname.endsWith(".xls") && !fname.endsWith(".xlsx")) {
+
+            return JsonResult.error("文件格式错误,请选择excel文件格式(.xls/.xlsx)");
+        }
+
+        List<TCustomer> sList = new ArrayList<>();
+//    InputStream excelstream = new FileInputStream(savePath+"/"+fname);
+        InputStream excelstream = file.getInputStream();
+        List<Object[][]> oList = null;
+        if (fname.endsWith(".xls")) {
+            oList = ImportExcelUtil.getIntegralData(excelstream);//2003版本
+        } else {
+            oList = ImportExcelUtil.getIntegralData07(excelstream);//2007版本以上
+        }
+
+        String msg = "";
+        for (Object[][] data : oList) {
+            for (int i = 1; i < data.length; i++) {
+
+                if (StringUtil.isEmpty((String) data[i][0]) || StringUtil.isEmpty((String) data[i][1]) || StringUtil.isEmpty((String) data[i][2])) {
+                    msg = msg + "第" + i + "行,关键字段缺失。<br/>";
+                } else if (customerDao.countByCardno((String) data[i][1]) >0) {
+                    msg = msg + "第" + i + "行,改市名卡已存在。<br/>";
+                }
+                else{
+                    TCustomer d=new TCustomer();
+                    d.setCustname((String) data[i][0]);
+                    d.setCardno((String) data[i][1]);
+                    d.setBankcardno((String) data[i][2]);
+                    if(null!=data[i][3]){
+                        Long p=(Long) data[i][3];
+                        d.setPhone(p.toString());
+                    }
+                    sList.add(d);
+                }
+            }
+        }
+        /*resp.setCode(Code.SUCCESS);
+        // resp.setMsg("成功导入了"+sList.size()+"条信息");
+        resp.setMsg(String.format(Locale.CHINESE, msg));
+        return resp;*/
+        if(StringUtil.isEmpty(msg)){
+            for(TCustomer d:sList){
+                saveCustomer(d);
+            }
+
+            return JsonResult.ok("成功导入"+sList.size()+"条信息");
+        }
+        return JsonResult.error(String.format(Locale.CHINESE, msg));
+    }
+
+
+}
diff --git a/src/main/resources/templates/restaurant/customer/form.html b/src/main/resources/templates/restaurant/customer/form.html
new file mode 100644
index 0000000..81e569e
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customer/form.html
@@ -0,0 +1,98 @@
+
+<form id="form" lay-filter="form" class="layui-form model-form">
+    <input name="custid" id="custid" type="hidden"/>
+    <div class="layui-form-item">
+        <label class="layui-form-label">姓名</label>
+        <div class="layui-input-block">
+            <input name="custname" placeholder="请输入" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|custname" required/>
+        </div>
+    </div>
+    <div class="layui-form-item">
+        <label class="layui-form-label">市名卡号</label>
+        <div class="layui-input-block">
+            <input name="cardno" placeholder="请输入" type="text" class="layui-input" maxlength="20"
+                   lay-verify="required|number" required/>
+        </div>
+    </div>
+
+    <div class="layui-form-item">
+        <label class="layui-form-label">银行卡号</label>
+        <div class="layui-input-block">
+            <input name="bankcardno" placeholder="请输入" type="text" class="layui-input" maxlength="30"
+                   lay-verify="required|number" required/>
+        </div>
+    </div>
+
+    <div class="layui-form-item">
+        <label class="layui-form-label">手机号</label>
+        <div class="layui-input-block">
+            <input name="phone"  placeholder="请输入" type="text" class="layui-input"/>
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-submit" lay-submit id="submitbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+        form.render('select');
+        form.render('radio');
+
+
+        var url = '[[@{/customer/add}]]';
+        // 回显user数据
+        var dev = admin.getTempData('t_cus');
+        if (dev) {
+            $('input[name="custid"]').attr('readonly', 'readonly');
+            form.val('form', dev);
+        }
+        /* let fid = admin.getTempData("fid");
+         if (fid) {
+             form.val('form', {"fid": fid});
+         }*/
+        // 表单提交事件
+        form.on('submit(form-submit)', function (data) {
+            console.log(data);
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            $.ajax({
+                type: "POST",
+                dataType: "json",
+                url: url,
+                headers: {
+                    'Accept': 'application/json',
+                    'Content-Type': 'application/json',
+                    'X-CSRF-TOKEN': token,
+                },
+                data: JSON.stringify(data.field),
+                success: function (result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else {
+                        console.log('err:' + result.code);
+                        layer.msg(result.msg, {icon: 2});
+                    }
+                },
+                error: function () {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/customer/import.html b/src/main/resources/templates/restaurant/customer/import.html
new file mode 100644
index 0000000..72e6663
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customer/import.html
@@ -0,0 +1,88 @@
+<div style="color: #0c91e5" align="right">
+    <a th:href="@{/customer/download}" class="layui-btn layui-btn-primary" style="margin: 5px">点击此处下载导入模板</a>
+</div>
+<form lay-filter="form" class="layui-form model-form" >
+    <!-- row -->
+    <div class="layui-form-item">
+        <label class="control-label">请选择导入文件<span style="color: red"> * </span></label>
+        <input type="file" name="file" id="file" placeholder="请选择xls格式文件">
+    </div>
+
+    <!-- /row -->
+    <!-- row -->
+    <div class="layui-form-item" align="center">
+        <div id="importError" style="color:red">
+        </div>
+        <div id="importInfo" >
+        </div>
+    </div>
+
+    <div class="layui-form-item model-form-footer">
+        <button class="layui-btn layui-btn-primary" type="button" ew-event="closeDialog">取消</button>
+        <button class="layui-btn" lay-filter="form-import" lay-submit id="importbtn">保存</button>
+    </div>
+</form>
+
+<script>
+    layui.use(['layer', 'admin', 'form', 'formSelects'], function () {
+        var layer = layui.layer;
+        var admin = layui.admin;
+        var form = layui.form;
+
+        var url = '[[@{/customer/import}]]';
+        // 回显user数据
+
+        /* let fid = admin.getTempData("fid");
+         if (fid) {
+             form.val('form', {"fid": fid});
+         }*/
+        // 表单提交事件
+        form.on('submit(form-import)', function (data) {
+            $("#importError").html("");
+            var files = $('#file').prop('files');
+            var formData = new FormData();
+            $.each(files, function (i, file) {
+
+                formData.append('file', file);
+            });
+            console.log(formData);
+            layer.load(2);
+            let token = $("meta[name='_csrf_token']").attr("value");
+            debugger
+            $.ajax({
+                type: "POST",
+                url: url,
+                dataType: 'json',
+                processData:false,
+                contentType: false,
+                data: formData,
+                headers: {
+                    'Accept': 'application/json',
+                    'X-CSRF-TOKEN': token,
+                },
+                success: function (result) {
+                    layer.closeAll('loading');
+                    if (result.code == 200) {
+                        layer.msg(result.msg, {icon: 1});
+                        admin.finishPopupCenter();
+                    } else if (result.code == 401) {
+                        layer.msg(result.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else {
+                        $("#importError").html("导入结束,导入失败信息:<br/>" + result.msg);
+
+                        console.log('err:' + result.code);
+                      /*  layer.msg(result.msg, {icon: 2});*/
+                    }
+                },
+                error: function () {
+                    layer.closeAll('loading');
+                    layer.msg("请求服务器失败!", {icon: 2});
+                }
+            });
+            return false;
+        });
+    });
+</script>
\ No newline at end of file
diff --git a/src/main/resources/templates/restaurant/customer/index.html b/src/main/resources/templates/restaurant/customer/index.html
new file mode 100644
index 0000000..5d0a890
--- /dev/null
+++ b/src/main/resources/templates/restaurant/customer/index.html
@@ -0,0 +1,131 @@
+<div class="layui-card">
+    <div class="layui-card-header">
+        <h2 class="header-title">就餐对象管理</h2>
+        <span class="layui-breadcrumb pull-right">
+          <a href="#">就餐对象管理</a>
+          <a><cite>就餐对象管理</cite></a>
+        </span>
+    </div>
+    <div class="layui-card-body">
+        <div class="layui-form toolbar">
+            搜索:
+            <input id="search-value" class="layui-input search-input" type="text" placeholder="输入姓名"/>&emsp;
+            <button id="btn-search" class="layui-btn icon-btn" data-type="search"><i class="layui-icon">&#xe615;</i>搜索
+            </button>
+            <button id="btn-add" class="layui-btn icon-btn" data-type="add"><i class="layui-icon"></i>添加人员</button>
+            <button id="btn-import" class="layui-btn icon-btn" ><i class="layui-icon"></i>批量导入</button>
+
+        </div>
+        <table class="layui-table" id="table" lay-filter="table"></table>
+    </div>
+</div>
+
+
+<script>
+
+    layui.use(['form', 'table', 'layer', 'admin', 'element'], function () {
+        let form = layui.form;
+        let table = layui.table;
+        let admin = layui.admin;
+
+        form.render('select');
+
+        // 渲染表格
+        table.render({
+            elem: '#table',
+            url: '[[@{/customer/list}]]',
+            page: true,
+            cols: [
+                [
+                    {field: 'custid', title: '客户号',width: 140, sort: true},
+                    {field: 'custname', sort: true, width: 150, title: '客户姓名'},
+                    {field: 'cardno', sort: true, width: 150, title: '市名卡号'},
+                    {field: 'phone', sort: true, width: 200, title: '联系电话'},
+                    {field: 'bankcardno', sort: true, width: 200, title: '银行卡号'},
+                    {
+                        field: 'custid', align: 'center', title: '操作', fixed: 'right', templet: function (item) {
+                            return ' <a class="layui-btn  layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a> '+
+                                ' <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>';
+                        }
+                    }
+                ]
+            ]
+        });
+        // 搜索按钮点击事件
+        $('#btn-search').click(function () {
+            let key = $('#search-value').val();
+            table.reload('table', {where: {searchkey: key}, page: {curr: 1}});
+        });
+        $('#btn-add').click(function () {
+            showModel();
+        });
+        $('#btn-import').click(function () {
+            showDownload();
+        });
+        let showDownload = function () {
+            let title ='导入';
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/customer/loadimport}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+        let showModel = function (data) {
+            let title = data ? '修改人员信息' : '添加人员信息';
+            admin.putTempData('t_cus', data);
+            admin.popupCenter({
+                title: title,
+                path: '[[@{/customer/loadadd}]]',
+                finish: function () {
+                    table.reload('table', {});
+                }
+            });
+        };
+
+
+        // 工具条点击事件
+        table.on('tool(table)', function (obj) {
+            let data = obj.data;
+            let layEvent = obj.event;
+            console.log(data);
+            if (layEvent === 'edit') {
+                showModel(data);
+            } else if (layEvent === 'del') {
+                showDelete(data);
+            }
+        });
+        let showDelete = function (data) {
+            console.log(data);
+            layer.confirm('确定要删除吗?', function (i) {
+                layer.close(i);
+                layer.load(2);
+                let token = $("meta[name='_csrf_token']").attr("value");
+                admin.go('[[@{/customer/delete}]]', {
+                    custid: data.custid,
+                    _csrf: token
+                }, function (data) {
+                    console.log(data.code);
+                    layer.closeAll('loading');
+                    if (data.code == 200) {
+                        layer.msg(data.msg, {icon: 1});
+                    } else if (data.code == 401) {
+                        layer.msg(data.msg, {icon: 2, time: 1500}, function () {
+                            location.replace('/login');
+                        }, 1000);
+                        return;
+                    } else {
+                        layer.msg(data.msg, {icon: 2});
+                    }
+                    table.reload('table', {});
+                }, function (ret) {
+                    console.log(ret);
+                    layer.closeAll('loading');
+                    layer.msg('请求失败了,请稍后再试', {icon: 2});
+                });
+            });
+        };
+
+    });
+</script>
diff --git a/src/main/resources/templates/restaurant/device/import.html b/src/main/resources/templates/restaurant/device/import.html
index 9552061..56b8eac 100644
--- a/src/main/resources/templates/restaurant/device/import.html
+++ b/src/main/resources/templates/restaurant/device/import.html
@@ -1,5 +1,5 @@
 <div style="color: #0c91e5" align="right">
-    <a th:href="@{/device/download}">点击此处下载导入模板</a>
+    <a th:href="@{/device/download}" class="layui-btn layui-btn-primary" style="margin: 5px">点击此处下载导入模板</a>
 </div>
 <form lay-filter="form" class="layui-form model-form" >
     <!-- row -->
diff --git a/src/main/resources/templates/restaurant/device/index.html b/src/main/resources/templates/restaurant/device/index.html
index 2d5b42e..1cc4d60 100644
--- a/src/main/resources/templates/restaurant/device/index.html
+++ b/src/main/resources/templates/restaurant/device/index.html
@@ -68,8 +68,9 @@
             let title ='导入';
             admin.popupCenter({
                 title: title,
-                path: '/device/loadimport',
+                path: '[[@{/device/loadimport}]]',
                 finish: function () {
+                    table.reload('table', {});
                 }
             });
         };