index.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <link rel="stylesheet" type="text/css" href="REPLACEBUY_CSS/index.css"/>
  4. <style type="text/css">
  5. .sku-name{overflow: hidden; text-overflow: ellipsis;width: 300px;}
  6. </style>
  7. {/block}
  8. {block name="main"}
  9. <div style="margin-bottom: 20px;">
  10. <div class="layui-card-header title">
  11. <span class="ns-card-title">选择会员和商品</span>
  12. </div>
  13. <div class="layui-card ns-card-common ns-card-brief ns-member">
  14. <button class="layui-btn ns-bg-color" onclick="addLabel()">选择下单会员</button>
  15. </div>
  16. </div>
  17. <div style="background-color: #f8f8f8; height: 20px; width: 100%; position: absolute; left: 0;"></div>
  18. <div class="ns-cash">
  19. <div class="ns-form ns-money">
  20. <div class="ns-money-block ns-money-left">
  21. <div class="ns-money-box">
  22. <div class="layui-card-header" style="border: none; padding: 0;">
  23. <span class="ns-card-title tips-color">全部商品</span>
  24. </div>
  25. <div class="layui-tab ns-table-tab ns-cash-member" lay-filter="goods_list_tab">
  26. <div class="layui-tab-content">
  27. <div class="layui-tab-item layui-show">
  28. <div class="ns-goods-block">
  29. <div class="ns-good-left layui-form">
  30. <div class="border-border">
  31. <div class="layui-inline">
  32. <div class="layui-input-inline search-input">
  33. {include file="replacebuy/category_select" /}
  34. </div>
  35. </div>
  36. <div class="layui-inline">
  37. <div class="layui-input-inline search-input">
  38. <select name="label_id" lay-filter="goods_grouping" id="goods_grouping">
  39. <option value="">选择商品分组</option>
  40. {foreach name="$label_list" item="vo"}
  41. <option value="{$vo['id']}">{$vo['label_name']}</option>
  42. {/foreach}
  43. </select>
  44. </div>
  45. </div>
  46. <div class="ns-single-filter-box">
  47. <div class="layui-form">
  48. <div class="layui-input-block search-input">
  49. <input type="text" name="search_text" placeholder="搜索商品名称" autocomplete="off" class="layui-input ">
  50. <button type="button" class="layui-btn layui-btn-primary" lay-filter="goods_search" lay-submit>
  51. <i class="layui-icon">&#xe615;</i>
  52. </button>
  53. </div>
  54. </div>
  55. </div>
  56. </div>
  57. <!-- 商品列表 -->
  58. <div class="layui-form ns-goods-list"></div>
  59. <div id="page"></div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. <div class="ns-money-block ns-money-middle"></div>
  68. <div class="ns-money-block ns-money-right">
  69. <div class="ns-settle-accounts ns-money-box">
  70. <div class="layui-card ns-card-common">
  71. <div class="layui-card-header">
  72. <span class="ns-card-title tips-color">已选择(<span class="goods-total">0</span>)</span>
  73. </div>
  74. <div class="layui-card-body">
  75. <div class="ns-order-list"></div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="layui-form ns-form ns-new-footer" >
  83. <button class="layui-btn ns-bg-color" lay-submit lay-filter="settle">去结算</button>
  84. </div>
  85. <script type="text/html" id="addLabel">
  86. <div class="layui-form">
  87. <div class="layui-input-inline" style="width:300px;">
  88. <input type="text" style="width:300px;" name="member_search" placeholder="请输入会员名称、用户名、手机号" autocomplete="off" class="layui-input ">
  89. <button type="button" class="layui-btn layui-btn-primary member-search" style="height: 32px; line-height: 32px; position: absolute; right: 1px; top: 1px; border-width: 0; border-left-width: 1px;" lay-filter="search" lay-submit>
  90. <i class="layui-icon"></i>
  91. </button>
  92. </div>
  93. <table id="selected_goods_list" lay-filter="selected_goods_list"></table>
  94. </div>
  95. </script>
  96. <!-- 会员详情 -->
  97. <script type="text/html" id="member_detail">
  98. <div class="ns-menber-detail">
  99. <div class="ns-table-title checked-peo">
  100. <div class="ns-title-pic">
  101. <img src="{{ns.img(d.headimg)}}" onerror=src="REPLACEBUY_IMG/default_headimg.png" />
  102. </div>
  103. <div class="ns-title-content">
  104. <div class="ns-member-con-first">
  105. <h3 class="nickname" title="{{d.nickname}}">{{d.nickname}}</h3>
  106. </div>
  107. <div class="ns-member-con-second">
  108. <p class="ns-text-color-gray"><span class="member-mobile">{{d.mobile == "" ? '--' : d.mobile}}</span></p>
  109. </div>
  110. </div>
  111. </div>
  112. <button class="layui-btn ns-bg-color check-btn" lay-submit lay-filter="logout_member">重新选择</button>
  113. </div>
  114. </script>
  115. <!-- 会员查询 -->
  116. <script type="text/html" id="search_member">
  117. <div class="layui-card ns-card-common ns-card-brief ns-member">
  118. <button class="layui-btn ns-bg-color" onclick="addLabel()">选择下单会员</button>
  119. </div>
  120. </script>
  121. <input id="member_id" type="hidden" value="" />
  122. <!-- 商品渲染 -->
  123. <script type="text/html" id="goods_list">
  124. {{# if (d.list.length == 0) { }}
  125. <div class="ns-null-good">
  126. <img class="ns-null-img" src="REPLACEBUY_IMG/no_goods.png">
  127. <p class="ns-null-font">暂无商品</p>
  128. </div>
  129. {{# } else { }}
  130. {{# layui.each(d.list, function(index, item) { }}
  131. {{# if(item.stock == 0){ }}
  132. <div class="ns-good-box disabled all-goods" data-sku-id="{{item.sku_id}}" data-sku-name="{{item.sku_name}}" data--stock="{{item.stock}}" data-sku-price="{{item.discount_price}}">
  133. {{# } else { }}
  134. <div class="ns-good-box all-goods" data-sku-id="{{item.sku_id}}" data-sku-name="{{item.sku_name}}" data-stock="{{item.stock}}" data-sku-price="{{item.discount_price}}">
  135. {{# } }}
  136. <div class="ns-table-title">
  137. <div class="ns-title-pic">
  138. <img layer-src="{{ns.img(item.sku_image,'big')}}" src="{{ns.img(item.sku_image,'small')}}" />
  139. </div>
  140. <div class="ns-title-content">
  141. <p class="ns-multi-line-hiding good-name" title="{{item.sku_name}}">{{item.sku_name}}</p>
  142. <div class="ns-good-price">
  143. <p class="ns-basic-color store-price">¥<span class="good-price">{{item.discount_price}}</span></p>
  144. <p class="ns-line-hideing store-stoce" title="{{item.stock}}">库存:<span class="store-stock">{{item.stock}}</span></p>
  145. </div>
  146. </div>
  147. <button class="layui-btn y-stock" data-sku-id="{{item.sku_id}}" data-sku-name="{{item.sku_name}}" data-stock="{{item.stock}}" data-sku-price="{{item.discount_price}}" data-sku-image="{{item.sku_image}}" data-spec-name="{{item.spec_name}}" onclick="addGoods(this)">选择</button>
  148. <button class="layui-btn ns-bg-color-grey n-stock" readonly="readonly">选择</button>
  149. </div>
  150. </div>
  151. {{# }) }}
  152. <div id="paged" class="page"></div>
  153. {{# } }}
  154. </script>
  155. <!-- 渲染购物车 -->
  156. <script type="text/html" id="render_cart">
  157. {{# if(d.length == 0){ }}
  158. <div class="ns-null-good">
  159. <img class="ns-null-img" src="REPLACEBUY_IMG/no_goods.png">
  160. <p class="ns-null-font">未添加任何商品</p>
  161. </div>
  162. {{# }else{ }}
  163. {{# layui.each(d, function(index, item){ }}
  164. <div class="ns-good-seleted" data-id="{{item.sku_id}}">
  165. <div class="ns-table-title">
  166. <div class="ns-title-pic checked-pic">
  167. <img layer-src="{{ns.img(item.sku_image,'big')}}" src="{{ns.img(item.sku_image,'small')}}" />
  168. </div>
  169. <div class="ns-title-content">
  170. <p class="ns-multi-line-hiding good-name sku-name" title="{{item.sku_name}}">{{item.sku_name}}</p>
  171. <div class="ns-good-price new-price">
  172. <p class="ns-basic-color store-price">¥<span class="good-price">{{item.sku_price}}</span></p>
  173. <!-- <div class="ns-align-right ns-selected-num">
  174. <p class="num-btn" onclick="decrease({{item.sku_id}})">-</p>
  175. <input type="number" value="{{item.num}}" onchange="changeCart({{item.sku_id}}, this)" class="layui-input num-input" />
  176. <p class="num-btn" onclick="increase({{item.sku_id}})">+</p>
  177. </div> -->
  178. </div>
  179. <div class="ns-align-right ns-selected-num">
  180. <p class="num-btn" onclick="decrease({{item.sku_id}})">-</p>
  181. <input type="number" value="{{item.num}}" onchange="changeCart({{item.sku_id}}, this)" class="layui-input num-input" />
  182. <p class="num-btn" onclick="increase({{item.sku_id}})">+</p>
  183. </div>
  184. </div>
  185. <button class="layui-btn ns-bg-color" onclick="delRow({{index}})">移除</button>
  186. </div>
  187. </div>
  188. {{# }) }}
  189. {{# } }}
  190. </script>
  191. <script src="SHOP_JS/category_select.js"></script>
  192. {/block}
  193. {block name="script" }
  194. <script>
  195. var buyer_info = {:json_encode($buyer_info, JSON_UNESCAPED_UNICODE)};
  196. var cart = JSON.parse('{:json_encode($cart, JSON_UNESCAPED_UNICODE)}');
  197. var laytpl,form,add_attr_index = -1,category_id,limit = 10,page = 1,laypage;
  198. //扫码相关判断
  199. var is_scan = false;
  200. var is_scan_on_ready = false;
  201. var input_start_time = 0;
  202. function categorySelectCallBack(){
  203. goodsList(page,limit);
  204. }
  205. var table;
  206. layui.use(['form', 'laytpl','table','laypage'], function() {
  207. laytpl = layui.laytpl;
  208. form = layui.form;
  209. laypage = layui.laypage;
  210. table = layui.table;
  211. form.render();
  212. goodsList(page,limit); // 初始化商品列表
  213. cartList(cart); // 初始化购物车
  214. syncData();//初始化用户地址
  215. {if condition="$buyer_info"}
  216. memberDetail(buyer_info);
  217. {else/}
  218. searchMember();
  219. {/if}
  220. /**
  221. * 商品搜索
  222. */
  223. form.on('submit(goods_search)', function(data) {
  224. goodsList(page,limit);
  225. });
  226. // //选择会员
  227. // form.on('submit(save)', function(data) {
  228. // if (repeat_flag) return false;
  229. // repeat_flag = true;
  230. // $.ajax({
  231. // url: ns.url("replacebuy://shop/replacebuy/loginBuyer"),
  232. // data: data.field,
  233. // dataType: 'JSON',
  234. // type: 'POST',
  235. // success: function(res) {
  236. // repeat_flag = false;
  237. // if (res.code == 0) {
  238. // memberDetail(res.data);
  239. // layer.close(add_attr_index);
  240. // } else {
  241. // layer.msg(res.message);
  242. // }
  243. // }
  244. // });
  245. // return false;
  246. // });
  247. /**
  248. * 更换会员
  249. */
  250. form.on('submit(logout_member)', function(data) {
  251. // $.ajax({
  252. // url: ns.url("replacebuy://shop/replacebuy/logoutBuyer"),
  253. // type: "POST",
  254. // dataType: "JSON",
  255. // data: data.field,
  256. // success: function(res) {
  257. // console.log(res)
  258. // if (res.code == 0) {
  259. // searchMember();
  260. // $("#member_id").val("");
  261. // } else {
  262. // layer.msg(res.message);
  263. // }
  264. // }
  265. // })
  266. addLabel()
  267. });
  268. //选择分组
  269. form.on('select(goods_grouping)', function(data){
  270. // console.log(data.value)
  271. goodsList(page,limit);
  272. })
  273. //去结算
  274. form.on('submit(settle)', function(data) {
  275. if (!$("#member_id").val()) {
  276. layer.msg('请选择会员');
  277. } else if (cart.length == 0) {
  278. layer.msg('请选择商品');
  279. } else {
  280. // window.open(ns.url("replacebuy://shop/replacebuy/order", {"cart": cart}))
  281. location.href = ns.url("replacebuy://shop/replacebuy/order");
  282. }
  283. });
  284. });
  285. function closeAttrLayer() {
  286. layer.close(add_attr_index);
  287. }
  288. // 商品列表渲染
  289. function goodsList(page,limit) {
  290. $.ajax({
  291. url: ns.url("replacebuy://shop/replacebuy/getGoodsSkuList"),
  292. async: false,
  293. data: {
  294. "page" : page,
  295. "page_size" : limit,
  296. "search_text" : $("input[name='search_text']").val(),
  297. "category_id" : $("input[name='category_id']").val(),
  298. "label_id" : $("#goods_grouping option:selected").val()
  299. },
  300. type: "POST",
  301. dataType: "JSON",
  302. success: function(res) {
  303. if (res.code == 0) {
  304. var data = res.data;
  305. laytpl($("#goods_list").html()).render(data, function(html) {
  306. $(".ns-goods-list").html(html);
  307. //如果是扫码则自动添加商品并恢复初始化 便于用户继续扫码
  308. if(data.list.length === 1 && is_scan){
  309. $(".ns-goods-list .layui-btn[data-sku-id='"+ data.list[0].sku_id +"']").click();
  310. $("input[name='search_text']").val('').blur().focus();
  311. }
  312. });
  313. isNull();
  314. //分页
  315. $("#paged").empty();
  316. if (res.data.count > 0) {
  317. //调用分页
  318. laypage.render({
  319. elem: "paged",
  320. count: res.data.count,
  321. curr: page, //当前页
  322. limit: limit,
  323. jump: function(obj, first) {
  324. if (!first) {
  325. goodsList(obj.curr, obj.limit);
  326. }
  327. form.render('checkbox');
  328. }
  329. })
  330. }
  331. } else {
  332. layer.msg(res.message);
  333. }
  334. }
  335. });
  336. }
  337. // 商品是否售空
  338. function isNull() {
  339. $(".ns-good-box").each(function() {
  340. var _this = this;
  341. var stock = $(this).attr("data-stock");
  342. var id = $(this).attr("data-sku-id");
  343. if (stock != 0) {
  344. $.each(cart, function(index, item) {
  345. if (item.sku_id == id) {
  346. if (item.num == stock) {
  347. $(_this).addClass("disabled");
  348. } else {
  349. $(_this).removeClass("disabled");
  350. }
  351. }
  352. });
  353. }
  354. });
  355. }
  356. function addLabel() {
  357. var add_attr = $("#addLabel").html();
  358. var new_member_id
  359. form.on('radio(laymemberid)', function(obj){
  360. new_member_id = obj.value
  361. })
  362. laytpl(add_attr).render({}, function(html) {
  363. add_attr_index = layer.open({
  364. title: '选择会员',
  365. skin: 'layer-tips-class',
  366. type: 1,
  367. area: ['1000px', '800px'],
  368. content: html,
  369. btn:["保存","返回"],
  370. yes: function(){
  371. $.ajax({
  372. url: ns.url("replacebuy://shop/replacebuy/loginBuyer"),
  373. data:{member_id: new_member_id},
  374. dataType: 'JSON',
  375. type: 'POST',
  376. success: function(res) {
  377. if (res.code == 0) {
  378. memberDetail(res.data);
  379. layer.close(add_attr_index);
  380. } else {
  381. layer.msg(res.message);
  382. }
  383. }
  384. });
  385. }
  386. });
  387. });
  388. //展示已知数据
  389. table = new Table({
  390. elem: '#selected_goods_list',
  391. url: ns.url("replacebuy://shop/replacebuy/getMemberList"),
  392. cols: [
  393. [{
  394. width: "8%",
  395. title: '选择',
  396. unresize: 'false',
  397. templet: function(data) {
  398. var html = '';
  399. html += `
  400. <div>
  401. <input type="radio" name="layTableRadioc" value="${data.member_id}" lay-type="layTableRadio" lay-filter="laymemberid">
  402. </div>
  403. `;
  404. return html;
  405. }
  406. },{
  407. title: '会员名称',
  408. width: '28%',
  409. unresize: 'false',
  410. templet: function(data) {
  411. var html = '';
  412. html += `
  413. <div>
  414. <img style="width:40px; height:40px; margin-right:20px;" layer-src src="${ns.img(data.headimg)}" onerror="this.src = 'SHOP_IMG/default_headimg.png' "><span>${data.nickname}</span>
  415. </div>
  416. `;
  417. return html;
  418. }
  419. }, {
  420. field: 'username',
  421. title: '用户名',
  422. unresize: 'false',
  423. align: 'center',
  424. width: '16%',
  425. }, {
  426. field: 'mobile',
  427. title: '手机号',
  428. unresize: 'false',
  429. align: 'center',
  430. width: '16%',
  431. }, {
  432. // field: 'balance',
  433. title: '余额',
  434. unresize: 'false',
  435. align: 'center',
  436. width: '12%',
  437. templet: function (data) {
  438. return parseFloat(data.balance)+parseFloat(data.balance_money);
  439. }
  440. }, {
  441. field: 'point',
  442. title: '积分',
  443. unresize: 'false',
  444. align: 'center',
  445. width: '19%',
  446. templet: function (data) {
  447. return parseInt(data.point);
  448. }
  449. },
  450. ]
  451. ],
  452. });
  453. /**
  454. * 会员搜索
  455. */
  456. form.on('submit(search)', function (data) {
  457. table.reload({
  458. page: {
  459. curr: 1
  460. },
  461. where: data.field
  462. });
  463. });
  464. $(document).keydown(function (event) {
  465. if (event.keyCode == 13) {
  466. $(".member-search").trigger("click");
  467. }
  468. });
  469. }
  470. // 会员详情页面渲染
  471. function memberDetail(data) {
  472. laytpl($("#member_detail").html()).render(data, function(html) {
  473. $(".ns-member").html(html);
  474. $("#member_id").val(data.member_id);
  475. })
  476. }
  477. // 会员查询页面渲染
  478. function searchMember() {
  479. laytpl($("#search_member").html()).render([], function(html) {
  480. $(".ns-member").html(html);
  481. });
  482. }
  483. // 添加商品
  484. function addGoods(e) {
  485. var sku_id = $(e).attr("data-sku-id"),
  486. sku_name = $(e).attr("data-sku-name"),
  487. stock = $(e).attr("data-stock"),
  488. sku_price = $(e).attr("data-sku-price"),
  489. sku_image = $(e).attr("data-sku-image"),
  490. spec_name = $(e).attr("data-spec-name");
  491. var sku_json = {sku_id: sku_id, sku_name: sku_name, stock: stock, sku_price: sku_price, sku_image: sku_image, spec_name: spec_name, num: 1};
  492. if (stock != 0) {
  493. addCart(sku_json);
  494. }
  495. }
  496. // 购物车
  497. function addCart(json) {
  498. var is_exit = false;
  499. var null_stock = false;
  500. $.each(cart, function(index, item) {
  501. if (item.sku_id == json.sku_id) { // 购物车中已存在该商品
  502. var item_num = parseInt(item.num) + 1;
  503. if (item_num > parseInt(item.store_stock)) {
  504. null_stock = true;
  505. item_num = parseInt(item.store_stock)
  506. }
  507. item.num = item_num;
  508. is_exit = true;
  509. }
  510. });
  511. if (!is_exit) {
  512. cart.push(json);
  513. }
  514. isNull();
  515. syncCart();
  516. cartList(cart);
  517. }
  518. // 渲染购物车
  519. function cartList(cart) {
  520. var data = cart;
  521. laytpl($("#render_cart").html()).render(data, function(html) {
  522. $(".ns-order-list").html(html);
  523. });
  524. var total_num = 0, total_price = 0;
  525. $.each(cart, function(index, item) {
  526. total_num += Number(item.num);
  527. var id = item.sku_id;
  528. });
  529. $(".goods-total").text(total_num);
  530. }
  531. // 同步购物车数据
  532. function syncCart() {
  533. $.ajax({
  534. url: ns.url("replacebuy://shop/replacebuy/cart"),
  535. type: "POST",
  536. dataType: "JSON",
  537. async: false,
  538. data: {"cart_json": JSON.stringify(cart)}
  539. })
  540. }
  541. // 加
  542. function increase(sku_id) {
  543. $.each(cart, function(index, item) {
  544. if (item.sku_id == sku_id) {
  545. var item_num = parseInt(item.num) + 1;
  546. if(item_num > parseInt(item.stock)){
  547. item_num = parseInt(item.stock)
  548. }
  549. item.num = item_num;
  550. }
  551. });
  552. isNull();
  553. syncCart();
  554. cartList(cart);
  555. }
  556. // 减
  557. function decrease(sku_id) {
  558. $.each(cart, function(index, item) {
  559. if (item.sku_id == sku_id) {
  560. var item_num = parseInt(item.num) - 1;
  561. if(item_num < 1){
  562. layer.msg('已经是最小值了,不能再减少了', {icon: 5, anim: 6});
  563. item_num = 1
  564. }
  565. item.num = item_num;
  566. }
  567. });
  568. isNull();
  569. syncCart();
  570. cartList(cart);
  571. }
  572. // 改变购物车数量
  573. function changeCart(sku_id, obj){
  574. var num = $(obj).val();
  575. $.each(cart, function(index, item) {
  576. if(item.sku_id == sku_id){
  577. if(num < 1){
  578. layer.msg('已经是最小值了,不能再减少了', {icon: 5, anim: 6});
  579. num = 1;
  580. }
  581. if(num > parseInt(item.stock)){
  582. num = parseInt(item.stock);
  583. }
  584. item.num = num;
  585. }
  586. });
  587. isNull();
  588. syncCart();
  589. cartList(cart);
  590. }
  591. // 删除整行
  592. function delRow(key) {
  593. $.each(cart, function(index, item) {
  594. if (index == key) {
  595. $(".ns-good-box").each(function() {
  596. if ($(this).attr("data-sku-id") == item.sku_id) {
  597. $(this).removeClass("disabled");
  598. }
  599. });
  600. }
  601. });
  602. cart.splice(key, 1);
  603. syncCart();
  604. cartList(cart);
  605. }
  606. // 同步数据
  607. function syncData() {
  608. $.ajax({
  609. url: ns.url("replacebuy://shop/replacebuy/choiceAddress"),
  610. type: "POST",
  611. dataType: "JSON",
  612. async: false,
  613. data: {"address_id": 0}
  614. })
  615. }
  616. $(function(){
  617. //输入框聚焦 判断是否准备扫码
  618. $("input[name='search_text']").on('focus', function(){
  619. if($(this).val() === ''){
  620. is_scan_on_ready = true;
  621. }
  622. })
  623. //输入框失焦 清空所有判断参数
  624. $("input[name='search_text']").on('blur', function(){
  625. is_scan = false;
  626. is_scan_on_ready = false;
  627. input_start_time = 0;
  628. })
  629. $(document).keydown(function (event) {
  630. var goods_search = $("input[name='search_text']").val();
  631. if(is_scan_on_ready && input_start_time === 0){
  632. input_start_time = (new Date()).getTime();
  633. }
  634. if (event.keyCode == 13 && goods_search) {
  635. //根据输入时间怕判断是否是扫码操作
  636. if((new Date()).getTime() - input_start_time <= 200){
  637. is_scan = true;
  638. }
  639. goodsList(1, 10);
  640. }
  641. });
  642. })
  643. </script>
  644. {/block}