add_user.html 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. /* 关联会员 */
  5. .search-result { border: 1px solid; padding: 15px 30px 15px 15px; display: flex; align-items: center; position: relative;margin-top:10px;border-color: #e5e5e5 !important; }
  6. .search-res-img { width: 50px; height: 50px; margin-right: 5px; text-align: center; line-height: 50px; }
  7. .search-res-img img { max-width: 100%; max-height: 100%; }
  8. .search-res-intro p { line-height: 24px; }
  9. .search-res-close { position: absolute; top: 5px; right: 5px; }
  10. .check-member .layui-btn {position: absolute;top: 1px;border-color: #e5e5e5;padding: 0 10px;border-right: 0;border-top: 0;border-bottom: 0;left: 207px;height: 32px;}
  11. .check-admin .layui-btn {position: absolute;top: 2px;border-color: #e5e5e5;padding: 0 10px;border-right: 0;border-top: 0;border-bottom: 0;left: 207px;height: 31px;}
  12. .layui-input-block {overflow: hidden;}
  13. </style>
  14. {/block}
  15. {block name="main"}
  16. <div class="layui-form form-wrap">
  17. <div class="layui-form-item">
  18. <label class="layui-form-label"><span class="required">*</span>核销人员姓名:</label>
  19. <div class="layui-input-block">
  20. <input name="verifier_name" type="text" placeholder="请输入核销人员姓名" lay-verify="required" class="layui-input len-long" autocomplete="off">
  21. </div>
  22. </div>
  23. <div class="layui-form-item check-member-box">
  24. <label class="layui-form-label"><span class="required">*</span>关联前台会员:</label>
  25. <div class="layui-input-block check-member">
  26. <input type="text" id="search_text" name="search_text" placeholder="请输入用户名或手机" class="layui-input len-mid member-name" lay-verify='search_text'>
  27. <button type="button" class="layui-btn layui-btn-primary " onclick="checkMember()">
  28. <i class="layui-icon">&#xe615;</i>
  29. </button>
  30. <input type="hidden" name="member_id" lay-verify='member_id'/>
  31. </div>
  32. <p class="word-aux">关联会员后才能在手机上使用核销台功能,否则无法在手机上核销</p>
  33. <div class="layui-form-item">
  34. <label class="layui-form-label">核销员类型:</label>
  35. <div class="layui-input-block">
  36. <input type="radio" name="verifier_type" value="0" title="平台核销员" lay-filter="verifier_type" checked>
  37. <input type="radio" name="verifier_type" value="1" title="门店核销员" lay-filter="verifier_type" >
  38. </div>
  39. </div>
  40. {if addon_is_exit('store') == 1}
  41. <div class="layui-form-item js-store-template">
  42. <label class="layui-form-label"><span class="required">*</span>门店选择:</label>
  43. <div class="layui-input-inline">
  44. <select name="store_id" lay-search="" lay-verify="store_id">
  45. <option value="">请选择门店</option>
  46. {foreach name="$store_list" item="vo"}
  47. <option value="{$vo['store_id']}">{$vo['store_name']}</option>
  48. {/foreach}
  49. </select>
  50. </div>
  51. </div>
  52. {/if}
  53. </div>
  54. <div class="form-row">
  55. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  56. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  57. </div>
  58. </div>
  59. {/block}
  60. {block name="script"}
  61. <script>
  62. var form,repeat_flag = false;//防重复标识
  63. layui.use('form', function() {
  64. form = layui.form;
  65. form.render();
  66. $(".js-store-template").hide();
  67. form.on('radio(verifier_type)', function(data) {
  68. if (data.value == 0) {
  69. $(".js-store-template").hide();
  70. }else{
  71. $(".js-store-template").show();
  72. }
  73. });
  74. /**
  75. * 表单验证
  76. */
  77. form.verify({
  78. search_text:function(value){
  79. if(value == ''){
  80. return '请选择前台会员';
  81. }
  82. },
  83. member_id:function(value){
  84. if(value == ''){
  85. return '请选择前台会员';
  86. }
  87. },
  88. store_id: function(value) {
  89. var verifier_type = $("input[name='verifier_type']:checked").val();
  90. if(verifier_type == 1){
  91. if(value == ''){
  92. return '请选择门店';
  93. }
  94. }
  95. },
  96. });
  97. /**
  98. * 监听提交
  99. */
  100. form.on('submit(save)', function(data) {
  101. if (repeat_flag) return;
  102. repeat_flag = true;
  103. $.ajax({
  104. url: ns.url("shop/verify/addUser"),
  105. data: data.field,
  106. dataType: 'JSON',
  107. type: 'POST',
  108. success: function(data){
  109. layer.msg(data.message);
  110. repeat_flag = false;
  111. if(data.code == 0){
  112. location.href = ns.url("shop/verify/user");
  113. }
  114. }
  115. });
  116. });
  117. });
  118. $('.check-member .layui-input').focus(function (){
  119. $(this).next('.layui-btn').addClass('border-color');
  120. }).blur(function () {
  121. $(this).next('.layui-btn').removeClass('border-color');
  122. })
  123. /**
  124. * 点击搜索
  125. */
  126. var repeat_flag_member = false;
  127. var html, val;
  128. function checkMember() {
  129. var parent = $(".check-member");
  130. var con = parent.find(".member-name").val();
  131. $(".layui-word-aux").remove();
  132. $(".search-result").remove();
  133. if (repeat_flag_member) return false;
  134. repeat_flag_member = true;
  135. if (con == "" || con == null || con.trim() == "") {
  136. repeat_flag = false;
  137. } else {
  138. $.ajax({
  139. type: 'POST',
  140. url: ns.url("shop/verify/searchMember"),
  141. data: {
  142. 'search_text': con
  143. },
  144. dataType: 'JSON',
  145. success: function(res) {
  146. repeat_flag_member = false;
  147. if (res.data == null) {
  148. html = '<span class="layui-word-aux">未找到该用户</span>';
  149. val = res.data;
  150. } else {
  151. html = '<div class="search-result layui-input-inline">' +
  152. '<div class="search-res-img">' +
  153. '<img src="' + ( res.data.headimg ? ns.img(res.data.headimg) : ns.img("{$default_headimg}")) + '" />' +
  154. '</div>' +
  155. '<div class="search-res-intro">' +
  156. '<p>用户名:' + res.data.username + '</p>' +
  157. '<p>电话:' + res.data.mobile + '</p>' +
  158. '</div>' +
  159. '<div class="search-res-close" onclick="closeMember()">' +
  160. '<i class="iconfont iconclose_light"></i>' +
  161. '</div>' +
  162. '</div>';
  163. val = res.data.member_id;
  164. }
  165. $("input[name='member_id']").attr("value", val);
  166. $(".check-member").append(html);
  167. }
  168. });
  169. }
  170. }
  171. function closeMember() {
  172. $(".search-result").hide();
  173. }
  174. function back() {
  175. location.href = ns.url("shop/verify/user");
  176. }
  177. </script>
  178. {/block}