edit.html 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  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. <div class="layui-tab layui-tab-brief broadcast-tabs">
  27. <ul class="layui-tab-title">
  28. <li><a href="{:url('Emailsubscribe/index')}">订阅记录</a></li>
  29. <li><a href="{:url('Emailsubscribe/log')}">邮件日志</a></li>
  30. <li><a href="{:url('Emailtemplate/index')}">模板管理</a></li>
  31. <li><a href="{:url('Emailbroadcast/index')}">营销群发</a></li>
  32. <li class="layui-this">编辑任务</li>
  33. </ul>
  34. </div>
  35. <form id="broadcastForm" class="layui-form layui-form-pane" method="post" action="">
  36. {:token_field()}
  37. <div class="broadcast-section">
  38. <div class="broadcast-section-title">基础信息</div>
  39. <div class="broadcast-section-body">
  40. <div class="layui-row layui-col-space16">
  41. <div class="layui-col-md6">
  42. <div class="layui-form-item">
  43. <label class="layui-form-label">任务名称</label>
  44. <div class="layui-input-block">
  45. <input type="text" name="row[name]" value="{$data.name}" required lay-verify="required" placeholder="请输入群发任务名称" autocomplete="off" class="layui-input">
  46. </div>
  47. </div>
  48. </div>
  49. <div class="layui-col-md3">
  50. <div class="layui-form-item">
  51. <label class="layui-form-label">语言</label>
  52. <div class="layui-input-block">
  53. <select name="row[lang]" lay-filter="broadcast-lang">
  54. {volist name="langList" id="lang"}
  55. <option value="{$lang.mark}" {if condition="$data.lang eq $lang.mark"}selected{/if}>{$lang.name} ({$lang.mark})</option>
  56. {/volist}
  57. </select>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="layui-col-md3">
  62. <div class="layui-form-item">
  63. <label class="layui-form-label">来源标识</label>
  64. <div class="layui-input-block">
  65. <input type="text" name="row[source_key]" value="{$data.source_key}" placeholder="可选,如 footer" autocomplete="off" class="layui-input">
  66. </div>
  67. </div>
  68. </div>
  69. <div class="layui-col-md6">
  70. <div class="layui-form-item">
  71. <label class="layui-form-label">邮件模板</label>
  72. <div class="layui-input-block">
  73. <select name="row[template_id]" required lay-verify="required">
  74. <option value="">请选择模板</option>
  75. {volist name="templateList" id="tpl"}
  76. <option value="{$tpl.id}" data-lang="{$tpl.lang}" {if condition="$data.template_id eq $tpl.id"}selected{/if}>{$tpl.name} / {$tpl.lang}</option>
  77. {/volist}
  78. </select>
  79. </div>
  80. </div>
  81. </div>
  82. <div class="layui-col-md6">
  83. <div class="layui-form-item">
  84. <label class="layui-form-label">任务备注</label>
  85. <div class="layui-input-block">
  86. <input type="text" name="row[remark]" value="{$data.remark}" placeholder="可记录本次营销主题、活动说明等" autocomplete="off" class="layui-input">
  87. </div>
  88. </div>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. <div class="broadcast-section">
  94. <div class="broadcast-section-title">筛选条件</div>
  95. <div class="broadcast-section-body">
  96. <div class="layui-row layui-col-space16">
  97. <div class="layui-col-md4">
  98. <div class="layui-form-item">
  99. <label class="layui-form-label">订阅状态</label>
  100. <div class="layui-input-block">
  101. <div class="broadcast-check-group">
  102. <input type="checkbox" name="row[status_filter][]" value="1" title="已订阅" {if condition="strpos(',' ~ $data.status_filter ~ ',', ',1,') !== false"}checked{/if}>
  103. <input type="checkbox" name="row[status_filter][]" value="0" title="已取消" {if condition="strpos(',' ~ $data.status_filter ~ ',', ',0,') !== false"}checked{/if}>
  104. <input type="checkbox" name="row[status_filter][]" value="9" title="用户退订" {if condition="strpos(',' ~ $data.status_filter ~ ',', ',9,') !== false"}checked{/if}>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="layui-col-md4">
  110. <div class="layui-form-item">
  111. <label class="layui-form-label">确认状态</label>
  112. <div class="layui-input-block">
  113. <div class="broadcast-check-group">
  114. <input type="checkbox" name="row[confirm_status_filter][]" value="1" title="已确认" {if condition="strpos(',' ~ $data.confirm_status_filter ~ ',', ',1,') !== false"}checked{/if}>
  115. <input type="checkbox" name="row[confirm_status_filter][]" value="0" title="未确认" {if condition="strpos(',' ~ $data.confirm_status_filter ~ ',', ',0,') !== false"}checked{/if}>
  116. </div>
  117. </div>
  118. </div>
  119. </div>
  120. <div class="layui-col-md4">
  121. <div class="layui-form-item">
  122. <label class="layui-form-label">最近发送</label>
  123. <div class="layui-input-block">
  124. <div class="broadcast-check-group">
  125. <input type="checkbox" name="row[last_send_status_filter][]" value="0" title="未发送" {if condition="strpos(',' ~ $data.last_send_status_filter ~ ',', ',0,') !== false"}checked{/if}>
  126. <input type="checkbox" name="row[last_send_status_filter][]" value="1" title="成功" {if condition="strpos(',' ~ $data.last_send_status_filter ~ ',', ',1,') !== false"}checked{/if}>
  127. <input type="checkbox" name="row[last_send_status_filter][]" value="2" title="失败" {if condition="strpos(',' ~ $data.last_send_status_filter ~ ',', ',2,') !== false"}checked{/if}>
  128. </div>
  129. <div class="broadcast-inline-note">建议保留全部状态,避免误排除本次应发送的订阅用户。</div>
  130. </div>
  131. </div>
  132. </div>
  133. <div class="layui-col-md12">
  134. <div class="layui-form-item">
  135. <label class="layui-form-label">去重规则</label>
  136. <div class="layui-input-block">
  137. <div class="broadcast-check-group">
  138. <input type="checkbox" name="row[exclude_sent]" value="1" title="排除已发送过 marketing_broadcast 的订阅用户" {if condition="$data.exclude_sent eq 1"}checked{/if}>
  139. </div>
  140. </div>
  141. </div>
  142. </div>
  143. </div>
  144. </div>
  145. </div>
  146. <div class="broadcast-section">
  147. <div class="broadcast-section-title">说明</div>
  148. <div class="broadcast-section-body">
  149. <div class="broadcast-tips">
  150. 模板中可使用变量:{{email}}、{{lang}}、{{broadcast_name}}、{{broadcast_id}}、{{template_name}}。<br>
  151. 编辑后会重新按当前筛选条件生成发送名单,请确认条件正确后再保存。
  152. </div>
  153. </div>
  154. </div>
  155. <div class="layui-form-item broadcast-footer">
  156. <div class="layui-input-block">
  157. <button class="layui-btn" lay-submit>保存修改</button>
  158. <a class="layui-btn layui-btn-primary" href="{:url('Emailbroadcast/index')}">返回列表</a>
  159. </div>
  160. </div>
  161. </form>
  162. </div>
  163. </div>
  164. </div>
  165. {/block}