98bdf551d0c8b837ab65a4736adf69b27a77556f.svn-base 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. $ElecPeakFacilityPopup = function (viewModel, selectPatrolPosData, isMultipleSelect, onSelectedPatrolPoss, datagridId) {
  2. //var isMultipleSelect = isMultipleSelect;
  3. //var onSelectedPatrolPoss = onSelectedPatrolPoss;
  4. //var datagridId = datagridId;
  5. var dataViewModel = new BemsWebApplication.FmsWorkRequestToFacilityViewModel(),
  6. gridView,
  7. popupVisible = ko.observable(false),
  8. dataView = ko.observableArray(),
  9. //dataSource;
  10. findKey = ko.observable(new Date()), //
  11. // _Name 작업을 original로 수정해야 한다.
  12. dataSource = BWA.DataUtil.createDataSource({
  13. dataSourceOptions: {
  14. select: ['SiteId',
  15. 'MaxDateTime',
  16. 'FacilityCode',
  17. 'CmFacility/Name',
  18. ],
  19. expand: ["CmFacility"],
  20. extendOptions: { forceOriginalField: true }
  21. }
  22. }, 'BemsPeakFacility');
  23. var dataGridOptions = utils.datagrid.defaultOptions({
  24. //dxDataSource: dataView,
  25. dataSource: dataView,
  26. selectedSourceItem: dataViewModel,
  27. datagridId: 'gridFacility',
  28. dbId: 'BemsPeakFacility',
  29. useNumberColumn: true,
  30. columns: [
  31. { dataField: 'FacilityCode', caption: $G('number'), width: '10%', alignment: 'center', allowFiltering: false },
  32. { dataField: 'CmFacility/Name', caption: '설비', width: '20%', alignment: 'center' },
  33. ],
  34. searchPanelPlaceHolder: '설비명칭 검색',
  35. });
  36. if (isMultipleSelect) {
  37. //dataGridOptions.selection = { mode: 'multiple', allowSelectAll: true };
  38. dataGridOptions.handleDataGridRowClick = function (id, dataGrid, clickRow) {
  39. /*
  40. var data = clickRow.data;
  41. if (!_.isUndefined(onSelectedUsers)) {
  42. onSelectedUsers([BWA.DataUtil.convertViewModelToJS(data)]);
  43. }*/
  44. };
  45. }
  46. else {
  47. /*
  48. dataGridOptions.handleDataGridRowClick = function (id, dataGrid, clickRow) {
  49. var data = clickRow.data;
  50. selectUserData({
  51. SiteId: data.SiteId(),
  52. UserId: data.UserId(),
  53. CompanyId: data.CompanyId(),
  54. DepartmentId: data.DepartmentId(),
  55. CompanyName: data.CmCompany_Name(),
  56. MobilePhoneNo: data.MobilePhoneNo(),
  57. Name: data.Name()
  58. });
  59. if (data.CmDepartment_Name !== undefined)
  60. selectUserData.DepartmentName = data.CmDepartment_Name();
  61. popupVisible(false);
  62. }*/
  63. }
  64. function handlePopupShowing(e) {
  65. var eq = BWA.DataUtil.constructEqualFilter;
  66. var and = BWA.DataUtil.andFilter;
  67. dataSource.filter([
  68. eq('SiteId', BWA.UserInfo.SiteId()),
  69. and,
  70. eq('MaxDateTime', findKey()), //
  71. ]);
  72. dataSource.load().done(function (datas) {
  73. dataView(datas);
  74. $('#gridFacility').dxDataGrid('instance').refresh();
  75. gridView = $('#gridFacility').dxDataGrid('instance');
  76. });
  77. }
  78. function handlePopupShown() {
  79. }
  80. function handlePopupButtonSelect() {
  81. /*
  82. var array = utils.datagrid.getSelectedRowsData('gridPatrolPosContainer');
  83. if (!_.isUndefined(onSelectedPatrolPoss)) {
  84. onSelectedPatrolPoss(array);
  85. }
  86. $('#gridPatrolPosContainer').dxDataGrid('instance').clearSelection();
  87. popupVisible(false);*/
  88. }
  89. function handlePopupButtonClose() {
  90. //$('#gridPatrolPosContainer').dxDataGrid('instance').clearSelection();
  91. popupVisible(false);
  92. }
  93. var toolbarItems = [
  94. //{ location: 'before', text: '찾기' },
  95. //{ location: 'after', widget: 'button', options: { text: $G('select'), icon: 'save', visible: isMultipleSelect, clickAction: handlePopupButtonSelect } },
  96. { location: 'after', widget: 'button', options: { text: $G('close'), icon: 'close', clickAction: handlePopupButtonClose } }
  97. ];
  98. var popupOptions = {
  99. //width: isMultipleSelect ? '800px' : '600px',
  100. width: '600px',
  101. height: 'auto',
  102. visible: popupVisible,
  103. closeOnOutsideClick: true,
  104. shading: false,
  105. showingAction: handlePopupShowing,
  106. shownAction: handlePopupShown,
  107. animation: {
  108. show: { type: "pop", duration: 200, from: { opacity: 1, scale: 0.4 }, to: { scale: 1 } },
  109. hide: { type: "fade", duration: 200, from: 1, to: 0 }
  110. }
  111. };
  112. return {
  113. dataModel: dataViewModel,
  114. dataSource: dataSource,
  115. popupOptions: popupOptions,
  116. toolbarItems: toolbarItems,
  117. dataGridOptions: dataGridOptions,
  118. show: function (MaxDateTime) {
  119. findKey(MaxDateTime());
  120. popupVisible(true);
  121. }
  122. };
  123. }