MappingFieldEdit.js 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. shr.defineClass("shr.ats.mappingFieldEdit", shr.framework.Edit, {
  2. data: [],
  3. initalizeDOM: function () {
  4. shr.ats.mappingFieldEdit.superClass.initalizeDOM.call(this);
  5. var _this = this
  6. this.data = $("#entrys").jqGrid("getAllRowData");
  7. var method = shr.getUrlRequestParam("method", window.location.href);
  8. if (method === "edit" || method === "addNew") {
  9. var dataSource = $('#dataSource').shrPromptBox("getValue");
  10. if (dataSource.id == null || dataSource.id == "" || dataSource.id == undefined) {
  11. shr.execByFieldIdAndMethod('dataInterface', 'addRules', { 'required': true });
  12. $('#dataInterface').shrTextField('enable');
  13. } else {
  14. shr.execByFieldIdAndMethod('dataInterface', 'addRules', { 'required': false });
  15. $('#dataInterface').shrTextField('disable');
  16. }
  17. $("[class='editGrid-toolbar']").append('<button id="addAllEntry" type="button" name="addAllEntry" style="display:Initial" class=" shrbtn" data-isenableexcelpwd="false">批量新增</button>')
  18. $(document).on('click', '#addAllEntry', function () {
  19. var eSignFile = $('#eSignFile').shrPromptBox("getValue");
  20. var filter = "Parent1.Parent.id = '" + eSignFile.id + "'"
  21. $('#eField').shrPromptBox("setFilter", filter);
  22. _this.data = $("#entrys").jqGrid("getAllRowData");
  23. var thisData = [];
  24. for (let i = 0; i < _this.data.length; i++) {
  25. thisData.push(_this.data[i].eField)
  26. }
  27. $('#eField').shrPromptBox("setValue", thisData);
  28. $("#eField").shrPromptBox("open");
  29. });
  30. $('#eField').shrPromptBox('option', {
  31. onchange: function (a, b) {
  32. var lodData = [];
  33. var d = $("#entrys").jqGrid("getAllRowData")
  34. for (let i = 0; i < d.length; i++) {
  35. lodData.push(d[i].eField)
  36. }
  37. var cData = b.current
  38. for (let i = 0; i < cData.length; i++) {
  39. var isOut = true;
  40. for (let j = 0; j < lodData.length; j++) {
  41. if (cData[i].id === lodData[j].id) {
  42. isOut = false
  43. continue;
  44. }
  45. }
  46. if (isOut) {
  47. console.log(cData[i])
  48. var rowData = {};
  49. rowData.eFieldMark = cData[i].templateFieldId
  50. rowData.eFieldName = cData[i].templateFieldName
  51. rowData.eField = cData[i]
  52. $('#entrys').jqGrid('addRowData', null, rowData, 'last', null)
  53. }
  54. }
  55. }
  56. })
  57. }
  58. this.changeEntrys()
  59. },
  60. changeEntrys: function () {
  61. var _this = this
  62. $('#entrys').jqGrid('option', {
  63. afterSaveCell: function (rowid, cellname, value, iRow, iCol) {
  64. // 这里可以检查单元格的值是否改变,并执行相应的操作
  65. if (cellname === "eField") {
  66. $('#entrys').jqGrid('setCell', rowid, "eFieldMark", value.templateFieldId);
  67. $('#entrys').jqGrid('setCell', rowid, "eFieldName", value.templateFieldName);
  68. $('#entrys').jqGrid('saveRow', rowid, false, 'clientArray');
  69. }
  70. },
  71. afterEditCell: function (rowid, cellname, value, iRow, iCol) {
  72. // 这里可以检查单元格的值是否改变,并执行相应的操作
  73. if (cellname === "eField") {
  74. var eSignFile = $('#eSignFile').shrPromptBox("getValue");
  75. var filter = "Parent1.Parent.id = '" + eSignFile.id + "'"
  76. var eFieldMark = ""
  77. for (let i = 0; i < _this.data.length; i++) {
  78. var temp = _this.data[i].eFieldMark;
  79. if (temp != null && temp != undefined && temp != "") {
  80. eFieldMark += "'" + temp + "',"
  81. }
  82. }
  83. if (eFieldMark.length > 0) {
  84. eFieldMark = eFieldMark.substring(0, eFieldMark.length - 1)
  85. eFieldMark = "(" + eFieldMark + ")"
  86. filter += " and templateFieldId not in " + eFieldMark
  87. }
  88. $('#' + iRow + '_eField').shrPromptBox("setFilter", filter);
  89. console.log(value)
  90. } else if (cellname === "dataSourceField") {
  91. var dataSource = $('#dataSource').shrPromptBox("getValue");
  92. $('#' + iRow + '_dataSourceField').shrPromptBox("setFilter", "Parent.id = '" + dataSource.id + "'");
  93. }
  94. }
  95. })
  96. var method = shr.getUrlRequestParam("method", window.location.href);
  97. if (method === "edit" || method === "addNew") {
  98. $('#dataSource').shrPromptBox('option', {
  99. onchange: function (a, b) {
  100. // 这里可以检查单元格的值是否改变,并执行相应的操作
  101. if (b.current == null) {
  102. shr.execByFieldIdAndMethod('dataInterface', 'addRules', { 'required': true });
  103. $('#dataInterface').shrTextField('enable');
  104. } else {
  105. shr.execByFieldIdAndMethod('dataInterface', 'addRules', { 'required': false });
  106. $('#dataInterface').shrTextField('disable');
  107. }
  108. }
  109. })
  110. }
  111. },
  112. addRowAction: function (event) {
  113. this.data = $("#entrys").jqGrid("getAllRowData");
  114. var source = event.currentTarget,
  115. $editGrid = this.getEditGrid(source);
  116. var data = this.createNewEntryModel();
  117. if (typeof data === 'undefined') {
  118. data = {};
  119. }
  120. var editGridCont = this._getEditGridCont(source);
  121. if (editGridCont.data('editType') == 'inline') {
  122. // 表格内编辑
  123. $editGrid.jqGrid('addRow', { data: data });
  124. } else {
  125. $editGrid.wafGrid('addForm');
  126. }
  127. var event = document.createEvent('HTMLEvents');
  128. event.initEvent("editComplete_" + $editGrid.attr("id"), true, true);
  129. event.eventType = 'message';
  130. document.dispatchEvent(event);
  131. }
  132. })