793e6cc724b04991fee9c05d5d862394a48245da.svn-base 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. BemsWebApplication.CheckGroupManagement = function(params, viewInfo) {
  2. "use strict";
  3. var businessFieldDataSource = BemsWebApplication.db.createDataSource('CmBusinessField', true, true, true);
  4. var businessFields = ko.observableArray(),
  5. searchBusinessFields = ko.observableArray();
  6. var factory = BemsWebApplication.Factory.CheckGroup;
  7. var deferredForSearch = new $.Deferred();
  8. var selectedCheckGroupId;
  9. var viewModel = BWA.DataGrid.createViewWithDataGrid(params, viewInfo, 'FmsFacilityScheduleCheckGroup', {
  10. dataSourceOptions: factory.getDataSourceOptions(),
  11. columns: factory.defaultColumns,
  12. promiseDataInSearchView: deferredForSearch.promise(),
  13. searchViewItems: [
  14. { id: 'BusinessFieldId', ignoreValue: 0, defaultValue: 0, dataSource: searchBusinessFields },
  15. { id: 'Name' }
  16. ],
  17. handleViewShowing: function() {
  18. businessFieldDataSource.load().done(function(result) {
  19. businessFields(result);
  20. searchBusinessFields($SearchView.createDefaultArray('BusinessFieldId').slice(0).concat(businessFields()));
  21. deferredForSearch.resolve();
  22. });
  23. },
  24. handlePopupShowing: function(that) {
  25. },
  26. handlePopupShown: function(that) {
  27. var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');
  28. targetFacilityDataGrid.filter([
  29. ['SiteId', '=', BWA.UserInfo.SiteId()],
  30. 'and',
  31. ['CheckGroupId', '=', selectedCheckGroupId]
  32. ]);
  33. },
  34. handleDataGridRowClick: function(id, dataGrid, clickRow, popupVisible) {
  35. dataGrid.clearSelection();
  36. var data = clickRow.data;
  37. var dataModel = viewModel.dataModel;
  38. dataModel.BusinessFieldName = $KoSet(dataModel.BusinessFieldName, data.BusinessFieldName);
  39. selectedCheckGroupId = data.CheckGroupId();
  40. popupVisible(true);
  41. },
  42. handleSaveButtonInPopup: function() {
  43. return BemsWebApplication.api.postWithDataGrid('FmsFacilityScheduleCheckGroupToFacility', 'gridFacilityContainer', {
  44. SiteId: BWA.UserInfo.SiteId(),
  45. CheckGroupId: selectedCheckGroupId,
  46. FacilityCode: null
  47. });
  48. //var facilityDataGrid = $( '#gridFacilityContainer' ).dxDataGrid( 'instance' );
  49. //var items = facilityDataGrid.getSelectedRowsData();
  50. //var postData = [];
  51. //$.each( items, function( i, item ) {
  52. // postData.push( {
  53. // SiteId: $KoValue( item.SiteId ),
  54. // CheckGroupId: selectedCheckGroupId,
  55. // FacilityCode: $KoValue( item.FacilityCode )
  56. // } );
  57. //} );
  58. //BemsWebApplication.api.post( 'FmsFacilityScheduleCheckGroupToFacility', postData );
  59. },
  60. handleInitializeDataModelValue: function(v) {
  61. v.WorkTypeId($Code.WorkType.REGULAR_CHECK);
  62. }
  63. });
  64. var targetFacilityDataSource = BWA.DataUtil.createDataSource({
  65. dataSourceOptions: {
  66. store: BemsWebApplication.odata.CheckGroupTargetFacility,
  67. select: [
  68. 'SiteId', 'CheckGroupId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',
  69. 'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName'
  70. ]
  71. }
  72. });
  73. var facilityDataSource = BWA.DataUtil.createDataSource({
  74. dataSourceOptions: {
  75. store: BemsWebApplication.odata.Facility,
  76. select: [
  77. 'SiteId', 'FacilityCode', 'ParentFacilityName', 'FirstClassName', 'SecondClassName', 'ThirdClassName', 'Name', 'Nickname',
  78. 'BuildingName', 'FloorName', 'ZoneName', 'ManufactureModel', 'MainContactorUserName', 'SubContactorUserName'
  79. ]
  80. }
  81. });
  82. var cellPrepared = function(cellElement, cellInfo) {
  83. switch (cellInfo.column.dataField) {
  84. case 'ClassName':
  85. {
  86. $(cellElement).text(cellInfo.data.FirstClassName() + '-' + cellInfo.data.SecondClassName() + '-' + cellInfo.data.ThirdClassName());
  87. break;
  88. }
  89. case 'Name':
  90. {
  91. $(cellElement).text(cellInfo.data.Name() + ' / ' + cellInfo.data.Nickname());
  92. break;
  93. }
  94. case 'Location':
  95. {
  96. $(cellElement).text(cellInfo.data.BuildingName() + ' ' + cellInfo.data.FloorName() + ' ' + cellInfo.data.ZoneName());
  97. break;
  98. }
  99. }
  100. }
  101. var dataGridOptions = {
  102. dxDataSource: targetFacilityDataSource,
  103. columns: [
  104. { dataField: 'ClassName', caption: $G('facilityClassName'), width: '25%', alignment: 'center', allowFiltering: false },
  105. { dataField: 'Name', caption: $G('facilityName'), width: '25%', alignment: 'center' },
  106. { dataField: 'MainContactorUserName', caption: $G('facilityMainContactorUserName'), width: '15%', alignment: 'center', allowFiltering: false },
  107. { dataField: 'SubContactorUserName', caption: $G('facilitySubContactorUserName'), width: '15%', alignment: 'center', allowFiltering: false },
  108. { dataField: 'Location', caption: $G('facilityLocation'), width: '20%', alignment: 'center' }
  109. ]
  110. };
  111. viewModel.isNewInPopup.subscribe(function(value) {
  112. if (value) {
  113. var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');
  114. if (facilityDataGrid !== undefined) facilityDataGrid.clearSelection();
  115. }
  116. });
  117. viewModel.isEditModeInPopup.subscribe(function(value) {
  118. var facilityDataGrid = $('#gridFacilityContainer').dxDataGrid('instance');
  119. var targetFacilityDataGrid = $('#gridTargetFacilityContainer').dxDataGrid('instance');
  120. if (facilityDataGrid !== undefined && value) {
  121. facilityDataGrid.clearSelection();
  122. var items = targetFacilityDataGrid._controllers.data._dataSource._items;
  123. var keys = [];
  124. $.each(items, function(i, item) {
  125. keys.push({
  126. FacilityCode: item.FacilityCode(),
  127. SiteId: item.SiteId()
  128. });
  129. });
  130. facilityDataGrid.selectRows(keys);
  131. }
  132. else {
  133. }
  134. });
  135. viewModel.tabsItems = [
  136. { text: '기본 정보' },
  137. { text: '대상 시설' }
  138. ];
  139. viewModel.currentTabIndex = ko.observable(0);
  140. var dataModel = viewModel.dataModel;
  141. viewModel.multiViewItems = [
  142. {
  143. dataModel: dataModel,
  144. viewModel: viewModel,
  145. template: 'generalInfo'
  146. },
  147. {
  148. dataModel: dataModel,
  149. viewModel: viewModel,
  150. facilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {
  151. visible: viewModel.isEditModeInPopup,
  152. dxDataSource: facilityDataSource,
  153. selection: { mode: 'multiple', allowSelectAll: true },
  154. cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared
  155. })),
  156. targetFacilityDataGridOptions: utils.datagrid.defaultOptions($.extend({}, dataGridOptions, {
  157. visible: viewModel.viewModeInPopup,
  158. dxDataSource: targetFacilityDataSource,
  159. cellPrepared: BemsWebApplication.Factory.Facility.cellPrepared,
  160. contentReadyAction: function(e) {
  161. console.log(e.model);
  162. }
  163. })),
  164. template: 'targetFacility'
  165. }
  166. ];
  167. viewModel.businessFields = businessFields;
  168. return viewModel;
  169. };