Explorar o código

1.可搜索产品名字,对应产品

lsp %!s(int64=4) %!d(string=hai) anos
pai
achega
0d441cada9

+ 8 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsController.java

@@ -90,6 +90,8 @@ public class GoodsController {
         return R.ok().put("page", pageUtil);
     }
 
+
+
     /**
      * 查看信息
      */
@@ -106,6 +108,12 @@ public class GoodsController {
         return R.ok().put("goods", goods);
     }
 
+    @RequestMapping("/queryGoodsName")
+    public R queryGoodsName(@RequestParam String goodsName) {
+        List<GoodsEntity> goodsList = goodsService.queryByName(goodsName);
+        return R.ok().put("goodsList", goodsList);
+    }
+
     /**
      * 查看信息
      */

+ 2 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsDao.java

@@ -60,4 +60,6 @@ public interface GoodsDao extends BaseDao<GoodsEntity> {
      * @return
      */
     List<GoodsEntity> queryListByBarcode(@Param("prodBarcode")String prodBarcode, @Param("storeId")Integer storeId);
+
+    List<GoodsEntity> queryByName(@Param("goodsName")String goodsName);
 }

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/service/GoodsService.java

@@ -185,4 +185,10 @@ public interface GoodsService {
 
     void updateForImgUrl(GoodsEntity goodsEntity);
 
+    /**
+     * 根据商品名称查询商品
+     * @param goodsName
+     * @return
+     */
+    List<GoodsEntity> queryByName(String goodsName);
 }

+ 5 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsServiceImpl.java

@@ -616,6 +616,11 @@ public class GoodsServiceImpl implements GoodsService {
         goodsDao.update(goodsEntity);
     }
 
+    @Override
+    public List<GoodsEntity> queryByName(String goodsName) {
+        return goodsDao.queryByName(goodsName);
+    }
+
     /**
      * 更新门店商品是否有修改字段
      * @param storeId

+ 8 - 0
kmall-admin/src/main/resources/mybatis/mapper/GoodsDao.xml

@@ -742,5 +742,13 @@
         and r.stock_num > 0 order by r.stock_num desc
     </select>
 
+    <select id="queryByName" resultType="com.kmall.admin.entity.GoodsEntity">
+        select id,name,sku,prod_barcode
+        from mall_goods
+        where 1=1
+        <if test="goodsName != null and goodsName != ''">
+            and name like concat('%',#{goodsName},'%');
+        </if>
+    </select>
 
 </mapper>

+ 1 - 1
kmall-admin/src/main/resources/mybatis/mapper/OrderDao.xml

@@ -2018,7 +2018,7 @@
             AND o.order_sn LIKE concat('%',#{orderSn},'%')
         </if>
         <if test="payName != null and payName.trim() != ''">
-            AND o.pay_name = LIKE concat('%',#{payName},'%')
+            AND o.pay_name LIKE concat('%',#{payName},'%')
         </if>
         <if test="payMobile != null and payMobile.trim() != ''">
             AND o.pay_mobile LIKE concat('%',#{pay_mobile},'%')

+ 1 - 1
kmall-admin/src/main/resources/mybatis/mapper/PickUpCodeDao.xml

@@ -147,7 +147,7 @@
 
 
 	<select id="queryMaxPickUpCode" resultType="java.lang.String">
-		select pick_up_code_sn from mall_pick_up_code where pick_up_code_createtime &gt; #{nowTime} order by pick_up_code_sn desc limit 1
+		select pick_up_code_sn from mall_pick_up_code where pick_up_code_createtime &gt; #{nowTime} order by pick_up_code_createtime desc limit 1
 	</select>
 
 

+ 39 - 2
kmall-admin/src/main/webapp/WEB-INF/page/sale/sale.html

@@ -20,6 +20,33 @@
             font-size: 1.3em;
             margin-left: 20px;
         }
+
+
+        .search_menu{
+            /*border-top:5px solid #3388FF;*/
+            /*display: none;*/
+            background-color: ghostwhite;
+            position: absolute;
+            z-index: 999;
+            /*top:30px;*/
+            width:87%;
+        }
+        .search_menu ul{
+            margin-bottom: 0;  //去除ul的底部外边距
+        }
+        .search_menu li {
+            padding: 5px;
+            font-size: 1.1em;
+            cursor: pointer;
+            overflow: hidden;
+            white-space: nowrap;
+        }
+        .search_menu li:hover{
+            background-color: beige;
+        }
+        .search:hover .search_menu {
+            display: block;
+        }
     </style>
     <link rel="stylesheet" href="${rc.contextPath}/statics/plugins/jqgrid/ui.jqgrid-bootstrap.css">
     <!--<link rel="stylesheet" href="${rc.contextPath}/statics/css/sale.css">-->
