v1.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. window.renderRow = function($row, index, row)
  2. {
  3. let $field = $row.find('td[data-name="field"]');
  4. let selectObject = row.object;
  5. const tableOptions = $('#fieldSettingsModal').data('tables');
  6. $field.find('.picker-box').on('inited', function(e, info)
  7. {
  8. let $fieldPicker = $(e.target).find('[name^=field]').zui('picker');
  9. let fields = tableOptions.find((item) => item.value == selectObject)?.fields;
  10. let fieldOptions = !fields ? [] : Object.keys(fields).map((field) => ({text: fields[field].name, value: field}));
  11. $fieldPicker.render({items: fieldOptions});
  12. });
  13. }
  14. /**
  15. * 清空对应字段。
  16. * Clear field.
  17. *
  18. * @param object event
  19. * @access public
  20. * @return void
  21. */
  22. window.clearField = function(event)
  23. {
  24. const $currentRow = $(event.target).closest('tr');
  25. const fieldName = $currentRow.find('input[name^=key]').val();
  26. const $fieldPicker = $currentRow.find('input[name^=field]').zui('picker');
  27. $fieldPicker.$.setValue('');
  28. }
  29. window.setFieldSettingValue = function($tr, key, value)
  30. {
  31. let $type = $tr.find('td[data-name="' + key+ '"]');
  32. $type.find('[name^=' + key + ']').zui('picker').$.setValue(value);
  33. }
  34. window.changeFields = function(e)
  35. {
  36. let $tr = $(e.target).closest('tr');
  37. /* 在用户切换了所属表之后,需要设置type为object,用于将数据映射关联为所属表的对应字段数据。*/
  38. setFieldSettingValue($tr, 'type', 'string');
  39. }
  40. window.loadFields = function(e)
  41. {
  42. let $object = $(e.target);
  43. let selectObject = $object.val();
  44. const tableOptions = $('#fieldSettingsModal').data('tables');
  45. let fields = tableOptions.find((item) => item.value == selectObject)?.fields;
  46. let fieldOptions = !fields ? [] : Object.keys(fields).map((field) => ({text: fields[field].name, value: field}));
  47. let $tr = $object.closest('tr');
  48. let $field = $tr.find('td[data-name="field"]');
  49. let $fieldPicker = $field.find('[name^=field]').zui('picker');
  50. $fieldPicker.render({items: fieldOptions});
  51. /* 在用户切换了所属表之后,需要设置type为object,用于将数据映射关联为所属表的对应字段数据。*/
  52. setFieldSettingValue($tr, 'type', 'string');
  53. }