batchcreate.ui.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. window.renderRowData = function($row, index, row)
  2. {
  3. $row.find('[data-name="companyItem"]').find('.picker-box').on('inited', function(e, info)
  4. {
  5. let $compnayPicker = info[0];
  6. if(index == 0)
  7. {
  8. let companyItems = info[0].options.items;
  9. companyItems.pop();
  10. $compnayPicker.render({items: companyItems});
  11. }
  12. else
  13. {
  14. $compnayPicker.$.setValue('ditto');
  15. }
  16. });
  17. };
  18. /**
  19. * 根据用户类型切换控件的显示和隐藏。
  20. * Toggle the display of controls according to the user type.
  21. *
  22. * @param event event
  23. * @access public
  24. * @return void
  25. */
  26. function batchChangeType(event)
  27. {
  28. const type = $(event.target).val();
  29. const isInside = type == 'inside';
  30. $('input[data-name="type"]').val(type);
  31. $('[data-name="companyItem"]').toggleClass('hidden', isInside);
  32. $('[data-name="dept"], [data-name="join"]').toggleClass('hidden', !isInside);
  33. $('#userType').val(type);
  34. }
  35. /**
  36. * 根据职位更改权限组。
  37. * Change the permission group according to the role.
  38. *
  39. * @param role $role
  40. * @access public
  41. * @return void
  42. */
  43. function batchChangeRole(event)
  44. {
  45. const role = $(event.target).val();
  46. const group = role && roleGroup[role] ? roleGroup[role] : '';
  47. $(event.target).closest('tr').find('[name^="group"]').zui('picker').$.setValue(group);
  48. }
  49. /**
  50. * 切换显示选择所属公司或添加公司的输入框。
  51. * Toggle display company picker or input when add or edit a user.
  52. *
  53. * @param event event
  54. * @access public
  55. * @return void
  56. */
  57. function batchToggleNew(event)
  58. {
  59. const $currentRow = $(event.target).closest('tr');
  60. const $company = $currentRow.find('div[data-name="company"]').closest('.picker-box').toggleClass('hidden');
  61. const $newCompany = $currentRow.find('input[data-name="newCompany"]').toggleClass('hidden');
  62. }
  63. /**
  64. * 切换显示密码强度。
  65. * Toggle display password strength.
  66. *
  67. * @param event event
  68. * @access public
  69. * @return void
  70. */
  71. function batchTogglePasswordStrength(event)
  72. {
  73. const $target = $(event.target);
  74. const password = $target.val();
  75. const $strength = $target.closest('tr').find('.passwordStrength');
  76. $strength.toggleClass('hidden', password == '');
  77. $strength.html(password == '' ? '' : passwordStrengthList[computePasswordStrength(password)]);
  78. }
  79. /**
  80. * 切换界面类型。
  81. * When the visions is changed.
  82. *
  83. * @param event event
  84. * @access public
  85. * @return void
  86. */
  87. function batchChangeVision(event)
  88. {
  89. const $target = $(event.target);
  90. const visions = $target.val();
  91. const link = $.createLink('user', 'ajaxGetGroups', 'visions=' + visions);
  92. $.getJSON(link, function(data)
  93. {
  94. let $currentRow = $(event.target).closest('tr');
  95. let group = $currentRow.find('[name^="group"]').val();
  96. let $group = $currentRow.find('[name^="group"]').zui('picker');
  97. $group.render({items: data});
  98. $group.$.setValue(group);
  99. let $row = $currentRow.next('tr');
  100. while($row.length)
  101. {
  102. if($row.find('[data-name="visions"]').attr('data-ditto') != 'on') break;
  103. group = $row.find('[name^="group"]').val();
  104. $group = $row.find('[name^="group"]').zui('picker');
  105. $group.render({items: data});
  106. $group.$.setValue(group);
  107. $row = $row.next('tr');
  108. }
  109. });
  110. }