@@ -58,10 +85,20 @@
     <div class="container-fluid" style="margin-top: 15px">
         <div id="content" class="row-fluid">
             <div class="col-md-3">
+                <div>
+                    <i-input class="search" placeholder="输入或扫码商品条形码" id="saomiao" v-model.trim='prodBarcode' @on-enter="searchQuery(prodBarcode)"/>
+                </div>
+                <div v-show="prodBarcode" class="search_menu">
+                    <ul>
+                        <li v-for="item in searchGoodsList" :key="item.id" @click="searchQuery(item.prodBarcode)" title="item.prodBarcode">
+                            {{item.name}}
+                        </li>
+                    </ul>
+                </div>
                 <ul class="list-unstyled">
-                    <li >
+                    <!--<li >
                         <i-input v-model="prodBarcode" @on-enter="query" placeholder="输入或扫码商品条形码" id="saomiao"  />
-                    </li>
+                    </li>-->
                     <li style="margin-top: 50px;" >
                         <div v-show="goodsDetail" style="font-size: 1.2em">
                             <img style="height: 400px;width: 400px;" :src="goods.primaryPicUrl" class="img-rounded"/>

+ 1 - 0
kmall-admin/src/main/webapp/js/sale/pickupcode.js

@@ -211,6 +211,7 @@ let vm = new Vue({
 		reload: function () {
 			if(!vm.q.startTime || !vm.q.endTime){
 				alert("请选择下单时间在进行查询!");
+				return ;
 			}
 
 			let url = "../order/pickUpCodeList";

+ 55 - 8
kmall-admin/src/main/webapp/js/sale/sale.js

@@ -3,7 +3,7 @@ $(function () {
     openWebSocket();
     queryAssistantInfo();
 
-
+    vm.queryGoods();
 });
 
 window.onbeforeunload = function(){
@@ -482,9 +482,15 @@ function calculateGoodsByZhjsp(r){
         });
     }
     console.log(vm.compareCombinationPrice);
-
 }
 
+const delay = (function () {
+    let timer = 0;
+    return function (callback, ms) {
+        clearTimeout(timer);
+        timer = setTimeout(callback.ms)
+    }
+});
 
 let vm = new Vue({
     el: '#rrapp',
@@ -567,23 +573,64 @@ let vm = new Vue({
         // 支付码
         parCode : "",
         // 总件数
-        totalCount:0
+        totalCount:0,
+
+        searchGoodsList: [],
+        timer: null,
+        searchGoods: []
+    },
+    watch: {
+        prodBarcode (){
+            if(vm.timer){
+                clearTimeout(vm.timer);
+            }
+            if(!vm.prodBarcode){
+                this.searchGoodsList = [];
+                return ;
+            }
+            vm.timer = null;
+            vm.timer = setTimeout(() => {
+                vm.queryGoods();
+            }, 1000*15);
+
+            let result = [];
+            for(let i=0; i<vm.searchGoods.length; i++){
+                if(vm.searchGoods[i].name.indexOf(vm.prodBarcode) > -1){
+                    if(result.length <= 9){
+                        result.push(vm.searchGoods[i]);
+                    }else{
+                        break;
+                    }
+                }
+            }
+            vm.searchGoodsList = result;
+        }
     },
     methods: {
-
         myDebounce:debounce(function(){
-
-
             toPayOrder();
         },2000),
 
+        queryGoods: function(){
+            $.get("../goods/queryGoodsName?goodsName=", function (r) {
+                if (r.code == 0) {
+                    vm.searchGoods = r.goodsList;
+                } else {
+                    alert(r.msg);
+                }
+            });
+        },
+        searchQuery: function (prodBarcode){
+            vm.prodBarcode = prodBarcode;
+            vm.query();
+        },
         queryOrderStatus:function(){
             $.get("../order/queryOrderStatus/"+vm.orderSn, function (r) {
                 alert(r.msg);
             });
         },
         query: function () {
-            vm.storeId = sessionStorage.getItem("storeId");;
+            vm.storeId = sessionStorage.getItem("storeId");
             var thisGoods = {};
             var overflowLi = this.$refs.overflowLi;
             $.get("../goods/details/"+vm.prodBarcode+"/"+vm.storeId, function (r) {
@@ -1291,7 +1338,7 @@ function parsedate(value){
 }
 
 function getPrintContentOrder(ticket) {
-    var content = "<div style=\"width: 250px;font-family: 微软雅黑;font-size: 8px;\">";
+    var content = "<div style=\"width: 300px;font-family: 微软雅黑;font-size: 8px;\">";
     // 打印ogo
     content += "<div style=\"text-align: center;width: 100%;height: 260px;\">";
     content += "<img src='/statics/img/cw_logo2.png' style='width: 100%;height: 100%;' />";