common.ui.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. window.addItem = function(event)
  2. {
  3. const obj = $(event.target);
  4. const newLine = $('.product-box').eq(0).clone();
  5. let chosenProducts = [];
  6. let options = zui.Picker.query("[name^='products']").options;
  7. options = JSON.parse(JSON.stringify(options));
  8. /* 处理新一行控件的显示/隐藏,宽度/是否居中等样式问题. */
  9. newLine.addClass('newLine');
  10. newLine.find('.form-label').remove();
  11. /* 重新初始化新一行的下拉控件. */
  12. const index = $('.product-box').length;
  13. newLine.find('.form-group .linkProduct').replaceWith(`<div id=products${index} class='form-group-wrapper picker-box'></div>`);
  14. newLine.find('.releases').replaceWith(`<div id=release${index} class='form-group-wrapper picker-box'></div>`);
  15. newLine.find('.form-group .c-action').removeClass('first-action');
  16. obj.closest('.product-box').after(newLine);
  17. options.name = `products[${index}]`;
  18. options.defaultValue = '';
  19. options.disabled = false;
  20. options.placeholder = '';
  21. console.log(options);
  22. new zui.Picker(`#products${index}`, options);
  23. new zui.Picker(`#release${index}`, {name: `release[${index}]`, items: []});
  24. }
  25. window.removeItem = function(event)
  26. {
  27. const obj = $(event.target);
  28. if(obj.closest('.product-box .c-action').hasClass('first-action')) return false;
  29. obj.closest('.product-box').remove();
  30. }
  31. window.loadRelease = function(e)
  32. {
  33. const productID = $(e.target).val();
  34. const formGroup = $(e.target).closest('.form-group');
  35. const releasePicker = formGroup.find('[name^=release]').zui('Picker');
  36. releasePicker.$.clear();
  37. if(productID == 0)
  38. {
  39. releasePicker.render({items: []});
  40. return;
  41. }
  42. const link = $.createLink('release', 'ajaxGetByProduct', "product=" + productID);
  43. $.getJSON(link, function(data)
  44. {
  45. releasePicker.render({items: data});
  46. });
  47. }
  48. $(document).off('click', '.batch-btn').on('click', '.batch-btn', function()
  49. {
  50. const dtable = zui.DTable.query($(this).target);
  51. const checkedList = dtable.$.getChecks();
  52. if(!checkedList.length) return;
  53. const url = $(this).data('url');
  54. const form = new FormData();
  55. checkedList.forEach((id) => {
  56. const data = dtable.$.getRowInfo(id).data;
  57. form.append('idList[]', data.id);
  58. });
  59. if($(this).hasClass('ajax-btn'))
  60. {
  61. $.ajaxSubmit({url, data:form});
  62. }
  63. else
  64. {
  65. postAndLoadPage(url, form);
  66. }
  67. });