edit_cluster.html 46 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721
  1. {extend name="base"/}
  2. {block name="resources"}
  3. <style>
  4. .form-wrap {margin-top: 0;}
  5. .layui-btn+.layui-btn {margin-left: 0;}
  6. .layui-btn {margin-right: 10px; margin-bottom: 15px;}
  7. .weight-list span{display: inline-block;width: 60px;line-height: 30px;border:1px solid #eee;border-radius: 4px;text-align: center;font-size: 12px;cursor: pointer;}
  8. .weight-list span.active{border-color: #ff8143; }
  9. .weight-list span.disabled{background:#f1f1f1;cursor: not-allowed; }
  10. </style>
  11. {/block}
  12. {block name="main"}
  13. <div class="layui-form form-wrap">
  14. <!-- 基础上传 -->
  15. <div class="layui-card card-common card-brief">
  16. <div class="layui-card-header">
  17. <span class="card-title">基础设置</span>
  18. </div>
  19. <div class="layui-card-body">
  20. <div class="layui-form-item">
  21. <label class="layui-form-label"><span class="required">*</span>群体名称:</label>
  22. <div class="layui-input-block">
  23. <input type="text" name="cluster_name" lay-verify="required" autocomplete="off" value="{$cluster_info['cluster_name']}" class="layui-input len-mid">
  24. </div>
  25. </div>
  26. </div>
  27. </div>
  28. <div class="layui-card card-common card-brief">
  29. <div class="layui-card-header">
  30. <span class="card-title">选项设置</span>
  31. </div>
  32. <div class="layui-card-body">
  33. <div class="layui-form-item">
  34. <label class="layui-form-label">会员基本信息</label>
  35. <div class="layui-input-block">
  36. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['member_level']['is_show'] == 1} border-color {/if}">会员等级<input type="hidden" value="0" /></button>
  37. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['member_label']['is_show'] == 1} border-color {/if}">会员标签<input type="hidden" value="1" /></button>
  38. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['sex']['is_show'] == 1} border-color {/if}">性别<input type="hidden" value="2" /></button>
  39. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['birthday']['is_show'] == 1} border-color {/if}">生日<input type="hidden" value="3" /></button>
  40. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['reg_time']['is_show'] == 1} border-color {/if}">注册时间<input type="hidden" value="4" /></button>
  41. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['point']['is_show'] == 1} border-color {/if}">当前积分<input type="hidden" value="5" /></button>
  42. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['balance']['is_show'] == 1} border-color {/if}">当前余额<input type="hidden" value="6" /></button>
  43. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['growth']['is_show'] == 1} border-color {/if}">当前成长值<input type="hidden" value="7" /></button>
  44. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['sign_days_series']['is_show'] == 1} border-color {/if}">连续签到次数<input type="hidden" value="8" /></button>
  45. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['basic']['mobile']['is_show'] == 1} border-color {/if}">会员手机<input type="hidden" value="9" /></button>
  46. </div>
  47. </div>
  48. <div class="layui-form-item">
  49. <label class="layui-form-label">会员消费情况</label>
  50. <div class="layui-input-block">
  51. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_money']['is_show'] == 1} border-color {/if}">付款金额<input type="hidden" value="10" /></button>
  52. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_complete_money']['is_show'] == 1} border-color {/if}">消费金额<input type="hidden" value="11" /></button>
  53. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_num']['is_show'] == 1} border-color {/if}">付款次数<input type="hidden" value="12" /></button>
  54. <button class="layui-btn layui-btn-primary cluster-btn {if $cluster_info['rule_arr']['consume']['order_complete_num']['is_show'] == 1} border-color {/if}">消费次数<input type="hidden" value="13" /></button>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="layui-card card-common card-brief">
  60. <div class="layui-card-header">
  61. <span class="card-title">群体设置</span>
  62. </div>
  63. <div class="layui-card-body">
  64. <div class="layui-form-item">
  65. <div class="layui-input-block">
  66. <table class="layui-table" id="goods" lay-skin="line" lay-size="lg">
  67. <colgroup>
  68. <col width="15%">
  69. <col width="20%">
  70. <col width="50%">
  71. <col width="10%">
  72. </colgroup>
  73. <thead>
  74. <tr>
  75. <th>选项</th>
  76. <th>范围</th>
  77. <th>条件</th>
  78. <th class="operation">操作</th>
  79. </tr>
  80. </thead>
  81. <tbody>
  82. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['member_level']['is_show'] == 0} layui-hide {/if}">
  83. <td>会员等级</td>
  84. <td>
  85. <input type="radio" class="include" name="basic[member_level][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['member_level']['include'] == 1"} checked {/if}>
  86. <input type="radio" class="include" name="basic[member_level][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['member_level']['include'] == 2"} checked {/if}>
  87. </td>
  88. <td>
  89. <div class="layui-input-inline">
  90. <input type="text" autocomplete="off" class="layui-input member-level-con" readonly onclick="settinglevel()" value="{$cluster_info['rule_arr']['basic']['member_level']['content_name']}">
  91. <input type="hidden" name="basic[member_level][content]" value="{$cluster_info['rule_arr']['basic']['member_level']['content']}">
  92. </div>
  93. <input type="hidden" class="is-show" name="basic[member_level][is_show]" value="{$cluster_info['rule_arr']['basic']['member_level']['is_show']}">
  94. </td>
  95. <td class='operation'>
  96. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  97. </td>
  98. </tr>
  99. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['member_label']['is_show'] == 0} layui-hide {/if}">
  100. <td>会员标签</td>
  101. <td>
  102. <input type="radio" class="include" name="basic[member_label][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['member_label']['include'] == 1"} checked {/if}>
  103. <input type="radio" class="include" name="basic[member_label][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['member_label']['include'] == 2"} checked {/if}>
  104. </td>
  105. <td>
  106. <div class="layui-input-inline">
  107. <input type="text" autocomplete="off" class="layui-input member-label-con" readonly onclick="settinglabel()" value="{$cluster_info['rule_arr']['basic']['member_label']['content_name']}">
  108. <input type="hidden" name="basic[member_label][content]" value="{$cluster_info['rule_arr']['basic']['member_label']['content']}">
  109. </div>
  110. <input type="hidden" class="is-show" name="basic[member_label][is_show]" value="{$cluster_info['rule_arr']['basic']['member_label']['is_show']}">
  111. </td>
  112. <td class='operation'>
  113. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  114. </td>
  115. </tr>
  116. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['sex']['is_show'] == 0} layui-hide {/if}">
  117. <td>会员性别</td>
  118. <td>
  119. <input type="radio" class="include" name="basic[sex][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['sex']['include'] == 1"} checked {/if}>
  120. <input type="radio" class="include" name="basic[sex][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['sex']['include'] == 2"} checked {/if}>
  121. </td>
  122. <td>
  123. <input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="0" title="保密" {if in_array(0, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
  124. <input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="1" title="男" {if in_array(1, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
  125. <input type="checkbox" class="input-checkbox" lay-skin="primary" lay-filter="sex" name="basic[sex][content]" value="2" title="女" {if in_array(2, $cluster_info['rule_arr']['basic']['sex']['content_arr'])}checked{/if}>
  126. <input type="hidden" class="is-show" name="basic[sex][is_show]" value="{$cluster_info['rule_arr']['basic']['sex']['is_show']}">
  127. </td>
  128. <td class='operation'>
  129. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  130. </td>
  131. </tr>
  132. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['birthday']['is_show'] == 0} layui-hide {/if}">
  133. <td>会员生日</td>
  134. <td>
  135. <input type="radio" class="include" name="basic[birthday][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['birthday']['include'] == 1"} checked {/if}>
  136. <input type="radio" class="include" name="basic[birthday][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['birthday']['include'] == 2"} checked {/if}>
  137. </td>
  138. <td>
  139. <div class="layui-input-inline">
  140. <input type="text" class="layui-input layui-input-start" name="basic[birthday][start]" id="birthday_start_date" placeholder="请输入开始时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['birthday']['start']}">
  141. </div>
  142. <div class="layui-input-inline split">-</div>
  143. <div class="layui-input-inline end-time">
  144. <input type="text" class="layui-input layui-input-end" name="basic[birthday][end]" id="birthday_end_date" placeholder="请输入结束时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['birthday']['end']}">
  145. </div>
  146. <input type="hidden" class="is-show" name="basic[birthday][is_show]" value="{$cluster_info['rule_arr']['basic']['birthday']['is_show']}">
  147. </td>
  148. <td class='operation'>
  149. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  150. </td>
  151. </tr>
  152. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['reg_time']['is_show'] == 0} layui-hide {/if}">
  153. <td>注册时间</td>
  154. <td>
  155. <input type="radio" class="include" name="basic[reg_time][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['reg_time']['include'] == 1"} checked {/if}>
  156. <input type="radio" class="include" name="basic[reg_time][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['reg_time']['include'] == 2"} checked {/if}>
  157. </td>
  158. <td>
  159. <div class="layui-input-inline">
  160. <input type="text" class="layui-input layui-input-start" name="basic[reg_time][start]" id="reg_start_date" placeholder="请输入开始时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['reg_time']['start']}">
  161. </div>
  162. <div class="layui-input-inline split">-</div>
  163. <div class="layui-input-inline end-time">
  164. <input type="text" class="layui-input layui-input-end" name="basic[reg_time][end]" id="reg_end_date" placeholder="请输入结束时间" autocomplete="off" readonly value="{$cluster_info['rule_arr']['basic']['reg_time']['end']}">
  165. </div>
  166. <input type="hidden" class="is-show" name="basic[reg_time][is_show]" value="{$cluster_info['rule_arr']['basic']['reg_time']['is_show']}">
  167. </td>
  168. <td class='operation'>
  169. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  170. </td>
  171. </tr>
  172. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['point']['is_show'] == 0} layui-hide {/if}">
  173. <td>当前积分</td>
  174. <td>
  175. <input type="radio" class="include" name="basic[point][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['point']['include'] == 1"} checked {/if}>
  176. <input type="radio" class="include" name="basic[point][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['point']['include'] == 2"} checked {/if}>
  177. </td>
  178. <td>
  179. <div class="layui-input-inline">
  180. <input type="number" class="layui-input layui-input-start layui-input-int" name="basic[point][start]" placeholder="请输入积分最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['point']['start']}">
  181. </div>
  182. <div class="layui-input-inline split">-</div>
  183. <div class="layui-input-inline end-time">
  184. <input type="number" class="layui-input layui-input-end layui-input-int" name="basic[point][end]" placeholder="请输入积分最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['point']['end']}">
  185. </div>
  186. <input type="hidden" class="is-show" name="basic[point][is_show]" value="{$cluster_info['rule_arr']['basic']['point']['is_show']}">
  187. </td>
  188. <td class='operation'>
  189. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  190. </td>
  191. </tr>
  192. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['balance']['is_show'] == 0} layui-hide {/if}">
  193. <td>当前余额</td>
  194. <td>
  195. <input type="radio" class="include" name="basic[balance][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['balance']['include'] == 1"} checked {/if}>
  196. <input type="radio" class="include" name="basic[balance][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['balance']['include'] == 2"} checked {/if}>
  197. </td>
  198. <td>
  199. <div class="layui-input-inline">
  200. <input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[balance][start]" placeholder="请输入当前余额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['balance']['start']}">
  201. </div>
  202. <div class="layui-input-inline split">-</div>
  203. <div class="layui-input-inline end-time">
  204. <input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[balance][end]" placeholder="请输入当前余额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['balance']['end']}">
  205. </div>
  206. <input type="hidden" class="is-show" name="basic[balance][is_show]" value="{$cluster_info['rule_arr']['basic']['balance']['is_show']}">
  207. </td>
  208. <td class='operation'>
  209. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  210. </td>
  211. </tr>
  212. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['growth']['is_show'] == 0} layui-hide {/if}">
  213. <td>当前成长值</td>
  214. <td>
  215. <input type="radio" class="include" name="basic[growth][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['growth']['include'] == 1"} checked {/if}>
  216. <input type="radio" class="include" name="basic[growth][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['growth']['include'] == 2"} checked {/if}>
  217. </td>
  218. <td>
  219. <div class="layui-input-inline">
  220. <input type="number" class="layui-input layui-input-start layui-input-flo" name="basic[growth][start]" placeholder="请输入当前成长值最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['growth']['start']}">
  221. </div>
  222. <div class="layui-input-inline split">-</div>
  223. <div class="layui-input-inline end-time">
  224. <input type="number" class="layui-input layui-input-end layui-input-flo" name="basic[growth][end]" placeholder="请输入当前成长值最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['growth']['end']}">
  225. </div>
  226. <input type="hidden" class="is-show" name="basic[growth][is_show]" value="{$cluster_info['rule_arr']['basic']['growth']['is_show']}">
  227. </td>
  228. <td class='operation'>
  229. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  230. </td>
  231. </tr>
  232. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['sign_days_series']['is_show'] == 0} layui-hide {/if}">
  233. <td>签到次数</td>
  234. <td>
  235. <input type="radio" class="include" name="basic[sign_days_series][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['sign_days_series']['include'] == 1"} checked {/if}>
  236. <input type="radio" class="include" name="basic[sign_days_series][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['sign_days_series']['include'] == 2"} checked {/if}>
  237. </td>
  238. <td>
  239. <div class="layui-input-inline">
  240. <input type="number" class="layui-input layui-input-start layui-input-int" name="basic[sign_days_series][start]" placeholder="请输入签到次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['start']}">
  241. </div>
  242. <div class="layui-input-inline split">-</div>
  243. <div class="layui-input-inline end-time">
  244. <input type="number" class="layui-input layui-input-end layui-input-int" name="basic[sign_days_series][end]" placeholder="请输入签到次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['end']}">
  245. </div>
  246. <input type="hidden" class="is-show" name="basic[sign_days_series][is_show]" value="{$cluster_info['rule_arr']['basic']['sign_days_series']['is_show']}">
  247. </td>
  248. <td class='operation'>
  249. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  250. </td>
  251. </tr>
  252. <tr class="cluster-content {if $cluster_info['rule_arr']['basic']['mobile']['is_show'] == 0} layui-hide {/if}">
  253. <td>会员手机</td>
  254. <td>
  255. <input type="radio" class="include" name="basic[mobile][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['basic']['mobile']['include'] == 1"} checked {/if}>
  256. <input type="radio" class="include" name="basic[mobile][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['basic']['mobile']['include'] == 2"} checked {/if}>
  257. </td>
  258. <td>
  259. <div class="layui-input-inline">
  260. <input type="text" name="basic[mobile][content]" lay-verify="flo" autocomplete="off" class="layui-input member-mobile" value="{$cluster_info['rule_arr']['basic']['mobile']['content']}">
  261. </div>
  262. <input type="hidden" class="is-show" name="basic[mobile][is_show]" value="{$cluster_info['rule_arr']['basic']['mobile']['is_show']}">
  263. </td>
  264. <td class='operation'>
  265. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  266. </td>
  267. </tr>
  268. <tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_money']['is_show'] == 0} layui-hide {/if}">
  269. <td>付款金额</td>
  270. <td>
  271. <input type="radio" class="include" name="consume[order_money][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_money']['include'] == 1"} checked {/if}>
  272. <input type="radio" class="include" name="consume[order_money][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_money']['include'] == 2"} checked {/if}>
  273. </td>
  274. <td>
  275. <div class="layui-input-inline">
  276. <input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_money][start]" placeholder="请输入付款金额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_money']['start']}">
  277. </div>
  278. <div class="layui-input-inline split">-</div>
  279. <div class="layui-input-inline end-time">
  280. <input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_money][end]" placeholder="请输入付款金额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_money']['end']}">
  281. </div>
  282. <input type="hidden" class="is-show" name="consume[order_money][is_show]" value="{$cluster_info['rule_arr']['consume']['order_money']['is_show']}">
  283. </td>
  284. <td class='operation'>
  285. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  286. </td>
  287. </tr>
  288. <tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_complete_money']['is_show'] == 0} layui-hide {/if}">
  289. <td>消费金额</td>
  290. <td>
  291. <input type="radio" class="include" name="consume[order_complete_money][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_money']['include'] == 1"} checked {/if}>
  292. <input type="radio" class="include" name="consume[order_complete_money][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_money']['include'] == 2"} checked {/if}>
  293. </td>
  294. <td>
  295. <div class="layui-input-inline">
  296. <input type="number" class="layui-input layui-input-start layui-input-flo" name="consume[order_complete_money][start]" placeholder="请输入消费金额最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['start']}">
  297. </div>
  298. <div class="layui-input-inline split">-</div>
  299. <div class="layui-input-inline end-time">
  300. <input type="number" class="layui-input layui-input-end layui-input-flo" name="consume[order_complete_money][end]" placeholder="请输入消费金额最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['end']}">
  301. </div>
  302. <input type="hidden" class="is-show" name="consume[order_complete_money][is_show]" value="{$cluster_info['rule_arr']['consume']['order_complete_money']['is_show']}">
  303. </td>
  304. <td class='operation'>
  305. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  306. </td>
  307. </tr>
  308. <tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_num']['is_show'] == 0} layui-hide {/if}">
  309. <td>付款次数</td>
  310. <td>
  311. <input type="radio" class="include" name="consume[order_num][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_num']['include'] == 1"} checked {/if}>
  312. <input type="radio" class="include" name="consume[order_num][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_num']['include'] == 2"} checked {/if}>
  313. </td>
  314. <td>
  315. <div class="layui-input-inline">
  316. <input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_num][start]" placeholder="请输入付款次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_num']['start']}">
  317. </div>
  318. <div class="layui-input-inline split">-</div>
  319. <div class="layui-input-inline end-time">
  320. <input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_num][end]" placeholder="请输入付款次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_num']['end']}">
  321. </div>
  322. <input type="hidden" class="is-show" name="consume[order_num][is_show]" value="{$cluster_info['rule_arr']['consume']['order_num']['is_show']}">
  323. </td>
  324. <td class='operation'>
  325. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  326. </td>
  327. </tr>
  328. <tr class="cluster-content {if $cluster_info['rule_arr']['consume']['order_complete_num']['is_show'] == 0} layui-hide {/if}">
  329. <td>消费次数</td>
  330. <td>
  331. <input type="radio" class="include" name="consume[order_complete_num][include]" value="1" title="包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_num']['include'] == 1"} checked {/if}>
  332. <input type="radio" class="include" name="consume[order_complete_num][include]" value="2" title="不包含" {if condition="$cluster_info['rule_arr']['consume']['order_complete_num']['include'] == 2"} checked {/if}>
  333. </td>
  334. <td>
  335. <div class="layui-input-inline">
  336. <input type="number" class="layui-input layui-input-start layui-input-int" name="consume[order_complete_num][start]" placeholder="请输入消费次数最小值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['start']}">
  337. </div>
  338. <div class="layui-input-inline split">-</div>
  339. <div class="layui-input-inline end-time">
  340. <input type="number" class="layui-input layui-input-end layui-input-int" name="consume[order_complete_num][end]" placeholder="请输入消费次数最大值" autocomplete="off" min="0" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['end']}">
  341. </div>
  342. <input type="hidden" class="is-show" name="consume[order_complete_num][is_show]" value="{$cluster_info['rule_arr']['consume']['order_complete_num']['is_show']}">
  343. </td>
  344. <td class='operation'>
  345. <div class='table-btn '><a href='javascript:;' class='layui-btn' onclick='delDiv(this)'>删除</a></div>
  346. </td>
  347. </tr>
  348. </tbody>
  349. </table>
  350. </div>
  351. </div>
  352. <div class="form-row">
  353. <button class="layui-btn" lay-submit lay-filter="calculate">计算会员数</button>
  354. <div>符合条件的群体人数: <span class="member_num text-color">{$cluster_info['member_num']}</span> 人,点击计算按钮可查看符合条件的群体人数。</div>
  355. </div>
  356. </div>
  357. <div class="layui-card-body">
  358. <div class="form-row">
  359. <!-- 获取cluster_id -->
  360. <input type="hidden" name="cluster_id" id="cluster_id" lay-verify="required" value="{$cluster_info.cluster_id}" class="layui-input">
  361. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  362. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  363. </div>
  364. </div>
  365. </div>
  366. </div>
  367. {/block}
  368. {block name="script"}
  369. <script>
  370. $(function(){
  371. $('.weight-list span').not('.disabled').eq(0).addClass("active");
  372. $(".cluster-content").each(function() {
  373. if ($(this).hasClass("layui-hide")) {
  374. $(this).find("input").removeAttr("lay-verify");
  375. } else {
  376. $(this).find(".layui-input-inline input.layui-input").attr("lay-verify", "notnull");
  377. $(this).find(".layui-input-inline input.layui-input-start").attr("lay-verify", "notnull|start");
  378. $(this).find(".layui-input-inline input.layui-input-end").attr("lay-verify", "notnull|end");
  379. $(this).find(".layui-input-inline input[type='number']").attr("lay-verify", "notnull|end|num");
  380. $(this).find(".layui-input-inline input.member-mobile").attr("lay-verify", "notnull|len");
  381. $(this).find(".layui-input-inline input.layui-input-int").attr("lay-verify", "notnull|end|num|int");
  382. $(this).find(".layui-input-inline input.layui-input-flo").attr("lay-verify", "notnull|end|num|flo");
  383. }
  384. });
  385. })
  386. var form, laytpl, laydate, isClick = false, member_num = 0, member_ids = '', sexVal = [];
  387. layui.use(['form', 'laytpl', 'laydate'], function() {
  388. form = layui.form;
  389. laytpl = layui.laytpl;
  390. laydate = layui.laydate;
  391. var repeat_flag = false; //防重复标识
  392. form.render();
  393. //生日开始时间
  394. laydate.render({
  395. elem: '#birthday_start_date',
  396. type: 'datetime'
  397. });
  398. //生日结束时间
  399. laydate.render({
  400. elem: '#birthday_end_date',
  401. type: 'datetime'
  402. });
  403. //注册开始时间
  404. laydate.render({
  405. elem: '#reg_start_date',
  406. type: 'datetime'
  407. });
  408. //注册结束时间
  409. laydate.render({
  410. elem: '#reg_end_date',
  411. type: 'datetime'
  412. });
  413. $(".weight-list span").click(function() {
  414. if (!$(this).hasClass("disabled")) {
  415. $(this).addClass("active");
  416. $(this).siblings().removeClass("active");
  417. }
  418. });
  419. $(".cluster-btn").click(function() {
  420. var _index = $(this).children().val();
  421. if (!$(this).hasClass("border-color")) {
  422. $(this).addClass("border-color");
  423. $(".cluster-content").eq(_index).removeClass("layui-hide");
  424. $(".cluster-content").eq(_index).find(".is-show").val(1);
  425. $(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input").attr("lay-verify", "notnull");
  426. $(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-start").attr("lay-verify", "notnull|start");
  427. $(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-end").attr("lay-verify", "notnull|end");
  428. $(".cluster-content").eq(_index).find(".layui-input-inline input[type='number']").attr("lay-verify", "notnull|end|num");
  429. $(".cluster-content").eq(_index).find(".layui-input-inline input.member-mobile").attr("lay-verify", "notnull|len");
  430. $(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-int.layui-input-start").attr("lay-verify", "notnull|start|num|int");
  431. $(".cluster-content").eq(_index).find(".layui-input-inline input.layui-input-flo.layui-input-end").attr("lay-verify", "notnull|end|num|flo");
  432. }
  433. //点击了需要重新计算
  434. // isClick = false;
  435. form.render();
  436. });
  437. form.on('submit(calculate)', function(data) {
  438. // isClick = true;
  439. var rule_json = resetData(data.field);
  440. if (rule_json.basic.sex.is_show == 1) {
  441. var flag = false;
  442. $(".input-checkbox").each(function() {
  443. var isChecked = $(this).is(":checked");
  444. if (isChecked) {
  445. flag = true;
  446. }
  447. });
  448. if (!flag) {
  449. layer.msg("请选择性别", {icon: 5, anim: 6});
  450. return false;
  451. }
  452. }
  453. $.ajax({
  454. url: ns.url("shop/membercluster/calculate"),
  455. type: "POST",
  456. dataType: "JSON",
  457. data: {
  458. rule_json: JSON.stringify(rule_json)
  459. },
  460. success: function(res) {
  461. if (res.code >= 0) {
  462. member_num = res.data.member_num;
  463. member_ids = res.data.member_ids;
  464. $(".member_num").html(member_num);
  465. }
  466. }
  467. })
  468. });
  469. form.on('submit(save)', function(data) {
  470. // if (isClick) {
  471. var rule_json = resetData(data.field);
  472. $.ajax({
  473. url: ns.url("shop/membercluster/editCluster"),
  474. type: "POST",
  475. dataType: "JSON",
  476. data: {
  477. cluster_name: data.field.cluster_name,
  478. rule_json: JSON.stringify(rule_json),
  479. cluster_id: $("#cluster_id").val()
  480. },
  481. success: function(res) {
  482. layer.msg(res.message);
  483. if (res.code >= 0) {
  484. location.href = ns.url("shop/membercluster/clusterList")
  485. }
  486. }
  487. })
  488. // } else {
  489. // layer.msg("请先计算会员数", {icon: 5, anim: 6});
  490. // }
  491. });
  492. form.on('submit(setlabel)', function(obj) {
  493. var field = obj.field;
  494. var arr_id = [], temp = [];
  495. for (var prop in field) {
  496. arr_id.push(field[prop]);
  497. $("#set_label").find("input").each(function() {
  498. var label_id = $(this).attr("data-id");
  499. if (field[prop] == label_id) {
  500. temp.push($(this).attr("title"))
  501. }
  502. })
  503. }
  504. $(".member-label-con").val(temp);
  505. $("input[name='basic[member_label][content]']").val(arr_id);
  506. layer.closeAll('page');
  507. });
  508. form.on('submit(setlevel)', function(obj) {
  509. var field = obj.field;
  510. var arr_id = [], temp = [];
  511. for (var prop in field) {
  512. arr_id.push(field[prop]);
  513. $("#set_level").find("input").each(function() {
  514. var level_id = $(this).attr("data-id");
  515. if (field[prop] == level_id) {
  516. temp.push($(this).attr("title"))
  517. }
  518. })
  519. }
  520. $(".member-level-con").val(temp);
  521. $("input[name='basic[member_level][content]']").val(arr_id);
  522. layer.closeAll('page');
  523. });
  524. /**
  525. * 表单验证
  526. */
  527. form.verify({
  528. notnull: function(value, item) {
  529. var str = $(item).parents(".cluster-content").find("td").eq(0).text();
  530. if (value == '') {
  531. return str + '不能为空';
  532. }
  533. },
  534. end: function(value, item) {
  535. var start = $(item).parents(".cluster-content").find(".layui-input-start").val();
  536. var str1 = $(item).attr("placeholder").slice(3);
  537. var str2 = $(item).parents(".cluster-content").find(".layui-input-start").attr("placeholder").slice(3);
  538. if (Number(value) < Number(start)) {
  539. return str1 + "不能小于" + str2;
  540. }
  541. },
  542. num: function(value, item) {
  543. var str = $(item).parents(".cluster-content").find("td").eq(0).text();
  544. if (value < 0) {
  545. return str + "不能小于0";
  546. }
  547. },
  548. len: function(value, item) {
  549. if (value.length > 11) {
  550. return "手机号为11位";
  551. }
  552. },
  553. int: function(value, item) {
  554. var str = $(item).parents(".cluster-content").find("td").eq(0).text();
  555. if (value % 1 != 0) {
  556. return str + "不能为小数";
  557. }
  558. },
  559. flo: function(value, item) {
  560. var str = $(item).parents(".cluster-content").find("td").eq(0).text();
  561. if (value * 100 % 1 != 0) {
  562. return str + "最多保留两位小数";
  563. }
  564. }
  565. })
  566. });
  567. /**
  568. * 设置标签
  569. */
  570. function settinglabel() {
  571. laytpl($("#label_change").html()).render({}, function(html) {
  572. layer_label = layer.open({
  573. title: '设置标签',
  574. skin: 'layer-tips-class',
  575. type: 1,
  576. area: ['450px','260px'],
  577. content: html,
  578. });
  579. });
  580. form.render();
  581. }
  582. /**
  583. * 设置等级
  584. */
  585. function settinglevel() {
  586. laytpl($("#level_change").html()).render({}, function(html) {
  587. layer_level = layer.open({
  588. title: '设置等级',
  589. skin: 'layer-tips-class',
  590. type: 1,
  591. area: ['450px','260px'],
  592. content: html,
  593. });
  594. });
  595. form.render();
  596. }
  597. function delDiv(e) {
  598. var _len = $(e).parents(".cluster-content").index();
  599. $(e).parents(".cluster-content").addClass("layui-hide");
  600. $(e).parents(".cluster-content").find("input").removeAttr("lay-verify");
  601. $(e).parents(".cluster-content").find(".layui-input-inline input").val("");
  602. $(e).parents(".cluster-content").find(".is-show").val(0);
  603. $(e).parents(".cluster-content").find("input[name='basic[sex][content]']").prop("checked",false);
  604. $(".cluster-btn").eq(_len).removeClass("border-color");
  605. }
  606. function closeLabel() {
  607. layer.close(layer_label);
  608. }
  609. function closeLevel() {
  610. layer.close(layer_level);
  611. }
  612. function back() {
  613. location.href = ns.url("shop/membercluster/clusterList");
  614. }
  615. // 数据结构
  616. function resetData(data) {
  617. var rule_json = {};
  618. $.each(data, function(index, item) {
  619. if (index.indexOf("[") != -1) {
  620. var arr = index.split("[");
  621. if (rule_json[arr[0]] == undefined) {
  622. rule_json[arr[0]] = {};
  623. }
  624. var name = arr[1].slice(0, arr[1].length - 1);
  625. if (rule_json[arr[0]][name] == undefined) {
  626. rule_json[arr[0]][name] = {};
  627. }
  628. var attr = arr[2].slice(0, arr[2].length - 1);
  629. rule_json[arr[0]][name][attr] = item;
  630. }
  631. })
  632. sexVal = [];
  633. $("input[name='basic[sex][content]']:checked").each(function (index, item) {
  634. sexVal.push($(this).val());
  635. });
  636. rule_json.basic.sex.content = sexVal.toString();
  637. return rule_json;
  638. }
  639. </script>
  640. <!-- 设置标签弹框html -->
  641. <script type="text/html" id="label_change">
  642. <div class="layui-form member-form" id="set_label" lay-filter="form">
  643. <div class="layui-form-item">
  644. <label class="layui-form-label sm">标签:</label>
  645. <div class="layui-input-block">
  646. {foreach $member_label_list as $member_label_list_k => $member_label_list_v}
  647. <input type="checkbox" name="label_id{$member_label_list_v.label_id}" data-id="{$member_label_list_v.label_id}" value="{$member_label_list_v.label_id}" title="{$member_label_list_v.label_name}" lay-skin="primary">
  648. {/foreach}
  649. </div>
  650. </div>
  651. <div class="form-row sm">
  652. <button class="layui-btn" lay-submit lay-filter="setlabel">确定</button>
  653. <button class="layui-btn layui-btn-primary" onclick="closeLabel()">返回</button>
  654. </div>
  655. </div>
  656. </script>
  657. <!-- 设置标签弹框html -->
  658. <script type="text/html" id="level_change">
  659. <div class="layui-form member-form" id="set_level" lay-filter="form">
  660. <div class="layui-form-item">
  661. <label class="layui-form-label sm">等级:</label>
  662. <div class="layui-input-block">
  663. {foreach $member_level_list as $member_level_list_k => $member_level_list_v}
  664. <input type="checkbox" name="level_id{$member_level_list_v.level_id}" data-id="{$member_level_list_v.level_id}" value="{$member_level_list_v.level_id}" title="{$member_level_list_v.level_name}" lay-skin="primary">
  665. {/foreach}
  666. </div>
  667. </div>
  668. <div class="form-row sm">
  669. <button class="layui-btn" lay-submit lay-filter="setlevel">确定</button>
  670. <button class="layui-btn layui-btn-primary" onclick="closeLevel()">返回</button>
  671. </div>
  672. </div>
  673. </script>
  674. {/block}