v1.js 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. window.saveModule = function()
  2. {
  3. const name = $(this).val();
  4. const {id, type, lib, module} = $(this).data();
  5. const parentID = $(this).data('parent');
  6. $(this).closest('.tree-item').remove();
  7. if(!name) return;
  8. $.ajaxSubmit({
  9. url: $.createLink('tree', 'ajaxCreateModule'),
  10. data: {
  11. name : name,
  12. libID : lib,
  13. parentID : parentID,
  14. objectID : id,
  15. moduleType : module,
  16. isUpdate : false,
  17. createType : type,
  18. }
  19. });
  20. }
  21. window.addModule = function(id, addType)
  22. {
  23. const $element = $(`div[data-id='${id}']`).not('div[data-type=annex]');
  24. const {lib, type, module} = $element.data();
  25. let parentID = ['docLib', 'apiLib'].includes(type) ? '0' : $element.data('parent');
  26. let level = $element.closest('.tree-item').attr('z-key-path').split(':').length;
  27. if(addType == 'child' && !['docLib', 'apiLib'].includes(type)) parentID = id;
  28. if(addType != 'same') level += 1;
  29. const style = `style="margin-left: calc(${level} * 12px)"`;
  30. const className = addType == 'child' && ['docLib', 'apiLib'].includes(type) ? 'mt-2' : '';
  31. let inputTpl = `<li class="tree-item ${className}">`;
  32. inputTpl += `<div class="tree-item-content" ${style}>`;
  33. inputTpl += `<input id="moduleName" class="form-control" data-id="${id}" data-parent="${parentID}" data-type="${addType}" data-lib="${lib}" data-module="${module}">`;
  34. inputTpl += '</div></li>';
  35. if(addType == 'same')
  36. {
  37. const $target = $(`div[data-id='${id}'] + menu`).length > 0 ? $(`div[data-id='${id}'] + menu`) : $(`div[data-id='${id}']`);
  38. $target.after(inputTpl);
  39. }
  40. else
  41. {
  42. if(!$element.parent().hasClass('show')) $element.find('.tree-toggle-icon').trigger('click');
  43. setTimeout(function()
  44. {
  45. if($element.next('.tree').length == 0) $element.after(`<menu class="tree" level="${level}" data-level="${level}"></menu>`);
  46. $(`div[data-id='${id}']`).next('.tree').prepend(inputTpl);
  47. }, 1);
  48. }
  49. setTimeout(function()
  50. {
  51. $('#moduleName').trigger('focus');
  52. document.getElementById("moduleName").addEventListener('blur', saveModule);
  53. document.getElementById("moduleName").addEventListener('keydown', function(e)
  54. {
  55. if(e.keyCode == 13) e.target.blur();
  56. });
  57. }, 1);
  58. }