edit.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. <form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
  2. <div class="panel panel-default panel-intro">
  3. <div class="panel-heading">
  4. <h3 class="panel-title">
  5. <i class="fa fa-list"></i> 商品信息
  6. </h3>
  7. </div>
  8. <div class="panel-body">
  9. <!-- 商品信息展示 -->
  10. <div class="row">
  11. {volist name="goods_list" id="goods"}
  12. <div class="col-sm-12" style="margin-bottom: 20px;">
  13. <div class="media">
  14. <div class="media-left">
  15. <img src="{$goods.image}" class="media-object" style="width: 80px; height: 80px; object-fit: cover; border-radius: 4px;">
  16. </div>
  17. <div class="media-body" style="padding-left: 15px;">
  18. <h5 class="media-heading" style="margin-bottom: 8px;">
  19. <strong>{$goods.title}</strong>
  20. </h5>
  21. <p class="text-muted" style="margin-bottom: 5px; font-size: 12px;">ID: {$goods.id}</p>
  22. <p class="text-muted" style="margin-bottom: 5px; font-size: 12px;">价格: ¥{$goods.price}</p>
  23. {if condition="$goods.subtitle"}
  24. <p class="text-muted" style="font-size: 12px;">{$goods.subtitle}</p>
  25. {/if}
  26. </div>
  27. </div>
  28. </div>
  29. {/volist}
  30. </div>
  31. </div>
  32. </div>
  33. <div class="panel panel-default panel-intro">
  34. <div class="panel-heading">
  35. <h3 class="panel-title">
  36. <i class="fa fa-cog"></i> 佣金设置
  37. </h3>
  38. </div>
  39. <div class="panel-body">
  40. <!-- 基础设置 -->
  41. <div class="form-group">
  42. <label class="control-label col-xs-12 col-sm-2">是否参与:</label>
  43. <div class="col-xs-12 col-sm-8">
  44. <div class="radio">
  45. <label for="participate_no">
  46. <input id="participate_no" name="status" type="radio" value="0" checked=""> 不参与
  47. </label>
  48. </div>
  49. <div class="radio">
  50. <label for="participate_yes">
  51. <input id="participate_yes" name="status" type="radio" value="1"> 参与
  52. </label>
  53. </div>
  54. </div>
  55. </div>
  56. <div class="form-group">
  57. <label class="control-label col-xs-12 col-sm-2">分销商业绩:</label>
  58. <div class="col-xs-12 col-sm-8">
  59. <div class="radio">
  60. <label for="order_status_no">
  61. <input id="order_status_no" name="order_status" type="radio" value="0"> 不计入
  62. </label>
  63. </div>
  64. <div class="radio">
  65. <label for="order_status_yes">
  66. <input id="order_status_yes" name="order_status" type="radio" value="1" checked=""> 计入
  67. </label>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="form-group">
  72. <label class="control-label col-xs-12 col-sm-2">佣金规则:</label>
  73. <div class="col-xs-12 col-sm-8">
  74. <div class="radio">
  75. <label for="rule_default">
  76. <input id="rule_default" name="rule_type" type="radio" value="0" checked=""> 默认规则
  77. </label>
  78. </div>
  79. <div class="radio">
  80. <label for="rule_custom">
  81. <input id="rule_custom" name="rule_type" type="radio" value="1"> 独立规则
  82. </label>
  83. </div>
  84. <div class="radio">
  85. <label for="rule_batch">
  86. <input id="rule_batch" name="rule_type" type="radio" value="2"> 批量规则
  87. </label>
  88. </div>
  89. </div>
  90. </div>
  91. <div class="form-group">
  92. <label class="control-label col-xs-12 col-sm-2">分销自购:</label>
  93. <div class="col-xs-12 col-sm-8">
  94. <div class="radio">
  95. <label for="self_buy_off">
  96. <input id="self_buy_off" name="self_buy" type="radio" value="0" checked=""> 关闭
  97. </label>
  98. </div>
  99. <div class="radio">
  100. <label for="self_buy_on">
  101. <input id="self_buy_on" name="self_buy" type="radio" value="1"> 开启
  102. </label>
  103. </div>
  104. </div>
  105. </div>
  106. <div class="form-group">
  107. <label class="control-label col-xs-12 col-sm-2">商品结算方式:</label>
  108. <div class="col-xs-12 col-sm-8">
  109. <div class="radio">
  110. <label for="settlement_goods_price">
  111. <input id="settlement_goods_price" name="settlement_type" type="radio" value="0" checked=""> 商品价
  112. </label>
  113. </div>
  114. <div class="radio">
  115. <label for="settlement_actual_price">
  116. <input id="settlement_actual_price" name="settlement_type" type="radio" value="1"> 实际支付价
  117. </label>
  118. </div>
  119. </div>
  120. </div>
  121. <div class="form-group">
  122. <label class="control-label col-xs-12 col-sm-2">佣金结算方式:</label>
  123. <div class="col-xs-12 col-sm-8">
  124. <div class="radio">
  125. <label for="commission_after_pay">
  126. <input id="commission_after_pay" name="commission_settlement" type="radio" value="0" checked=""> 支付后结算
  127. </label>
  128. </div>
  129. <div class="radio">
  130. <label for="commission_after_confirm">
  131. <input id="commission_after_confirm" name="commission_settlement" type="radio" value="1"> 确认收货结算
  132. </label>
  133. </div>
  134. <div class="radio">
  135. <label for="commission_after_complete">
  136. <input id="commission_after_complete" name="commission_settlement" type="radio" value="2"> 订单完成结算
  137. </label>
  138. </div>
  139. <div class="radio">
  140. <label for="commission_manual">
  141. <input id="commission_manual" name="commission_settlement" type="radio" value="3"> 手动打款
  142. </label>
  143. </div>
  144. </div>
  145. </div>
  146. <!-- 佣金规则设置(独立规则或批量规则时显示) -->
  147. <div id="commission-rules-container" style="display: none;">
  148. <div class="form-group">
  149. <label class="control-label col-xs-12 col-sm-2">佣金比例设置:</label>
  150. <div class="col-xs-12 col-sm-10">
  151. <div class="table-responsive">
  152. <table class="table table-bordered table-hover" id="commission-rules-table">
  153. <thead>
  154. <tr>
  155. <th width="150">分销等级名称</th>
  156. <th>一级佣金比例</th>
  157. <th>二级佣金比例</th>
  158. <th>三级佣金比例</th>
  159. </tr>
  160. </thead>
  161. <tbody>
  162. {volist name="level_list" id="level"}
  163. <tr>
  164. <td><strong>{$level.name}</strong></td>
  165. <td>
  166. <div class="input-group">
  167. <select name="commission_rules[{$level.level}][1][type]" class="form-control commission-type-select" style="width: 80px;">
  168. <option value="rate">比例(%)</option>
  169. <option value="money">固定(元)</option>
  170. </select>
  171. <input type="number" name="commission_rules[{$level.level}][1][value]" class="form-control" step="0.01" min="0" placeholder="0.00">
  172. </div>
  173. </td>
  174. <td>
  175. <div class="input-group">
  176. <select name="commission_rules[{$level.level}][2][type]" class="form-control commission-type-select" style="width: 80px;">
  177. <option value="rate">比例(%)</option>
  178. <option value="money">固定(元)</option>
  179. </select>
  180. <input type="number" name="commission_rules[{$level.level}][2][value]" class="form-control" step="0.01" min="0" placeholder="0.00">
  181. </div>
  182. </td>
  183. <td>
  184. <div class="input-group">
  185. <select name="commission_rules[{$level.level}][3][type]" class="form-control commission-type-select" style="width: 80px;">
  186. <option value="rate">比例(%)</option>
  187. <option value="money">固定(元)</option>
  188. </select>
  189. <input type="number" name="commission_rules[{$level.level}][3][value]" class="form-control" step="0.01" min="0" placeholder="0.00">
  190. </div>
  191. </td>
  192. </tr>
  193. {/volist}
  194. </tbody>
  195. </table>
  196. </div>
  197. <p class="help-block">说明:比例佣金按百分比计算,固定佣金按每件商品计算</p>
  198. </div>
  199. </div>
  200. </div>
  201. </div>
  202. </div>
  203. <div class="form-group layer-footer">
  204. <label class="control-label col-xs-12 col-sm-2"></label>
  205. <div class="col-xs-12 col-sm-8">
  206. <button type="submit" class="btn btn-success btn-embossed disabled">{:__('OK')}</button>
  207. <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
  208. </div>
  209. </div>
  210. </form>
  211. <script>
  212. $(document).ready(function() {
  213. // 佣金规则类型切换
  214. $('input[name="rule_type"]').on('change', function() {
  215. var ruleType = $(this).val();
  216. var rulesContainer = $('#commission-rules-container');
  217. if (ruleType == '1' || ruleType == '2') { // 独立规则或批量规则
  218. rulesContainer.show();
  219. } else {
  220. rulesContainer.hide();
  221. }
  222. });
  223. // 初始化规则显示状态
  224. var checkedRuleType = $('input[name="rule_type"]:checked').val();
  225. if (checkedRuleType == '1' || checkedRuleType == '2') {
  226. $('#commission-rules-container').show();
  227. }
  228. // 表单提交处理
  229. $('#edit-form').on('submit', function(e) {
  230. e.preventDefault();
  231. var formData = $(this).serialize();
  232. Fast.api.ajax({
  233. url: $(this).attr('action') || window.location.href,
  234. type: 'POST',
  235. data: formData
  236. }, function(data, ret) {
  237. Fast.api.close();
  238. }, function(data, ret) {
  239. console.error('保存失败:', ret.msg);
  240. });
  241. });
  242. // 初始化已有数据
  243. {if condition="isset($goods_list[0]['commission_goods'])"}
  244. var commissionData = {$goods_list[0]['commission_goods']|json_encode};
  245. if (commissionData) {
  246. // 设置基础选项
  247. if (commissionData.status !== undefined) {
  248. $('input[name="status"][value="' + commissionData.status + '"]').prop('checked', true);
  249. }
  250. if (commissionData.order_status !== undefined) {
  251. $('input[name="order_status"][value="' + commissionData.order_status + '"]').prop('checked', true);
  252. }
  253. if (commissionData.rule_type !== undefined) {
  254. $('input[name="rule_type"][value="' + commissionData.rule_type + '"]').prop('checked', true).trigger('change');
  255. }
  256. if (commissionData.self_buy !== undefined) {
  257. $('input[name="self_buy"][value="' + commissionData.self_buy + '"]').prop('checked', true);
  258. }
  259. if (commissionData.settlement_type !== undefined) {
  260. $('input[name="settlement_type"][value="' + commissionData.settlement_type + '"]').prop('checked', true);
  261. }
  262. if (commissionData.commission_settlement !== undefined) {
  263. $('input[name="commission_settlement"][value="' + commissionData.commission_settlement + '"]').prop('checked', true);
  264. }
  265. }
  266. {/if}
  267. });
  268. </script>