zentaobiz.ui.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. window.docSpaces = {}; // 可选空间
  2. window.docLibs = {}; // 可选文档库
  3. /* 切换空间类型 */
  4. window.toggleSpace = () => {
  5. const $form = $('#importDocForm');
  6. const picker = $form.find('[name="importParentID"]').zui('picker');
  7. const space = $form.find('input[name="space"]:checked').val();
  8. const $importIdPicker = $('[name="importID"]').zui('picker');
  9. $importIdPicker.$.setValue('');
  10. $importIdPicker.render({items: []});
  11. picker.render({items: []});
  12. picker.$.setValue('');
  13. $('[name="apiType"]').val('product');
  14. $('.api-type').toggleClass('hidden', space != 'api');
  15. $('.specific-space').removeClass('hidden');
  16. window.docSpaces = {};
  17. if(space == 'api')
  18. {
  19. const apiType = $('[name="apiType"]').val();
  20. $('.specific-space').toggleClass('hidden', apiType == 'nolink');
  21. $.getJSON($.createLink('ai', 'ajaxGetApiSpaces', 'type=product'), function(data)
  22. {
  23. data.forEach(space => {
  24. window.docSpaces[space.value] = space.text;
  25. });
  26. picker.render({items: data});
  27. });
  28. }
  29. else
  30. {
  31. $.getJSON($.createLink('doc', 'ajaxGetSpaceData', 'space=' + space), function(libs)
  32. {
  33. const spaces = (libs?.spaces || []).map(space =>
  34. {
  35. window.docSpaces[space.id] = space.name;
  36. return {text: space.name, value: space.id};
  37. });
  38. picker.render({items: spaces});
  39. });
  40. }
  41. };
  42. /* 切换 API 类型 */
  43. window.toggleApiType = function(apiType)
  44. {
  45. const $importIdPicker = $('[name="importID"]').zui('picker');
  46. $importIdPicker.$.setValue('');
  47. $importIdPicker.render({items: []});
  48. $('.specific-space').toggleClass('hidden', apiType == 'nolink');
  49. if(apiType != 'nolink')
  50. {
  51. window.docSpaces = {};
  52. const $detailedSpacePicker = $('[name="importParentID"]').zui('picker');
  53. $.getJSON($.createLink('ai', 'ajaxGetApiSpaces', `type=${apiType}`), function(data)
  54. {
  55. data.forEach(space => {
  56. window.docSpaces[space.value] = space.text;
  57. });
  58. $detailedSpacePicker.$.setValue('');
  59. $detailedSpacePicker.render({items: data});
  60. });
  61. }
  62. else
  63. {
  64. window.docLibs = {};
  65. $.getJSON($.createLink('ai', 'ajaxGetDocLibs', `space=api&id=0&type=${apiType}`), function(libs)
  66. {
  67. libs.forEach(lib => {
  68. window.docLibs[lib.value] = lib.text;
  69. });
  70. $importIdPicker.render({items: libs});
  71. });
  72. }
  73. }
  74. /* 选择空间 */
  75. window.toggleImportParentID = () => {
  76. const $form = $('#importDocForm');
  77. const picker = $form.find('[name="importID"]').zui('picker');
  78. const space = $form.find('input[name="space"]:checked').val();
  79. const importParentID = $form.find('[name="importParentID"]').val();
  80. const type = space == 'api' ? $('[name="apiType"]:checked').val() : '';
  81. picker.render({items: []});
  82. picker.$.setValue('');
  83. window.docLibs = {};
  84. $.getJSON($.createLink('ai', 'ajaxGetDocLibs', `space=${space}&id=${importParentID}&type=${type}`), function(libs)
  85. {
  86. libs.forEach(lib => {
  87. window.docLibs[lib.value] = lib.text;
  88. });
  89. picker.render({items: libs});
  90. });
  91. };
  92. /* 选择文档库 */
  93. window.toggleImportID = () => {
  94. const $form = $('#importDocForm');
  95. const space = $form.find('input[name="space"]:checked').val();
  96. const importParentID = $form.find('[name="importParentID"]').val();
  97. const importID = $form.find('[name="importID"]').val();
  98. // 生成知识库名称
  99. let name = window.docLibs[importID] || '';
  100. if(['product', 'project'].includes(space) && window.docSpaces[importParentID] && window.docLibs[importID])
  101. {
  102. name = `${window.docSpaces[importParentID]} ${window.docLibs[importID]}`;
  103. }
  104. $form.find('[name="name"]').val(name);
  105. };