add.html 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. {extend name="index_layout"/}
  2. {block name="main"}
  3. <style>
  4. .broadcast-form-wrap{max-width:980px;margin:0 auto;}
  5. .broadcast-form-wrap .layui-card{box-shadow:none;border:1px solid #f2f2f2;border-radius:6px;}
  6. .broadcast-form-wrap .layui-card-body{padding:22px 26px;}
  7. .broadcast-tabs{margin-bottom:18px;}
  8. .broadcast-section{margin-bottom:18px;border:1px solid #f2f2f2;border-radius:6px;background:#fafafa;}
  9. .broadcast-section-title{padding:14px 18px;font-size:15px;font-weight:600;color:#333;border-bottom:1px solid #f0f0f0;background:#fff;}
  10. .broadcast-section-body{padding:18px;}
  11. .broadcast-form-wrap .layui-form-label{width:110px;}
  12. .broadcast-form-wrap .layui-input-block{margin-left:140px;}
  13. .broadcast-form-wrap .layui-form-pane .layui-form-checkbox{margin-top:0;}
  14. .broadcast-check-group{padding:10px 15px;min-height:38px;line-height:30px;background:#fff;border:1px solid #e6e6e6;border-radius:2px;}
  15. .broadcast-inline-note{margin-top:8px;color:#999;font-size:12px;}
  16. .broadcast-footer{padding-top:8px;}
  17. .broadcast-tips{padding:12px 14px;background:#fff;border:1px dashed #e6e6e6;border-radius:4px;color:#666;line-height:1.8;}
  18. @media (max-width: 992px){
  19. .broadcast-form-wrap .layui-form-label{width:100px;}
  20. .broadcast-form-wrap .layui-input-block{margin-left:130px;}
  21. }
  22. </style>
  23. <div class="layui-fluid broadcast-form-wrap">
  24. <div class="layui-card">
  25. <div class="layui-card-body">
  26. <form id="broadcastForm" class="layui-form layui-form-pane" method="post" action="">
  27. {:token_field()}
  28. <div class="broadcast-section">
  29. <div class="broadcast-section-title">基础信息</div>
  30. <div class="broadcast-section-body">
  31. <div class="layui-row layui-col-space16">
  32. <div class="layui-col-md6">
  33. <div class="layui-form-item">
  34. <label class="layui-form-label">任务名称</label>
  35. <div class="layui-input-block">
  36. <input type="text" name="row[name]" required lay-verify="required" placeholder="请输入群发任务名称" autocomplete="off" class="layui-input">
  37. </div>
  38. </div>
  39. </div>
  40. <div class="layui-col-md3">
  41. <div class="layui-form-item">
  42. <label class="layui-form-label">语言</label>
  43. <div class="layui-input-block">
  44. <select name="row[lang]" lay-filter="broadcast-lang">
  45. {volist name="langList" id="lang"}
  46. <option value="{$lang.mark}" {if condition="$defaultLang eq $lang.mark"}selected{/if}>{$lang.name} ({$lang.mark})</option>
  47. {/volist}
  48. </select>
  49. </div>
  50. </div>
  51. </div>
  52. <div class="layui-col-md3">
  53. <div class="layui-form-item">
  54. <label class="layui-form-label">来源标识</label>
  55. <div class="layui-input-block">
  56. <input type="text" name="row[source_key]" placeholder="可选,如 footer" autocomplete="off" class="layui-input">
  57. </div>
  58. </div>
  59. </div>
  60. <div class="layui-col-md6">
  61. <div class="layui-form-item">
  62. <label class="layui-form-label">邮件模板</label>
  63. <div class="layui-input-block">
  64. <select name="row[template_id]" required lay-verify="required">
  65. <option value="">请选择模板</option>
  66. {volist name="templateList" id="tpl"}
  67. <option value="{$tpl.id}" data-lang="{$tpl.lang}">{$tpl.name} / {$tpl.lang}</option>
  68. {/volist}
  69. </select>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="layui-col-md6">
  74. <div class="layui-form-item">
  75. <label class="layui-form-label">任务备注</label>
  76. <div class="layui-input-block">
  77. <input type="text" name="row[remark]" placeholder="可记录本次营销主题、活动说明等" autocomplete="off" class="layui-input">
  78. </div>
  79. </div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. <div class="broadcast-section">
  85. <div class="broadcast-section-title">筛选条件</div>
  86. <div class="broadcast-section-body">
  87. <div class="layui-row layui-col-space16">
  88. <div class="layui-col-md4">
  89. <div class="layui-form-item">
  90. <label class="layui-form-label">订阅状态</label>
  91. <div class="layui-input-block">
  92. <div class="broadcast-check-group">
  93. <input type="checkbox" name="row[status_filter][]" value="1" title="已订阅" checked>
  94. <input type="checkbox" name="row[status_filter][]" value="0" title="已取消">
  95. <input type="checkbox" name="row[status_filter][]" value="9" title="用户退订">
  96. </div>
  97. </div>
  98. </div>
  99. </div>
  100. <div class="layui-col-md4">
  101. <div class="layui-form-item">
  102. <label class="layui-form-label">确认状态</label>
  103. <div class="layui-input-block">
  104. <div class="broadcast-check-group">
  105. <input type="checkbox" name="row[confirm_status_filter][]" value="1" title="已确认" checked>
  106. <input type="checkbox" name="row[confirm_status_filter][]" value="0" title="未确认" checked>
  107. </div>
  108. <div class="broadcast-inline-note">默认包含已确认和未确认订阅用户,避免因确认状态筛空名单。</div>
  109. </div>
  110. </div>
  111. </div>
  112. <div class="layui-col-md4">
  113. <div class="layui-form-item">
  114. <label class="layui-form-label">最近发送</label>
  115. <div class="layui-input-block">
  116. <div class="broadcast-check-group">
  117. <input type="checkbox" name="row[last_send_status_filter][]" value="0" title="未发送" checked>
  118. <input type="checkbox" name="row[last_send_status_filter][]" value="1" title="成功" checked>
  119. <input type="checkbox" name="row[last_send_status_filter][]" value="2" title="失败" checked>
  120. </div>
  121. <div class="broadcast-inline-note">默认包含全部最近发送状态,避免误筛掉订阅用户。</div>
  122. </div>
  123. </div>
  124. </div>
  125. <div class="layui-col-md12">
  126. <div class="layui-form-item">
  127. <label class="layui-form-label">去重规则</label>
  128. <div class="layui-input-block">
  129. <div class="broadcast-check-group">
  130. <input type="checkbox" name="row[exclude_sent]" value="1" title="排除已发送过 marketing_broadcast 的订阅用户" checked>
  131. <input type="checkbox" name="row[allow_user_unsubscribed]" value="1" title="允许包含“用户退订”状态(默认不发送)">
  132. </div>
  133. <div class="broadcast-inline-note">默认不会给“用户退订”状态发送营销邮件;仅在特殊场景手动勾选后才允许包含。</div>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. </div>
  139. </div>
  140. <div class="broadcast-section">
  141. <div class="broadcast-section-title">说明</div>
  142. <div class="broadcast-section-body">
  143. <div class="broadcast-tips">
  144. 模板中可使用变量:{{email}}、{{lang}}、{{broadcast_name}}、{{broadcast_id}}、{{template_name}}。<br>
  145. 保存任务后不会立即发送,需要回到“营销群发”列表手动点击“执行发送”。
  146. </div>
  147. </div>
  148. </div>
  149. <div class="layui-form-item broadcast-footer">
  150. <div class="layui-input-block">
  151. <button class="layui-btn" lay-submit>保存任务</button>
  152. <a class="layui-btn layui-btn-primary" href="{:url('Emailbroadcast/index')}">返回列表</a>
  153. </div>
  154. </div>
  155. </form>
  156. </div>
  157. </div>
  158. </div>
  159. {/block}