SubtablePermission.js 2.9 KB

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