edit.html 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679
  1. {extend name="app/shop/view/base.html"/}
  2. {block name="resources"}
  3. <style>
  4. .len-input{width: 100%;max-width: 120px;}
  5. .layui-table-view{margin-top: 0;}
  6. .layui-form-item .layui-input-inline.end-time{float: none;}
  7. .desc{margin-bottom: 15px;border:1px dashed #ff8143;padding: 5px 10px;background: #fff0e9;color: #ff8143;width: 65%;}
  8. .forbidden{cursor:not-allowed;background-color: #eee;}
  9. .layui-table-body{max-height: 480px !important;}
  10. .goods-title{display: flex;align-items: center;}
  11. .goods-title .goods-img{display: flex;align-items: center;justify-content: center;width: 55px;height: 55px;margin-right: 5px;}
  12. .goods-title .goods-img img{max-height: 100%;max-width: 100%;}
  13. .goods-title .goods-name{flex: 1;line-height: 1.6;}
  14. .form-wrap {position: relative;}
  15. .layui-carousel { position: absolute; top: 15px; left: 1325px; background: #fff;}
  16. </style>
  17. {/block}
  18. {block name="main"}
  19. <div class="layui-form form-wrap">
  20. <div class="layui-form-item">
  21. <label class="layui-form-label"><span class="required">*</span>活动名称:</label>
  22. <div class="layui-input-block">
  23. <input type="text" name="presale_name" lay-verify="required" value="{$presale_info.presale_name}" autocomplete="off" class="layui-input len-long" maxlength="40">
  24. </div>
  25. </div>
  26. <div class="layui-form-item">
  27. <label class="layui-form-label"><span class="required">*</span>定金支付时间:</label>
  28. <div class="layui-inline">
  29. <div class="layui-input-inline len-mid">
  30. <input type="text" id="start_time" name="start_time" value="{:date('Y-m-d H:i:s', $presale_info.start_time)}" lay-verify="required|stime" class="layui-input" autocomplete="off" readonly>
  31. <input type="hidden" value="{:date('Y-m-d H:i:s', $presale_info.start_time)}" id="ystart_time" name="ystart_time">
  32. <i class=" iconrili iconfont calendar"></i>
  33. </div>
  34. <span class="layui-form-mid">-</span>
  35. <div class="layui-input-inline len-mid end-time">
  36. <input type="text" id="end_time" name="end_time" value="{:date('Y-m-d H:i:s', $presale_info.end_time)}" lay-verify="required|etime" class="layui-input" autocomplete="off" readonly>
  37. <input type="hidden" value="{$presale_info.end_time}" id="old_end_time">
  38. <i class=" iconrili iconfont calendar"></i>
  39. </div>
  40. </div>
  41. <div class="word-aux">
  42. <p>定金支付时间</p>
  43. </div>
  44. </div>
  45. <div class="layui-form-item">
  46. <label class="layui-form-label"><span class="required">*</span>尾款支付时间:</label>
  47. <div class="layui-inline">
  48. <div class="layui-input-inline len-mid">
  49. <input type="text" id="pay_start_time" name="pay_start_time" value="{:date('Y-m-d H:i:s', $presale_info.pay_start_time)}" lay-verify="required|spay_time" class="layui-input" autocomplete="off" readonly>
  50. <input type="hidden" value="{:date('Y-m-d H:i:s', $presale_info.pay_start_time)}" id="pstart_time" name="pstart_time">
  51. <i class=" iconrili iconfont calendar"></i>
  52. </div>
  53. <span class="layui-form-mid">-</span>
  54. <div class="layui-input-inline len-mid end-time">
  55. <input type="text" id="pay_end_time" name="pay_end_time" value="{:date('Y-m-d H:i:s', $presale_info.pay_end_time)}" lay-verify="required|epay_time" class="layui-input" autocomplete="off" readonly>
  56. <input type="hidden" value="{$presale_info.pay_end_time}" id="old_pay_end_time">
  57. <i class=" iconrili iconfont calendar"></i>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="layui-form-item">
  62. <label class="layui-form-label">限购:</label>
  63. <div class="layui-input-block">
  64. <input type="number" min="0" name="presale_num" value="{$presale_info.presale_num}" class="layui-input len-short">
  65. </div>
  66. <div class="word-aux">
  67. <p>下单时每人最多可购买数量限制,不填时不限制。</p>
  68. </div>
  69. </div>
  70. <div class="layui-form-item">
  71. <label class="layui-form-label">预计发货时间:</label>
  72. <div class="layui-input-block">
  73. <input type="radio" name="deliver_type" value="0" lay-filter="filter" {if $presale_info.deliver_type == 0} checked {/if} title="固定时间">
  74. <input type="radio" name="deliver_type" value="1" lay-filter="filter" {if $presale_info.deliver_type == 1} checked {/if} title="支付尾款后">
  75. </div>
  76. </div>
  77. <div class="layui-form-item deliver-time end-time">
  78. <label class="layui-form-label">固定时间:</label>
  79. <div class="layui-input-block">
  80. <input type="text" lay-verify="deliver_time" id="deliver_time" {if $presale_info.deliver_type == 0} value="{:date('Y-m-d H:i:s',$presale_info.deliver_time)}" {/if} class="layui-input len-mid" autocomplete="off" readonly>
  81. </div>
  82. </div>
  83. <div class="layui-form-item deliver-time fixed-term">
  84. <label class="layui-form-label">支付尾款:</label>
  85. <div class="layui-input-block">
  86. <div class="layui-input-inline">
  87. <input type="number" min="1" max="365" id="pay_days" {if $presale_info.deliver_type == 1} value="{$presale_info.deliver_time}" {/if} lay-verify="days" autocomplete="off" class="layui-input len-short">
  88. </div>
  89. <span class="layui-form-mid">天后,开始发货</span>
  90. </div>
  91. <div class="word-aux">
  92. <p>不能小于0,且必须为整数</p>
  93. </div>
  94. </div>
  95. <div class="layui-form-item">
  96. <label class="layui-form-label">是否参与分销:</label>
  97. <div class="layui-input-inline">
  98. <input type="radio" name="is_fenxiao" value="0" title="不参与" {if $presale_info.is_fenxiao == 0} checked {/if}>
  99. <input type="radio" name="is_fenxiao" value="1" title="参与" {if $presale_info.is_fenxiao == 1} checked {/if}>
  100. </div>
  101. </div>
  102. <div class="layui-form-item">
  103. <label class="layui-form-label">是否支持退定金:</label>
  104. <div class="layui-input-block">
  105. <input type="radio" name="is_deposit_back" lay-filter="deposit_back" value="0" title="是" {if $presale_info.is_deposit_back == 0} checked {/if}>
  106. <input type="radio" name="is_deposit_back" lay-filter="deposit_back" value="1" title="否" {if $presale_info.is_deposit_back == 1} checked {/if}>
  107. </div>
  108. </div>
  109. <div class="layui-form-item layui-form-text deposit_agreement {if $presale_info.is_deposit_back == 0} layui-hide {/if}">
  110. <label class="layui-form-label">定金退还协议:</label>
  111. <div class="layui-input-inline">
  112. <textarea name="deposit_agreement" class="layui-textarea len-long" maxlength="150">{$presale_info.deposit_agreement}</textarea>
  113. </div>
  114. </div>
  115. <div class="layui-form-item goods_list">
  116. <label class="layui-form-label">活动商品:</label>
  117. <div class="layui-input-block">
  118. <table id="selected_goods_list" lay-filter="selected_goods_list"></table>
  119. </div>
  120. </div>
  121. <div class="layui-form-item layui-form-text">
  122. <label class="layui-form-label">活动规则说明:</label>
  123. <div class="layui-input-inline">
  124. <textarea name="remark" class="layui-textarea len-long" maxlength="300">{$presale_info.remark}</textarea>
  125. </div>
  126. </div>
  127. <!-- <div class="layui-carousel" >
  128. <img src="__STATIC__/img/presale.png" >
  129. </div>-->
  130. <div class="form-row">
  131. <button class="layui-btn" lay-submit lay-filter="save">保存</button>
  132. <button class="layui-btn layui-btn-primary" onclick="back()">返回</button>
  133. </div>
  134. <input type="hidden" name="presale_id" value="{$presale_info.presale_id}" />
  135. </div>
  136. {/block}
  137. {block name="script"}
  138. <script type="text/html" id="toolbarOperation">
  139. <button class="layui-btn layui-btn-primary" lay-event="presale-stock">预售库存</button>
  140. <button class="layui-btn layui-btn-primary" lay-event="presale-deposit">定金</button>
  141. <button class="layui-btn layui-btn-primary" lay-event="presale-price">定金抵扣金额</button>
  142. </script>
  143. <script>
  144. var deliver_type = $("input[name='deliver_type']:checked").val();
  145. if (deliver_type == 0) {
  146. $('#deliver_time').attr('lay-verify','deliver_time');
  147. $('#pay_days').attr('lay-verify','');
  148. $('.deliver-time.end-time').show();
  149. $('.deliver-time.fixed-term').hide();
  150. $('#pay_days').val('');
  151. } else {
  152. $('#deliver_time').attr('lay-verify','');
  153. $('#pay_days').attr('lay-verify','days');
  154. $('.deliver-time.end-time').hide();
  155. $('.deliver-time.fixed-term').show();
  156. $('#deliver_time').val('');
  157. }
  158. var sku_list = [];
  159. sku_list = {:json_encode($presale_info.sku_list, JSON_UNESCAPED_UNICODE)};
  160. sku_list.forEach(function (item,index) {
  161. item.is_delete = item.presale_stock ? 1 : 2;
  162. });
  163. layui.use(['form', 'laydate'], function() {
  164. var form = layui.form,
  165. laydate = layui.laydate,
  166. repeat_flag = false,
  167. startDate = '{$presale_info.start_time}',
  168. endDate = '{$presale_info.end_time}',
  169. minDate = "";
  170. form.render();
  171. renderTable(sku_list); // 初始化表格
  172. //定金开始时间
  173. var now_time = (new Date()).getTime();
  174. var ystart_time = (new Date($("#ystart_time").val())).getTime();
  175. if (now_time <= ystart_time) {
  176. laydate.render({
  177. elem: '#start_time', //指定元素
  178. type: 'datetime'
  179. });
  180. //定金结束时间
  181. laydate.render({
  182. elem: '#end_time', //指定元素
  183. type: 'datetime'
  184. });
  185. }
  186. var pstart_time = (new Date($("#pstart_time").val())).getTime();
  187. if(now_time <= pstart_time) {
  188. //尾款开始时间
  189. laydate.render({
  190. elem: '#pay_start_time', //指定元素
  191. type: 'datetime'
  192. });
  193. //尾款结束时间
  194. laydate.render({
  195. elem: '#pay_end_time', //指定元素
  196. type: 'datetime'
  197. });
  198. }
  199. //发货时间
  200. laydate.render({
  201. elem: '#deliver_time', //指定元素
  202. type: 'datetime'
  203. });
  204. // 监听单选按钮
  205. form.on('radio(filter)', function(data) {
  206. if (data.value == 0) {
  207. $('#deliver_time').attr('lay-verify','deliver_time');
  208. $('#pay_days').attr('lay-verify','');
  209. $('.end-time').show();
  210. $('.fixed-term').hide();
  211. $('#pay_days').val('');
  212. } else {
  213. $('#deliver_time').attr('lay-verify','');
  214. $('#pay_days').attr('lay-verify','days');
  215. $('.end-time').hide();
  216. $('.fixed-term').show();
  217. $('#deliver_time').val('');
  218. }
  219. });
  220. // 监听单选按钮是否退定金显示退定金协议
  221. form.on('radio(deposit_back)', function(data) {
  222. if (data.value == 1) {
  223. $(".deposit_agreement").removeClass("layui-hide");
  224. } else {
  225. $('#deposit_agreement').val('');
  226. $(".deposit_agreement").addClass("layui-hide");
  227. }
  228. });
  229. /**
  230. * 表单验证
  231. */
  232. form.verify({
  233. stime: function(value) {
  234. var now_time = (new Date()).getTime();
  235. var start_time =(new Date(value)).getTime();
  236. var ystart_time = (new Date($("#ystart_time").val())).getTime();
  237. if (now_time <= ystart_time) {
  238. if (now_time > start_time) {
  239. return '开始时间不能小于当前时间!'
  240. }
  241. }
  242. },
  243. etime: function(value) {
  244. var now_time = ((new Date()).getTime())/1000;
  245. var start_time = ((new Date($("#start_time").val())).getTime())/1000;
  246. var end_time = ((new Date(value)).getTime())/1000;
  247. var ystart_time = ((new Date($("#ystart_time").val())).getTime())/1000;
  248. var old_end_time = $("#old_end_time").val();
  249. if (now_time <= ystart_time) {
  250. if (now_time > start_time) {
  251. return '开始时间不能小于当前时间!'
  252. }
  253. if (now_time > end_time) {
  254. return '结束时间不能小于当前时间!'
  255. }
  256. if (start_time > end_time) {
  257. return '结束时间不能小于开始时间!';
  258. }
  259. if (end_time < old_end_time){
  260. return '结束时间不能小于之前设置的结束时间!';
  261. }
  262. }
  263. },
  264. spay_time: function(value) {
  265. var now_time = (new Date()).getTime();
  266. var start_time =(new Date(value)).getTime();
  267. var deposit_end_time = (new Date($("#end_time").val())).getTime();
  268. if (now_time > start_time) {
  269. return '开始时间不能小于当前时间!'
  270. }
  271. if(start_time < deposit_end_time){
  272. return '尾款开始支付时间不能小于定金结束支付时间!'
  273. }
  274. },
  275. epay_time: function(value) {
  276. var now_time = ((new Date()).getTime())/1000;
  277. var start_time = ((new Date($("#pay_start_time").val())).getTime())/1000;
  278. var end_time = ((new Date(value)).getTime())/1000;
  279. var old_pay_end_time = $("#old_pay_end_time").val();
  280. if (now_time > start_time) {
  281. return '开始时间不能小于当前时间!'
  282. }
  283. if (now_time > end_time) {
  284. return '结束时间不能小于当前时间!'
  285. }
  286. if (start_time > end_time) {
  287. return '结束时间不能小于开始时间!';
  288. }
  289. if (old_pay_end_time > end_time) {
  290. return '结束时间不能小于之前设置的结束时间!';
  291. }
  292. },
  293. deliver_time: function(value) {
  294. var pay_end_time = (new Date($("#pay_end_time").val())).getTime();
  295. var deliver_time = (new Date(value)).getTime();
  296. if (value.trim() == "") {
  297. return '预计发货时间不能为空!';
  298. }
  299. if(deliver_time < pay_end_time && deliver_time!=''){
  300. return '预计发货时间不能小于尾款结束支付时间!'
  301. }
  302. },
  303. days: function(value) {
  304. if (value.trim() == "") {
  305. return '预计发货时间不能为空!';
  306. }
  307. },
  308. presale_stock: function(value) {
  309. if (value.trim() == "") {
  310. return '预售库存不能为空';
  311. }
  312. if (Number(value) <= 0) {
  313. return '预售库存必须大于0';
  314. }
  315. if (value % 1 != 0) {
  316. return '砍价库存必须为整数';
  317. }
  318. },
  319. presale_deposit: function(value, item) {
  320. var sku_id = $(item).attr('data-id');
  321. var price = $(item).parent().parent().siblings().children().children().children(".presale-price-" + sku_id).text();
  322. if (Number(value) <= 0) {
  323. return '定金必须大于0';
  324. }
  325. if (Number(value) === Number(price)) {
  326. return '定金不能等于价格';
  327. }
  328. if (Number(value) > Number(price)) {
  329. return '定金不能大于价格';
  330. }
  331. },
  332. presale_price: function(value, item) {
  333. var sku_id = $(item).attr('data-id');
  334. var presale_deposit = $(item).parent().parent().siblings().children().children(".presale_deposit_" + sku_id).val();
  335. var price = $(item).parent().parent().siblings().children().children().children(".presale-price-" + sku_id).text();
  336. if (value.trim() == "") {
  337. return '定金可抵金额不能为空';
  338. }
  339. if (Number(value) === Number(price)) {
  340. return '定金可抵金额不能等于价格';
  341. }
  342. if (Number(value) > Number(price)) {
  343. return '定金可抵金额不能大于价格';
  344. }
  345. if (Number(value) < Number(presale_deposit)) {
  346. return '定金可抵金额不能小于定金';
  347. }
  348. }
  349. });
  350. /**
  351. * 监听提交
  352. */
  353. form.on('submit(save)', function(data){
  354. var field = data.field;
  355. var deposit_end_time = (new Date($("#end_time").val())).getTime();
  356. var pay_start_time = (new Date($("#pay_start_time").val())).getTime();
  357. if(pay_start_time < deposit_end_time){
  358. layer.msg('尾款开始支付时间不能小于定金结束支付时间');
  359. $("#pay_start_time").focus();
  360. return;
  361. }
  362. if(field.deliver_type == 1){
  363. field.deliver_time = $('#pay_days').val();
  364. }else{
  365. var pay_end_time = (new Date($("#pay_end_time").val())).getTime();
  366. var deliver_time = (new Date($("#deliver_time").val())).getTime();
  367. if(deliver_time < pay_end_time){
  368. layer.msg('预计发货时间不能小于尾款结束支付时间');
  369. $("#deliver_time").focus();
  370. return;
  371. }
  372. field.deliver_time = $('#deliver_time').val();
  373. }
  374. field.sku_ids = [];
  375. field.goods_id = sku_list[0].goods_id;
  376. sku_list.forEach(function (item,index) {
  377. if (item.is_delete == 2) return false;
  378. field.sku_ids.push(item.sku_id);
  379. });
  380. if (field.sku_ids.length == 0) {
  381. layer.msg("请选择参与活动商品!", {icon: 5, anim: 6});
  382. return;
  383. }
  384. var skuLisArr = [];
  385. sku_list.forEach(function(item,index) {
  386. var sku_detail = {};
  387. sku_detail.sku_id = item.sku_id;
  388. sku_detail.goods_id = item.goods_id;
  389. sku_detail.presale_stock = item.presale_stock || 0;
  390. sku_detail.presale_deposit = item.presale_deposit || 0.00;
  391. sku_detail.presale_price = item.presale_price || 0.00;
  392. sku_detail.is_delete = item.is_delete || 1;
  393. skuLisArr.push(sku_detail);
  394. });
  395. field.sku_list = skuLisArr;
  396. if(repeat_flag) return;
  397. repeat_flag = true;
  398. $.ajax({
  399. type: 'POST',
  400. dataType: 'JSON',
  401. url: ns.url("presale://shop/presale/edit"),
  402. data: field,
  403. async: false,
  404. success: function(res){
  405. repeat_flag = false;
  406. if (res.code == 0) {
  407. layer.confirm('编辑成功', {
  408. title:'操作提示',
  409. btn: ['返回列表', '继续编辑'],
  410. yes: function(){
  411. location.href = ns.url("presale://shop/presale/lists");
  412. },
  413. btn2: function() {
  414. location.reload();
  415. }
  416. });
  417. }else{
  418. layer.msg(res.message);
  419. }
  420. }
  421. })
  422. });
  423. });
  424. // 表格渲染
  425. function renderTable(sku_list) {
  426. //展示已知数据
  427. table = new Table({
  428. elem: '#selected_goods_list',
  429. page: false,
  430. limit: Number.MAX_VALUE,
  431. cols: [
  432. [{
  433. width: "3%",
  434. type: 'checkbox',
  435. unresize: 'false'
  436. },{
  437. title: '商品名称',
  438. width: '23%',
  439. unresize: 'false',
  440. templet: function(data) {
  441. var html = '';
  442. html += `
  443. <div class="goods-title">
  444. <div class="goods-img">
  445. <img layer-src src="${data.sku_image ? ns.img(data.sku_image) : ''}" alt="">
  446. </div>
  447. <p class="multi-line-hiding goods-name" data-goods_id="${data.goods_id}" data-sku_id="${data.sku_id}" title="${data.sku_name}">${data.sku_name}</p>
  448. </div>
  449. `;
  450. return html;
  451. }
  452. }, {
  453. field: 'price',
  454. title: '商品价格',
  455. unresize: 'false',
  456. width: '15%',
  457. templet: function(data) {
  458. return '<p class="line-hiding" title="'+ data.price +'">¥<span class="presale-price presale-price-'+data.sku_id+'">' + data.price +'</span></p>';
  459. }
  460. }, {
  461. title: '预售库存',
  462. unresize: 'false',
  463. templet: '#presaleStock'
  464. }, {
  465. title: '定金',
  466. unresize: 'false',
  467. templet: '#presaleDeposit'
  468. }, {
  469. title: '定金抵扣金额',
  470. unresize: 'false',
  471. templet: '#presalePrice'
  472. }, {
  473. title: '操作',
  474. toolbar: '#operation',
  475. unresize: 'false',
  476. align:'right'
  477. }]
  478. ],
  479. data: sku_list,
  480. toolbar: '#toolbarOperation'
  481. });
  482. /**
  483. * 批量操作
  484. */
  485. table.toolbar(function(obj) {
  486. if (obj.data.length < 1) {
  487. layer.msg('请选择要操作的数据');
  488. return;
  489. }
  490. switch (obj.event) {
  491. case "presale-stock":
  492. editInput(0,obj);
  493. break;
  494. case "presale-deposit":
  495. editInput(1,obj);
  496. break;
  497. case "presale-price":
  498. editInput(2,obj);
  499. break;
  500. }
  501. });
  502. }
  503. function editInput(textIndex=0,data) {
  504. var text = [{
  505. name: '预售库存',
  506. value: 'presale_stock'
  507. },{
  508. name: '定金',
  509. value: 'presale_deposit'
  510. },{
  511. name: '定金抵扣金额',
  512. value: 'presale_price'
  513. }];
  514. layer.open({
  515. type: 1,
  516. title:"修改"+text[textIndex].name,
  517. area:['600px'],
  518. btn:["保存","返回"],
  519. content: `
  520. <div class="layui-form-item">
  521. <label class="layui-form-label"><span class="required">*</span>${text[textIndex].name}:</label>
  522. <div class="layui-input-block">
  523. <input type="text" name="presale_edit_input" lay-verify="required" autocomplete="off" class="layui-input len-mid" placeholder="请输入${text[textIndex].name}">
  524. </div>
  525. </div>
  526. `,
  527. yes: function(index, layero){
  528. var val = $("input[name='presale_edit_input']").val();
  529. if (!val){
  530. layer.msg("请输入" + text[textIndex].name);
  531. return false;
  532. }
  533. data.data.forEach(function (item,index) {
  534. sku_list.forEach(function (skuItem,skuIndex) {
  535. if (item.sku_id == skuItem.sku_id){
  536. sku_list[skuIndex][text[textIndex].value] = val;
  537. sku_list[skuIndex].is_delete = 1;
  538. }
  539. })
  540. });
  541. renderTable(sku_list);
  542. layer.closeAll();
  543. }
  544. });
  545. }
  546. function presaleStock(index,event) {
  547. sku_list[index-1].presale_stock = event.srcElement.value;
  548. }
  549. function presaleDeposit(index,event) {
  550. sku_list[index-1].presale_deposit = event.srcElement.value;
  551. }
  552. function presalePrice(index,event) {
  553. sku_list[index-1].presale_price = event.srcElement.value;
  554. }
  555. function deposit(sku_id,value,index,event){
  556. $(".presale_price_"+sku_id).val(value);
  557. sku_list[index-1].presale_price = event.srcElement.value;
  558. }
  559. function back() {
  560. location.href = ns.url("presale://shop/presale/lists");
  561. }
  562. $("body").on("click",".no-participation",function(){
  563. $(this).text("参与");
  564. $(this).parents("tr").find("input").each(function (index,item) {
  565. $(item).attr("readonly",true);
  566. $(item).attr("disabled",true);
  567. $(item).addClass("forbidden");
  568. $(item).attr("lay-verify","");
  569. });
  570. $(this).addClass("participation").removeClass("no-participation");
  571. sku_list[$(this).parents("tr").attr("data-index")].is_delete = 2;
  572. });
  573. $("body").on("click",".participation",function(){
  574. $(this).text("不参与");
  575. $(this).parents("tr").find("input").each(function (index,item) {
  576. $(item).attr("readonly",false);
  577. $(item).attr("disabled",false);
  578. $(item).removeClass("forbidden");
  579. if($(item).hasClass("presale-stock")){
  580. $(item).attr("lay-verify","presale_stock");
  581. }else if($(item).hasClass("presale-deposit")){
  582. $(item).attr("lay-verify","presale_deposit");
  583. }else if($(item).hasClass("presale-price")){
  584. $(item).attr("lay-verify","presale_price");
  585. }
  586. });
  587. $(this).removeClass("participation").addClass("no-participation");
  588. sku_list[$(this).parents("tr").attr("data-index")].is_delete = 1;
  589. });
  590. </script>
  591. <script type="text/html" id="presaleStock">
  592. {{# if(!d.presale_stock){ }}
  593. <input type="number" class="layui-input len-input presale-stock forbidden" value="{{d.presale_stock}}" min="0" oninput="presaleStock({{ d.LAY_INDEX }},event)" onporpertychange="presaleStock({{ d.LAY_INDEX }},event)" readonly disabled lay-verify=""/>
  594. {{# }else{ }}
  595. <input type="number" class="layui-input len-input presale-stock" value="{{d.presale_stock}}" lay-verify="presale_stock" min="0" oninput="presaleStock({{ d.LAY_INDEX }},event)" onporpertychange="presaleStock({{ d.LAY_INDEX }},event)"/>
  596. {{# } }}
  597. </script>
  598. <script type="text/html" id="presaleDeposit">
  599. {{# if(!d.presale_stock){ }}
  600. <input type="number" class="layui-input len-input presale-deposit forbidden presale_deposit_{{ d.sku_id }}" value="{{d.presale_deposit}}" min="0.00" oninput="presaleDeposit({{ d.LAY_INDEX }},event)" onporpertychange="presaleDeposit({{ d.LAY_INDEX }},event)" readonly disabled data-id="{{ d.sku_id }}" onchange="deposit({{ d.sku_id }},value,{{ d.LAY_INDEX }},event)" lay-verify=""/>
  601. {{# }else{ }}
  602. <input type="number" class="layui-input len-input presale-deposit presale_deposit_{{ d.sku_id }}" value="{{d.presale_deposit}}" lay-verify="presale_deposit" min="0.00" oninput="presaleDeposit({{ d.LAY_INDEX }},event)" onporpertychange="presaleDeposit({{ d.LAY_INDEX }},event)" data-id="{{ d.sku_id }}" onchange="deposit({{ d.sku_id }},value,{{ d.LAY_INDEX }},event)"/>
  603. {{# } }}
  604. </script>
  605. <script type="text/html" id="presalePrice">
  606. {{# if(!d.presale_stock){ }}
  607. <input type="number" class="layui-input len-input presale-price forbidden presale_price_{{ d.sku_id }}" value="{{d.presale_price}}" min="0.00" oninput="presalePrice({{ d.LAY_INDEX }},event)" onporpertychange="presalePrice({{ d.LAY_INDEX }},event)" readonly disabled data-id="{{ d.sku_id }}" lay-verify=""/>
  608. {{# }else{ }}
  609. <input type="number" class="layui-input len-input presale-price presale_price_{{ d.sku_id }}" value="{{d.presale_price}}" lay-verify="presale_price" min="0.00" oninput="presalePrice({{ d.LAY_INDEX }},event)" onporpertychange="presalePrice({{ d.LAY_INDEX }},event)" data-id="{{ d.sku_id }}"/>
  610. {{# } }}
  611. </script>
  612. <script type="text/html" id="operation">
  613. <div class="table-btn">
  614. {{# if(!d.presale_stock){ }}
  615. <a class="layui-btn participation">参与</a>
  616. {{# }else{ }}
  617. <a class="layui-btn no-participation">不参与</a>
  618. {{# } }}
  619. </div>
  620. </script>
  621. {/block}