SubtablePermission.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. /**
  2. * 子表的权限处理
  3. * @returns {SubtablePermission}
  4. */
  5. if (typeof SubtablePermission == 'undefined') {
  6. SubtablePermission = {};
  7. }
  8. var selectValue=function(select){
  9. var html='';
  10. var query=select.attr("selectquery")
  11. var queryJson = "";
  12. if(query!=undefined && query!=null){
  13. query=query.replaceAll("'","\"");
  14. queryJson = JSON2.parse(query);
  15. }else{
  16. queryJson = "";
  17. query = "";
  18. }
  19. var sValue=select.attr("val");
  20. if(sValue==undefined || sValue==null && sValue.length<=0){
  21. sValue = "";
  22. }
  23. html="<span selectvalue="+sValue+" selectquery="+query+"><lable></lable></span>"
  24. return html;
  25. }
  26. /**
  27. * 子表必填判断
  28. *
  29. * @return {} Boolean 如果存在必填数据则返回true,否则则返回false
  30. */
  31. SubtablePermission.subRequired = function() {
  32. var r = true;
  33. var subDiv = $("div[type='subtable']");
  34. if( $.isEmptyObject(subDiv)||subDiv.length == 0)
  35. return true;
  36. if ($.isEmpty(subDiv) )
  37. return true;
  38. // 子表的div
  39. subDiv.each(function() {
  40. var visible = $(this).is(":visible");
  41. if(!visible)return true;
  42. var right = $(this).attr("right");
  43. if ($.isEmpty(right))
  44. right = "r";
  45. else
  46. right = right.toLowerCase();
  47. // 如果必填权限
  48. if (right != "b")
  49. return true;
  50. var tr = $(this).find('[formtype]:visible');
  51. if ($.isEmpty(tr) || $.isEmptyObject(tr) || tr.length == 0) {
  52. r = false;
  53. if(!($(this).hasClass('validError'))){ //去掉必填样式
  54. $(this).addClass('validError');
  55. }
  56. return false;
  57. }
  58. //是不是每行都要有数据
  59. /*
  60. var t = false;
  61. // 判断里面的值是否为空,
  62. tr.each(function() {
  63. // 判断子表数据
  64. t = SubtablePermission.checkSubData($(this));
  65. if (t)//如果存在数据 则终止循环
  66. return false;
  67. });
  68. if (!t) {
  69. r = false;
  70. return false;
  71. }
  72. */
  73. });
  74. /* if(!r) subDiv.addClass('validError');
  75. else subDiv.removeClass('validError');*/
  76. return r;
  77. };
  78. /**
  79. * 检查子表是否存在数据
  80. *
  81. * @param {}
  82. * objRow 子表的table
  83. * @return {} 如果存在数据则返回true,否则则返回false
  84. */
  85. SubtablePermission.checkSubData = function(objRow) {
  86. var t = false;
  87. $("input:text[name^='s:'],input[type='hidden'][name^='s:'],textarea[name^='s:'],select[name^='s:']",
  88. objRow).each(function() {
  89. var value = $(this).val();
  90. // 如果存在值 则终止循环
  91. if (!$.isEmpty(value)) {
  92. t = true;
  93. return false;
  94. }
  95. });
  96. // 判断复选框按钮的数据是否有值
  97. $('input:checkbox:checked', objRow).each(function() {
  98. var value = $(this).val();
  99. // 如果存在值 则终止循环
  100. if (!$.isEmpty(value)) {
  101. t = true;
  102. return false;
  103. }
  104. });
  105. // 判断单选按钮的数据是否有值
  106. $('input:radio', objRow).each(function() {
  107. var value = $(this).val();
  108. // 如果存在值 则终止循环
  109. if ($(this).attr("checked") != undefined) {
  110. t = true;
  111. return false;
  112. }
  113. });
  114. return t;
  115. };