scripttpl.html 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439
  1. <!-- 奖品表单模板 -->
  2. {literal}
  3. <!-- 添加/编辑奖品表单模板 -->
  4. <script type="text/html" id="prize-form-template">
  5. <form class="form-horizontal prize-form" style="padding: 20px;">
  6. <div class="form-group">
  7. <label class="control-label col-sm-3">奖品名称:</label>
  8. <div class="col-sm-8">
  9. <div class="input-group">
  10. <input type="text" class="form-control" data-rule="required" name="prize_name" maxlength="20" placeholder="请输入名称">
  11. <span class="input-group-addon text-muted" id="prize-name-count">0/20</span>
  12. </div>
  13. </div>
  14. </div>
  15. <div class="form-group">
  16. <label class="control-label col-sm-3"> 奖品类型:</label>
  17. <div class="col-sm-8">
  18. <div class="row">
  19. <div class="col-sm-12">
  20. <% for(var i = 0; i < prizeTypes.length; i++) { %>
  21. <label class="radio-inline"><input type="radio" data-rule="checked" name="row[prize_type]" value="<%=prizeTypes[i].value%>"> <%=prizeTypes[i].text%></label>
  22. <% } %>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <!-- 积分设置 -->
  28. <div class="form-group" data-favisible="prize_type=3">
  29. <label class="control-label col-sm-3">积分数量:</label>
  30. <div class="col-sm-8">
  31. <div class="input-group" style="width: 200px;">
  32. <input type="number" class="form-control reward-value-input" name="reward_value_integral" data-rule="required;digits;min(1)" min="1" step="1" placeholder="请输入积分数量">
  33. <span class="input-group-addon">积分</span>
  34. </div>
  35. </div>
  36. </div>
  37. <!-- 余额设置 -->
  38. <div class="form-group" data-favisible="prize_type=4">
  39. <label class="control-label col-sm-3">余额金额:</label>
  40. <div class="col-sm-8">
  41. <div class="input-group" style="width: 200px;">
  42. <input type="number" class="form-control reward-value-input" name="reward_value_balance" data-rule="required;number;min(0.01)" min="0.01" step="0.01" placeholder="请输入余额金额">
  43. <span class="input-group-addon">元</span>
  44. </div>
  45. </div>
  46. </div>
  47. <!-- 优惠券设置 -->
  48. <div class="form-group" data-favisible="prize_type=5">
  49. <label class="control-label col-sm-3"> 选择优惠券:</label>
  50. <div class="col-sm-8">
  51. <button type="button" class="btn btn-info" id="select-coupon-btn">
  52. <i class="fa fa-plus"></i> 选择优惠券
  53. </button>
  54. <input type="hidden" name="coupon_id" data-rule="required" data-msg-required="请选择优惠券">
  55. <div id="selected-coupon-display" style="margin-top: 10px;"></div>
  56. </div>
  57. </div>
  58. <!-- 红包设置 -->
  59. <div class="form-group" data-favisible="prize_type=6">
  60. <label class="control-label col-sm-3">红包金额:</label>
  61. <div class="col-sm-8">
  62. <div class="input-group" style="width: 200px;">
  63. <input type="number" class="form-control reward-value-input" name="reward_value_redpack" data-rule="required;number;range(0.3~200)" min="0.3" max="200" step="0.01" placeholder="请输入红包金额">
  64. <span class="input-group-addon">元</span>
  65. </div>
  66. <div class="help-block">红包金额支持0.3-200元</div>
  67. <div class="alert alert-info" style="margin-top: 10px; padding: 8px;">
  68. <small>使用发放红包功能需要商家在微信支付商户开通企业打款到零钱或商家转账到零钱功能<br/>
  69. 成功领取的红包将自动打款到会员的微信零钱<br/>
  70. 除微信小程序和公众号,其他渠道红包中奖后将自动置为未中奖</small>
  71. </div>
  72. </div>
  73. </div>
  74. <!-- 兑换码设置 -->
  75. <div class="form-group" data-favisible="prize_type=7">
  76. <label class="control-label col-sm-3">兑换码类型:</label>
  77. <div class="col-sm-8">
  78. <div style="margin-bottom: 15px;">
  79. <label class="radio-inline"><input type="radio" name="code_type" value="auto" checked data-rule="checked"> 系统自动生成</label>
  80. <label class="radio-inline"><input type="radio" name="code_type" value="manual"> 手动输入</label>
  81. </div>
  82. <div data-favisible="code_type=manual">
  83. <label class="control-label">兑换码列表:</label>
  84. <textarea class="form-control" name="manual_codes" rows="5" placeholder="请输入兑换码,每行一个" data-rule="required" data-msg-required="请输入兑换码列表"></textarea>
  85. <div class="help-block">每行输入一个兑换码,系统将按顺序发放</div>
  86. </div>
  87. </div>
  88. </div>
  89. <!-- 商城奖品设置 -->
  90. <div class="form-group" data-favisible="prize_type=8">
  91. <label class="control-label col-sm-3">选择商品:</label>
  92. <div class="col-sm-8">
  93. <button type="button" class="btn btn-info" id="select-goods-btn">
  94. <i class="fa fa-plus"></i> 选择商品
  95. </button>
  96. <input type="hidden" name="goods_id" data-rule="required" data-msg-required="请选择商品">
  97. <div id="selected-goods-display" style="margin-top: 10px;"></div>
  98. </div>
  99. </div>
  100. <div class="form-group">
  101. <label class="control-label col-sm-3"> 奖品图片:</label>
  102. <div class="col-sm-8">
  103. <div class="input-group">
  104. <input id="prize-image-input" class="form-control" name="prize_image" type="text" placeholder="请上传奖品图片">
  105. <div class="input-group-addon no-border no-padding">
  106. <span><button type="button" id="plupload-prize-image" class="btn btn-danger plupload" data-input-id="prize-image-input" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-prize-image"><i class="fa fa-upload"></i> 上传</button></span>
  107. <span><button type="button" id="fachoose-prize-image" class="btn btn-primary fachoose" data-input-id="prize-image-input" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> 选择</button></span>
  108. </div>
  109. </div>
  110. <ul class="row list-inline plupload-preview" id="p-prize-image">
  111. <!-- 图片预览区域 -->
  112. </ul>
  113. <div class="help-block">建议尺寸:640*640像素</div>
  114. </div>
  115. </div>
  116. <div class="form-group" data-favisible="prize_type!=1">
  117. <label class="control-label col-sm-3">奖品数量:</label>
  118. <div class="col-sm-8">
  119. <div class="input-group" style="width: 120px;">
  120. <input type="number" class="form-control" name="prize_quantity" data-rule="required;digits;min(1)" min="1" value="1" placeholder="请输入数量">
  121. </div>
  122. <div class="help-block">奖品数量必填(未中奖类型无需填写)</div>
  123. </div>
  124. </div>
  125. <div class="form-group">
  126. <label class="control-label col-sm-3">中奖概率:</label>
  127. <div class="col-sm-8">
  128. <div class="input-group" style="width: 180px;">
  129. <input type="number" class="form-control" name="prize_rate" min="0" max="100" step="0.01" value="0.00" placeholder="请输入">
  130. <span class="input-group-addon">%</span>
  131. </div>
  132. <div class="help-block">设置该奖品的中奖概率</div>
  133. </div>
  134. </div>
  135. </form>
  136. </script>
  137. <!-- 奖品列表项模板 -->
  138. <script type="text/html" id="prize-item-template">
  139. <tr class="prize-item">
  140. <td class="text-center">
  141. <i class="fa fa-bars prize-sort-handle" style="cursor: move; color: #ccc;"></i>
  142. </td>
  143. <td>
  144. <span class="prize-name"><%=name%></span>
  145. <!-- 隐藏域存储表单数据 -->
  146. <input type="hidden" class="prize-name-input" name="prizes[<%=index%>][name]" value="<%=name%>">
  147. <input type="hidden" class="prize-type-input" name="prizes[<%=index%>][type]" value="<%=type%>">
  148. <input type="hidden" class="prize-image-input" name="prizes[<%=index%>][image]" value="<%=imageRelative%>">
  149. <% if(goodsId) { %>
  150. <input type="hidden" class="prize-goods-id-input" name="prizes[<%=index%>][goods_id]" value="<%=goodsId%>">
  151. <% } %>
  152. <% if(couponId) { %>
  153. <input type="hidden" class="prize-coupon-id-input" name="prizes[<%=index%>][coupon_id]" value="<%=couponId%>">
  154. <% } %>
  155. </td>
  156. <td>
  157. <span class="label label-<%=labelClass%>"><%=typeName%></span>
  158. <% if(rewardText) { %>
  159. <div style="font-size: 11px; color: #666; margin-top: 2px;"><%=rewardText%></div>
  160. <% } %>
  161. </td>
  162. <td class="text-center">
  163. <img src="<%=imageDisplay%>" style="width: 40px; height: 40px;" class="img-rounded">
  164. </td>
  165. <td class="text-center">
  166. <% if(quantity === 0) { %>
  167. <span>-</span>
  168. <% } else { %>
  169. <input type="number" class="form-control input-sm prize-quantity text-center" name="prizes[<%=index%>][quantity]" value="<%=quantity%>" min="1" style="width: 60px;">
  170. <% } %>
  171. </td>
  172. <td class="text-center">
  173. <div class="input-group" style="width: 100px; margin: 0 auto;">
  174. <input type="number" class="form-control input-sm prize-rate text-center" name="prizes[<%=index%>][rate]" value="<%=rate%>" min="0" max="100" step="0.01">
  175. <span class="input-group-addon" style="padding: 4px 6px;">%</span>
  176. </div>
  177. </td>
  178. <td class="text-center">
  179. <span class="prize-sent">-</span>
  180. </td>
  181. <td class="text-center">
  182. <button type="button" class="btn btn-xs btn-primary edit-prize" style="margin-right: 5px;">编辑</button>
  183. <button type="button" class="btn btn-xs btn-danger delete-prize">删除</button>
  184. </td>
  185. </tr>
  186. </script>
  187. <!-- 奖品商品选择模板(单选模式) -->
  188. <script type="text/html" id="prize-goods-template">
  189. <div class="prize-goods-item" style="display: flex; align-items: center; padding: 12px; border: 1px solid #ddd; border-radius: 4px; background: #fafafa;" data-id="<%=id%>">
  190. <div style="flex-shrink: 0; margin-right: 12px;">
  191. <img src="<%=image%>" style="width: 50px; height: 50px; border-radius: 4px;" />
  192. </div>
  193. <div style="flex: 1; margin-right: 12px;">
  194. <div style="font-size: 14px; color: #333; margin-bottom: 4px; line-height: 1.4;">
  195. <% if(type_text) { %>
  196. <span class="label label-danger" style="margin-right: 6px; font-size: 10px;"><%=type_text%></span>
  197. <% } %>
  198. <span class="goods-name-display"><%=name || title%></span>
  199. </div>
  200. <div style="font-size: 12px; color: #666; margin-bottom: 2px;">
  201. <% if(price) { %>
  202. <span style="color: #e74c3c; font-weight: bold;">¥<%=price%></span>
  203. <% } %>
  204. <% if(spec_type !== undefined) { %>
  205. <span style="margin-left: 8px;">
  206. <% if(spec_type == 0) { %>
  207. <span class="label label-info" style="font-size: 10px;">单规格</span>
  208. <% } else { %>
  209. <span class="label label-warning" style="font-size: 10px;">多规格</span>
  210. <% } %>
  211. </span>
  212. <% } %>
  213. </div>
  214. <div style="font-size: 11px; color: #999;">
  215. <% if(goods_sn) { %>
  216. <span>编码: <%=goods_sn%></span>
  217. <% } %>
  218. <% if(category && category.name) { %>
  219. <span style="margin-left: 8px;">分类: <%=category.name%></span>
  220. <% } %>
  221. <% if(type_name) { %>
  222. <span style="margin-left: 8px;">类型: <%=type_name%></span>
  223. <% } %>
  224. </div>
  225. </div>
  226. <div style="flex-shrink: 0;">
  227. <a href="javascript:;" class="remove-prize-goods" style="color: #3c8dbc; text-decoration: none;">删除</a>
  228. </div>
  229. <input type="hidden" name="goods_id" value="<%=id%>" />
  230. </div>
  231. </script>
  232. <!-- 已选优惠券显示模板 -->
  233. <script type="text/html" id="selected-coupon-template">
  234. <div class="selected-coupon-item" style="padding: 8px; border: 1px solid #ddd; border-radius: 4px; background: #f9f9f9;">
  235. <span><%=name%></span>
  236. <span class="text-muted">(<%=type_text%>)</span>
  237. <input type="hidden" name="coupon_id" value="<%=id%>">
  238. <button type="button" class="btn btn-xs btn-default pull-right" onclick="$(this).closest('.selected-coupon-item').remove();">删除</button>
  239. </div>
  240. </script>
  241. <!-- 规则参与 商品选择列表模板(支持单选和多选模式) -->
  242. <script type="text/html" id="goods-list-template">
  243. <div class="goods-list-container">
  244. <% for(var i = 0; i < goods.length; i++) { %>
  245. <div class="goods-list-item" style="display: flex; align-items: center; padding: 12px; border-bottom: 1px solid #f0f0f0; background: #fafafa;" data-id="<%=goods[i].id%>">
  246. <div style="flex-shrink: 0; margin-right: 12px;">
  247. <img src="<%=goods[i].image%>" style="width: 50px; height: 50px; border-radius: 4px;" />
  248. </div>
  249. <div style="flex: 1; margin-right: 12px;">
  250. <div style="font-size: 14px; color: #333; margin-bottom: 4px; line-height: 1.4;">
  251. <% if(goods[i].type_text) { %>
  252. <span class="label label-danger" style="margin-right: 6px; font-size: 10px;"><%=goods[i].type_text%></span>
  253. <% } %>
  254. <%=goods[i].name || goods[i].title%>
  255. </div>
  256. <div style="font-size: 12px; color: #666; margin-bottom: 2px;">
  257. <% if(goods[i].price) { %>
  258. <span style="color: #e74c3c; font-weight: bold;">¥<%=goods[i].price%></span>
  259. <% } %>
  260. <% if(goods[i].spec_type !== undefined) { %>
  261. <span style="margin-left: 8px;">
  262. <% if(goods[i].spec_type == 0) { %>
  263. <span class="label label-info" style="font-size: 10px;">单规格</span>
  264. <% } else { %>
  265. <span class="label label-warning" style="font-size: 10px;">多规格</span>
  266. <% } %>
  267. </span>
  268. <% } %>
  269. </div>
  270. <div style="font-size: 11px; color: #999;">
  271. <% if(goods[i].goods_sn) { %>
  272. <span>编码: <%=goods[i].goods_sn%></span>
  273. <% } %>
  274. <% if(goods[i].category && goods[i].category.name) { %>
  275. <span style="margin-left: 8px;">分类: <%=goods[i].category.name%></span>
  276. <% } %>
  277. <% if(goods[i].type_name) { %>
  278. <span style="margin-left: 8px;">类型: <%=goods[i].type_name%></span>
  279. <% } %>
  280. </div>
  281. </div>
  282. <div style="flex-shrink: 0;">
  283. <a href="javascript:;" class="remove-goods-item" data-id="<%=goods[i].id%>" style="color: #3c8dbc; text-decoration: none;">删除</a>
  284. </div>
  285. </div>
  286. <% } %>
  287. </div>
  288. </script>
  289. <!-- 任务商品选择模板(不生成表单字段,由JavaScript管理) -->
  290. <script type="text/html" id="task-goods-template">
  291. <div class="goods-list-container">
  292. <% for(var i = 0; i < goods.length; i++) { %>
  293. <div class="goods-list-item" style="display: flex; align-items: center; padding: 12px; border-bottom: 1px solid #f0f0f0; background: #fafafa;" data-id="<%=goods[i].id%>">
  294. <div style="flex-shrink: 0; margin-right: 12px;">
  295. <img src="<%=goods[i].image%>" style="width: 50px; height: 50px; border-radius: 4px;" />
  296. </div>
  297. <div style="flex: 1; margin-right: 12px;">
  298. <div style="font-size: 14px; color: #333; margin-bottom: 4px; line-height: 1.4;">
  299. <% if(goods[i].type_text) { %>
  300. <span class="label label-danger" style="margin-right: 6px; font-size: 10px;"><%=goods[i].type_text%></span>
  301. <% } %>
  302. <%=goods[i].name || goods[i].title%>
  303. </div>
  304. <div style="font-size: 12px; color: #666; margin-bottom: 2px;">
  305. <% if(goods[i].price) { %>
  306. <span style="color: #e74c3c; font-weight: bold;">¥<%=goods[i].price%></span>
  307. <% } %>
  308. <% if(goods[i].spec_type !== undefined) { %>
  309. <span style="margin-left: 8px;">
  310. <% if(goods[i].spec_type == 0) { %>
  311. <span class="label label-info" style="font-size: 10px;">单规格</span>
  312. <% } else { %>
  313. <span class="label label-warning" style="font-size: 10px;">多规格</span>
  314. <% } %>
  315. </span>
  316. <% } %>
  317. </div>
  318. <div style="font-size: 11px; color: #999;">
  319. <% if(goods[i].goods_sn) { %>
  320. <span>编码: <%=goods[i].goods_sn%></span>
  321. <% } %>
  322. <% if(goods[i].category && goods[i].category.name) { %>
  323. <span style="margin-left: 8px;">分类: <%=goods[i].category.name%></span>
  324. <% } %>
  325. <% if(goods[i].type_name) { %>
  326. <span style="margin-left: 8px;">类型: <%=goods[i].type_name%></span>
  327. <% } %>
  328. </div>
  329. </div>
  330. <div style="flex-shrink: 0;">
  331. <a href="javascript:;" class="remove-task-goods" data-id="<%=goods[i].id%>" style="color: #3c8dbc; text-decoration: none;">删除</a>
  332. </div>
  333. <!-- 不生成表单字段,由JavaScript统一管理隐藏字段 -->
  334. </div>
  335. <% } %>
  336. </div>
  337. </script>
  338. <!-- 活动统计模板 -->
  339. <script type="text/html" id="activity-stats-template">
  340. <div class="row">
  341. <div class="col-md-3">
  342. <div class="info-box bg-aqua">
  343. <span class="info-box-icon"><i class="fa fa-users"></i></span>
  344. <div class="info-box-content">
  345. <span class="info-box-text">参与人数</span>
  346. <span class="info-box-number"><%=totalPeople%></span>
  347. </div>
  348. </div>
  349. </div>
  350. <div class="col-md-3">
  351. <div class="info-box bg-green">
  352. <span class="info-box-icon"><i class="fa fa-trophy"></i></span>
  353. <div class="info-box-content">
  354. <span class="info-box-text">抽奖次数</span>
  355. <span class="info-box-number"><%=totalDraw%></span>
  356. </div>
  357. </div>
  358. </div>
  359. <div class="col-md-3">
  360. <div class="info-box bg-yellow">
  361. <span class="info-box-icon"><i class="fa fa-gift"></i></span>
  362. <div class="info-box-content">
  363. <span class="info-box-text">中奖次数</span>
  364. <span class="info-box-number"><%=totalWin%></span>
  365. </div>
  366. </div>
  367. </div>
  368. <div class="col-md-3">
  369. <div class="info-box bg-red">
  370. <span class="info-box-icon"><i class="fa fa-percent"></i></span>
  371. <div class="info-box-content">
  372. <span class="info-box-text">中奖率</span>
  373. <span class="info-box-number"><%=winRate%>%</span>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. </script>
  379. <!-- 条件设置模板 -->
  380. <script type="text/html" id="condition-template">
  381. <div class="condition-item" style="padding: 15px; border: 1px solid #ddd; border-radius: 4px; margin-bottom: 10px;">
  382. <div class="row">
  383. <div class="col-sm-3">
  384. <label>条件类型:</label>
  385. <select class="form-control condition-type" name="condition_type">
  386. <% for(var i = 0; i < conditionTypes.length; i++) { %>
  387. <option value="<%=conditionTypes[i].value%>" <% if(conditionTypes[i].value == selectedType) { %>selected<% } %>><%=conditionTypes[i].text%></option>
  388. <% } %>
  389. </select>
  390. </div>
  391. <div class="col-sm-3 condition-amount-group" style="<% if(showAmount) { %>display: block;<% } else { %>display: none;<% } %>">
  392. <label>金额:</label>
  393. <div class="input-group">
  394. <input type="number" class="form-control" name="condition_amount" min="0" step="0.01" value="<%=amount%>" placeholder="请输入">
  395. <span class="input-group-addon">元</span>
  396. </div>
  397. </div>
  398. <div class="col-sm-4 condition-goods-group" style="<% if(showGoods) { %>display: block;<% } else { %>display: none;<% } %>">
  399. <label>参与商品:</label>
  400. <button type="button" class="btn btn-info select-condition-goods">
  401. <i class="fa fa-plus"></i> 选择商品
  402. </button>
  403. <div class="selected-condition-goods" style="margin-top: 5px;"></div>
  404. </div>
  405. <div class="col-sm-2">
  406. <label>&nbsp;</label>
  407. <div>
  408. <button type="button" class="btn btn-danger btn-sm remove-condition">
  409. <i class="fa fa-trash"></i> 删除
  410. </button>
  411. </div>
  412. </div>
  413. </div>
  414. </div>
  415. </script>
  416. {/literal}