123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('活动名称')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-name" data-rule="required" class="form-control" name="row[name]" type="text" value="{$row.name|htmlentities}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('活动描述')}:</label>
- <div class="col-xs-12 col-sm-8">
- <textarea id="c-description" class="form-control" rows="5" name="row[description]">{$row.description|htmlentities}</textarea>
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('活动封面')}:</label>
- <div class="col-xs-12 col-sm-8">
- <div class="input-group">
- <input id="c-cover_image" class="form-control" size="50" name="row[cover_image]" type="text" value="{$row.cover_image|htmlentities}">
- <div class="input-group-addon no-border no-padding">
- <span><button type="button" id="plupload-cover_image" class="btn btn-danger plupload" data-input-id="c-cover_image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false" data-preview-id="p-cover_image"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
- <span><button type="button" id="fachoose-cover_image" class="btn btn-primary fachoose" data-input-id="c-cover_image" data-mimetype="image/*" data-multiple="false"><i class="fa fa-list"></i> {:__('Choose')}</button></span>
- </div>
- <span class="msg-box n-right" for="c-cover_image"></span>
- </div>
- <ul class="row list-inline plupload-preview" id="p-cover_image"></ul>
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('活动类型')}:</label>
- <div class="col-xs-12 col-sm-8">
- {foreach name="typeList" item="vo"}
- <label for="row[type]-{$key}" class="radio-inline">
- <input id="row[type]-{$key}" name="row[type]" type="radio" value="{$key}" {if condition="$key eq $row.type"}checked{/if}> {$vo}
- </label>
- {/foreach}
- </div>
- </div>
-
- <!-- 活动渠道 -->
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">活动渠道:</label>
- <div class="col-xs-12 col-sm-8">
- <!-- 渠道选择 -->
- <div class="channel-list">
- {foreach name="channelList" item="vo" key="key"}
- <label class="checkbox-inline">
- <input type="checkbox" name="row[channels][]" value="{$key}" {if condition="in_array($key, json_decode($row.channels, true) ?: [])"}checked{/if}>
- {$vo}
- </label>
- {/foreach}
- </div>
-
- <span class="help-block">请选择本次活动投放的渠道,至少选择一个</span>
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('活动状态')}:</label>
- <div class="col-xs-12 col-sm-8">
- {foreach name="statusList" item="vo"}
- <label for="row[status]-{$key}" class="radio-inline">
- <input id="row[status]-{$key}" name="row[status]" type="radio" value="{$key}" {if condition="$key eq $row.status"}checked{/if}> {$vo}
- </label>
- {/foreach}
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('开始时间')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-start_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[start_time]" type="text" value="{$row.start_time|htmlentities}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('结束时间')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-end_time" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[end_time]" type="text" value="{$row.end_time|htmlentities}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('开奖方式')}:</label>
- <div class="col-xs-12 col-sm-8">
- {foreach name="lotteryTypeList" item="vo"}
- <label for="row[lottery_type]-{$key}" class="radio-inline">
- <input id="row[lottery_type]-{$key}" name="row[lottery_type]" type="radio" value="{$key}" {if condition="$key eq $row.lottery_type"}checked{/if}> {$vo}
- </label>
- {/foreach}
- </div>
- </div>
- <div class="form-group lottery-time-group" {if condition="$row.lottery_type neq 2"}style="display:none;"{/if}>
- <label class="control-label col-xs-12 col-sm-2">{:__('开奖时间')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-lottery_time" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" name="row[lottery_time]" type="text" value="{$row.lottery_time|htmlentities}">
- </div>
- </div>
- <div class="form-group lottery-people-group" {if condition="$row.lottery_type neq 3"}style="display:none;"{/if}>
- <label class="control-label col-xs-12 col-sm-2">{:__('开奖人数')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-lottery_people_num" class="form-control" name="row[lottery_people_num]" type="number" value="{$row.lottery_people_num|htmlentities}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('适用人群')}:</label>
- <div class="col-xs-12 col-sm-8">
- {foreach name="userLimitTypeList" item="vo"}
- <label for="row[user_limit_type]-{$key}" class="radio-inline">
- <input id="row[user_limit_type]-{$key}" name="row[user_limit_type]" type="radio" value="{$key}" {if condition="$key eq $row.user_limit_type"}checked{/if}> {$vo}
- </label>
- {/foreach}
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('单人参与次数限制')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-person_limit_num" class="form-control" name="row[person_limit_num]" type="number" value="{$row.person_limit_num|default='1'}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('引导样式')}:</label>
- <div class="col-xs-12 col-sm-8">
- {foreach name="guideStyleList" item="vo"}
- <label for="row[guide_style]-{$key}" class="radio-inline">
- <input id="row[guide_style]-{$key}" name="row[guide_style]" type="radio" value="{$key}" {if condition="$key eq $row.guide_style"}checked{/if}> {$vo}
- </label>
- {/foreach}
- </div>
- </div>
- <div class="form-group guide-custom-group" {if condition="$row.guide_style neq 2"}style="display:none;"{/if}>
- <label class="control-label col-xs-12 col-sm-2">{:__('自定义引导图片')}:</label>
- <div class="col-xs-12 col-sm-8">
- <div class="input-group">
- <input id="c-guide_image" class="form-control" name="row[guide_image]" type="text" value="{$row.guide_image|htmlentities}">
- <div class="input-group-addon no-border no-padding">
- <span><button type="button" id="plupload-guide_image" class="btn btn-danger plupload" data-input-id="c-guide_image" data-mimetype="image/gif,image/jpeg,image/png,image/jpg,image/bmp" data-multiple="false"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group guide-custom-group" {if condition="$row.guide_style neq 2"}style="display:none;"{/if}>
- <label class="control-label col-xs-12 col-sm-2">{:__('引导文案')}:</label>
- <div class="col-xs-12 col-sm-8">
- <input id="c-guide_text" class="form-control" name="row[guide_text]" type="text" value="{$row.guide_text|htmlentities}">
- </div>
- </div>
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">{:__('抽奖介绍内容')}:</label>
- <div class="col-xs-12 col-sm-8">
- <textarea id="c-intro_content" class="form-control editor" rows="5" name="row[intro_content]">{$row.intro_content|htmlentities}</textarea>
- </div>
- </div>
- <!-- 奖品配置 -->
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">奖品配置:</label>
- <div class="col-xs-12 col-sm-10">
- <!-- 奖品设置 -->
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">奖品设置(必须设置8个奖品位)</h3>
- <div class="panel-tools">
- <button type="button" class="btn btn-primary btn-xs" id="add-prize-btn">
- <i class="fa fa-plus"></i> 添加奖品
- </button>
- <span class="badge" style="margin-left: 10px;">
- 已添加 <span id="prize-count">0</span>/8 个奖品,还需添加 <span id="prize-need">8</span> 个奖品
- </span>
- </div>
- </div>
- <div class="panel-body">
- <div class="alert alert-info">
- <i class="fa fa-info-circle"></i>
- 所有奖品总概率必须等于100%(包含未中奖),当前总概率:<strong id="total-probability">0.00%</strong>
- </div>
-
- <div class="table-responsive">
- <table class="table table-bordered prize-list">
- <thead>
- <tr>
- <th width="60">排序</th>
- <th width="150">奖品名称</th>
- <th width="120">奖品详情</th>
- <th width="80">奖品图片</th>
- <th width="80">奖品数量 <i class="fa fa-question-circle" title="设置该奖品的总数量,0表示无限制"></i></th>
- <th width="120">中奖概率 <i class="fa fa-question-circle" title="设置该奖品的中奖概率"></i></th>
- <th width="80">已发放</th>
- <th width="120">操作</th>
- </tr>
- </thead>
- <tbody>
- <!-- 默认未中奖项 -->
- <tr class="prize-item" data-type="no-prize" data-index="0" data-prize-id="system-no-prize">
- <td class="text-center">
- <i class="fa fa-bars prize-sort-handle" style="cursor: move; color: #ccc;" title="拖拽排序"></i>
- <input type="hidden" class="prize-type-input" value="1">
- <input type="hidden" class="prize-name-input" value="谢谢参与">
- <input type="hidden" class="prize-image-input" value="">
- </td>
- <td>
- <div class="prize-info">
- <strong class="prize-name">谢谢参与</strong>
- </div>
- </td>
- <td class="text-center">
- <span class="label label-default">未中奖</span>
- </td>
- <td class="text-center">
- <img src="/assets/img/qrcode.png" class="prize-image img-rounded" alt="谢谢参与">
- </td>
- <td class="text-center">
- <span class="text-muted">-</span>
- </td>
- <td class="text-center">
- <div class="input-group prize-rate-group">
- <input type="number" class="form-control input-sm prize-rate text-center" value="0.00" min="0" max="100" step="0.01">
- <span class="input-group-addon">%</span>
- </div>
- </td>
- <td class="text-center">
- <span class="text-muted">-</span>
- </td>
- <td class="text-center">
- <button type="button" class="btn btn-xs btn-primary edit-prize" style="margin-right: 5px;">编辑</button>
- <br><span class="text-muted" style="font-size: 11px;">系统默认</span>
- </td>
- </tr>
- </tbody>
- </table>
- </div>
- <div class="alert alert-danger" id="prize-validation-error" style="display: none;">
- <i class="fa fa-exclamation-triangle"></i>
- <span id="prize-error-text">奖品总概率必须等于100%,当前为0.00%</span>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- 参与规则配置 -->
- <div class="form-group">
- <label class="control-label col-xs-12 col-sm-2">参与规则:</label>
- <div class="col-xs-12 col-sm-10">
- <!-- 任务类型选择 -->
- <div class="panel panel-default">
- <div class="panel-heading">
- <h3 class="panel-title">抽奖参与条件设置(至少选择一项)</h3>
- </div>
- <div class="panel-body">
- <div class="form-group">
- <label class="control-label">选择任务类型:</label>
- <div class="checkbox-list">
- <label class="checkbox-inline">
- <input type="checkbox" name="row[task_type][]" value="1"> 购买指定商品
- </label>
- <label class="checkbox-inline">
- <input type="checkbox" name="row[task_type][]" value="2"> 单笔订单消费满额
- </label>
- <label class="checkbox-inline">
- <input type="checkbox" name="row[task_type][]" value="3"> 单次充值满额
- </label>
- <label class="checkbox-inline">
- <input type="checkbox" name="row[task_type][]" value="4"> 活动期间累计消费满额
- </label>
- </div>
- <div class="help-block">用户满足以上任一条件即可参与抽奖</div>
- </div>
- <!-- 购买指定商品设置 -->
- <div id="task-setting-1" class="task-setting" style="display: none;">
- <h4><i class="fa fa-shopping-cart"></i> 购买指定商品设置</h4>
- <div class="form-group">
- <label class="control-label">参与规则:</label>
- <div class="radio-list">
- <label class="radio-inline">
- <input type="radio" name="condition[1][goods_rule]" value="1" checked> 购买以下任意一件商品
- </label>
- <label class="radio-inline">
- <input type="radio" name="condition[1][goods_rule]" value="2"> 购买以下全部商品
- </label>
- </div>
- </div>
- <div class="form-group">
- <label class="control-label">选择商品:</label>
- <div class="input-group">
- <input type="hidden" id="task-goods-ids-1" name="condition[1][goods_ids]" value="">
- <button type="button" class="btn btn-primary" id="select-task-goods-btn">
- <i class="fa fa-plus"></i> 选择商品
- </button>
- </div>
- <div id="selected-goods" class="selected-goods-container" style="margin-top: 10px;"></div>
- </div>
- </div>
- <!-- 单笔订单消费满额设置 -->
- <div id="task-setting-2" class="task-setting" style="display: none;">
- <h4><i class="fa fa-money"></i> 单笔订单消费满额设置</h4>
- <div class="form-group">
- <label class="control-label">消费金额:</label>
- <div class="input-group" style="width: 200px;">
- <span class="input-group-addon">¥</span>
- <input type="number" class="form-control" name="condition[2][condition_value]" min="0.01" step="0.01" placeholder="请输入金额">
- </div>
- <div class="help-block">用户单笔订单消费满此金额即可参与抽奖</div>
- </div>
- </div>
- <!-- 单次充值满额设置 -->
- <div id="task-setting-3" class="task-setting" style="display: none;">
- <h4><i class="fa fa-credit-card"></i> 单次充值满额设置</h4>
- <div class="form-group">
- <label class="control-label">充值金额:</label>
- <div class="input-group" style="width: 200px;">
- <span class="input-group-addon">¥</span>
- <input type="number" class="form-control" name="condition[3][condition_value]" min="0.01" step="0.01" placeholder="请输入金额">
- </div>
- <div class="help-block">用户单次充值满此金额即可参与抽奖</div>
- </div>
- </div>
- <!-- 活动期间累计消费满额设置 -->
- <div id="task-setting-4" class="task-setting" style="display: none;">
- <h4><i class="fa fa-line-chart"></i> 活动期间累计消费满额设置</h4>
- <div class="form-group">
- <label class="control-label">累计消费金额:</label>
- <div class="input-group" style="width: 200px;">
- <span class="input-group-addon">¥</span>
- <input type="number" class="form-control" name="condition[4][condition_value]" min="0.01" step="0.01" placeholder="请输入金额">
- </div>
- <div class="help-block">用户在活动期间累计消费满此金额即可参与抽奖</div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="form-group layer-footer">
- <label class="control-label col-xs-12 col-sm-2"></label>
- <div class="col-xs-12 col-sm-8">
- <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
- <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
- </div>
- </div>
- </form>
- <!-- 传递后台数据给前端 -->
- <div id="backend-data"
- data-prizes="{$prizes|json_encode|htmlentities}"
- data-conditions="{$conditions|json_encode|htmlentities}"
- data-task-types="{$taskTypes|json_encode|htmlentities}"
- style="display: none;"></div>
- <script type="text/javascript">
- // 从DOM中获取后台数据
- $(document).ready(function() {
- var dataContainer = $('#backend-data');
- try {
- window.existingPrizes = JSON.parse(dataContainer.attr('data-prizes') || '[]');
- window.existingConditions = JSON.parse(dataContainer.attr('data-conditions') || '[]');
- window.existingTaskTypes = JSON.parse(dataContainer.attr('data-task-types') || '[]');
-
- console.log('后台数据已传递到前端:', {
- prizes: window.existingPrizes,
- conditions: window.existingConditions,
- taskTypes: window.existingTaskTypes
- });
- } catch (e) {
- console.error('解析后台数据失败:', e);
- window.existingPrizes = [];
- window.existingConditions = [];
- window.existingTaskTypes = [];
- }
- });
- </script>
- <!-- 引入JavaScript模板 -->
- {include file="lottery/activity/scripttpl" /}
|