新增歷史資料列表顯示, 資料顯示未完成
This commit is contained in:
		
							parent
							
								
									43751cad36
								
							
						
					
					
						commit
						7aeaf4b117
					
				
							
								
								
									
										162
									
								
								Frontend/_historyData.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										162
									
								
								Frontend/_historyData.html
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,162 @@ | ||||
| <main id="js-page-content" role="main" class="page-content"> | ||||
|     <div class="row"> | ||||
|         <div class="col-sm-12 col-xl-2"> | ||||
|             <div class="bg-success-900 rounded bg-info-gradient"> | ||||
|                 <div class="d-flex position-relative py-3 px-4"> | ||||
|                     <i class="fal fa-search color-success-700 position-absolute pos-left fs-lg px-3 py-2 mt-1 ml-4"></i> | ||||
|                     <input type="text" id="js_nested_list_filter" class="form-control shadow-inset-1 pl-6 border-success" placeholder="Filter nested items (e.g buttons, chart)"> | ||||
|                 </div> | ||||
|                 <!-- nav-menu-reset will reset the font colors --> | ||||
|                 <ul id="js_nested_list" class="nav-menu nav-menu-reset nav-menu-compact bg-success-900 bg-info-gradient mb-sm-4 mb-md-0 rounded" data-nav-accordion="true"> | ||||
| 
 | ||||
|                 </ul> | ||||
|                 <div class="filter-message js-filter-message m-0 text-left pl-4 py-3 fw-500"></div> | ||||
|             </div> | ||||
| 
 | ||||
|         </div> | ||||
|         <div class="col-sm-12 col-xl-10"> | ||||
|             <h1 class="p-2 mb-0">歷史資料瀏覽</h1> | ||||
|             <div class="row bg-dark p-2 mb-5"> | ||||
|                 <div class="col-auto"> | ||||
|                     <div class="btn-group"> | ||||
|                         <button type="button" class="btn btn-secondary waves-effect waves-themed">日期</button> | ||||
|                         <button type="button" class="btn btn-secondary waves-effect waves-themed">日區間</button> | ||||
|                         <button type="button" class="btn btn-secondary waves-effect waves-themed">月</button> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <div class="col-auto"> | ||||
|                     <div class="btn-group"> | ||||
|                         <button type="button" class="btn btn-secondary waves-effect waves-themed">今天</button> | ||||
|                         <button type="button" class="btn btn-secondary waves-effect waves-themed">昨天</button> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <div class="col-auto"> | ||||
|                     <div class="form-group"> | ||||
|                         <input class="form-control" id="example-date" type="date" name="date" value="2023-07-23"> | ||||
|                     </div> | ||||
|                 </div> | ||||
|                 <div class="col-auto"> | ||||
|                     <a href="#" class="btn btn-info">查詢</a> <a href="#" class="btn btn-info waves-effect waves-themed"> | ||||
|                         <span class="fal fa-file-excel mr-1"></span> | ||||
|                         匯出 | ||||
|                     </a> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="row mb-2"> | ||||
|                 <div class="btn-group"> | ||||
|                     <button type="button" class="btn btn-secondary waves-effect waves-themed">溫度</button> | ||||
|                     <button type="button" class="btn btn-secondary waves-effect waves-themed">輸入電壓</button> | ||||
|                     <button type="button" class="btn btn-secondary waves-effect waves-themed">輸入電流</button> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|             <div class="row"> | ||||
|                 <div class="frame-wrap"> | ||||
|                     <table class="table table-bordered table-striped text-center m-0"> | ||||
|                         <thead class="thead-themed"> | ||||
|                             <tr> | ||||
|                                 <th>設備名稱</th> | ||||
|                                 <th>數值</th> | ||||
|                                 <th>紀錄時間</th> | ||||
|                             </tr> | ||||
|                         </thead> | ||||
|                         <tbody> | ||||
|                             <tr> | ||||
|                                 <td>儲冰設備A01</td> | ||||
|                                 <td>27.0</td> | ||||
|                                 <td>2021-08-01 23:55:00</td> | ||||
|                             </tr> | ||||
|                         </tbody> | ||||
|                     </table> | ||||
|                 </div> | ||||
|             </div> | ||||
| 
 | ||||
|         </div> | ||||
| 
 | ||||
|     </div> | ||||
| </main> | ||||
| 
 | ||||
| <script> | ||||
|     let sst = ''; | ||||
|     let mst = ''; | ||||
|     $(function () { | ||||
|         initList(); | ||||
| 
 | ||||
| 		// default list filter | ||||
| 		initApp.listFilter($('#js_default_list'), $('#js_default_list_filter')); | ||||
| 		// custom response message | ||||
| 		initApp.listFilter($('#js-list-msg'), $('#js-list-msg-filter')); | ||||
| 		//accordion filter | ||||
| 		initApp.listFilter($('#js_list_accordion'), $('#js_list_accordion_filter')); | ||||
| 		// nested list filter | ||||
| 		initApp.listFilter($('#js_nested_list'), $('#js_nested_list_filter')); | ||||
| 		//init navigation | ||||
|         initApp.buildNavigation($('#js_nested_list')); | ||||
| 
 | ||||
|         initData(); | ||||
|     }); | ||||
| 
 | ||||
|     function initList() { | ||||
|         let sendData = { | ||||
| 			building_tag: pageAct.buiTag | ||||
|         } | ||||
| 		objSendData.Data = sendData; | ||||
|         let url = baseApiUrl + "/api/History/GetMainSub"; | ||||
| 		function success(res) { | ||||
|             let strHtml = ``; | ||||
| 
 | ||||
|             $.each(res.data.history_Main_Systems, function (index, val) { | ||||
|                 console.log(index) | ||||
| 				strHtml += `<li> | ||||
| 	                            <a href="#" data-filter-tags="user interface buttons compass action dropdown navigation sidebars" data-maintag="${val.main_system_tag}"> | ||||
| 		                            <span class="nav-link-text">${val.full_name}</span> | ||||
| 	                            </a> | ||||
|                                 <ul style="${index == 0 ? `display:block;` : ``}">`; | ||||
|                      | ||||
|                 $.each(val.history_Sub_systems, function (index2, val2) { | ||||
|                     strHtml += `<li> | ||||
| 			                        <a href="#" onClick="getData(${val2.sub_system_tag}, ${val.main_system_tag})" data-filter-tags="user interface buttons" data-subtag="${val2.sub_system_tag}"> | ||||
| 				                        <span class="nav-link-text"> | ||||
| 					                        ${val2.full_name} ${val2.sub_system_tag} | ||||
| 				                        </span> | ||||
| 			                        </a> | ||||
| 		                        </li>`; | ||||
| 
 | ||||
|                     if (index == 0 && index2 == 0) { | ||||
|                         sst = val2.sub_system_tag; | ||||
|                         mst = val.main_system_tag; | ||||
| 					} | ||||
|                 }); | ||||
|                 strHtml += `</ul> </li>`; | ||||
|             }); | ||||
| 
 | ||||
|             $('#js_nested_list').html(strHtml); | ||||
|             getData(sst, mst); | ||||
| 		} | ||||
|         ytAjax = new YourTeam.Ajax(url, objSendData, success, null, "POST").send(); | ||||
|     } | ||||
| 
 | ||||
|     function initData() { | ||||
| 		getHistoryDataByBaja("TPE_B1_EE_E4_R2F_NA_WHT_N1_A1", | ||||
| 			1667232000000, | ||||
| 			1667232000000, | ||||
| 			"空調設備", | ||||
| 			"Mitsubishi_Sup", | ||||
| 			callbackForHistory); | ||||
| 	} | ||||
| 
 | ||||
|     function getData(sst2, mst1) | ||||
|     { | ||||
| 		//getHistoryDataByBaja("TPE_B1_EE_E4_R2F_NA_WHT_N1_A1", | ||||
| 		//	1667232000000, | ||||
| 		//	1667232000000, | ||||
| 		//	"空調設備", | ||||
| 		//	"Mitsubishi_Sup", | ||||
| 		//	callbackForHistory); | ||||
| 	} | ||||
| 
 | ||||
|     function callBackFromHistory(res) { | ||||
|         console.log(res) | ||||
| 	} | ||||
| </script> | ||||
| @ -1147,7 +1147,7 @@ License: You must have a valid license purchased only from wrapbootstrap.com (li | ||||
|                             </div> | ||||
|                         </div> | ||||
|                         <div class="btn-group mx-4"> | ||||
|                             <a href="javascript:;" class="dropdown-toggle no-arrow text-center" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> | ||||
|                             <a href="javascript:;" name="topFunBtn" class="dropdown-toggle no-arrow text-center" data-page="historyData"> | ||||
|                                 <i class="fal fa-chart-area fa-2x"></i><br>歷史資料 | ||||
|                             </a> | ||||
|                         </div> | ||||
|  | ||||
| @ -61,16 +61,16 @@ namespace FrontendWebApi.ApiControllers | ||||
|             { | ||||
|                 var dbsub = await frontendRepository.GetAllAsync<HistoryDBMainSub>( | ||||
|                     @$"select distinct v1.system_key main_name, v1.system_value main_system_tag, v2.system_key sub_name, v2.system_value sub_system_tag, v1.system_priority, v2.system_priority,
 | ||||
|                                 dk.device_normal_color, dk.device_close_color, dk.device_error_color, | ||||
|                                 di.full_name as device_item_name, di.points as device_item_points, di.unit as device_item_unit, di.is_show_riserDiagram as device_item_is_show_riserDiagram, | ||||
|                                 di.is_controll as device_item_is_controll, di.is_bool as device_item_is_bool, di.is_link as device_item_is_link | ||||
|                                 dk.device_normal_color, dk.device_close_color, dk.device_error_color | ||||
|                                 -- di.full_name as device_item_name, di.points as device_item_points, di.unit as device_item_unit, di.is_show_riserDiagram as device_item_is_show_riserDiagram, | ||||
|                                 -- di.is_controll as device_item_is_controll, di.is_bool as device_item_is_bool, di.is_link as device_item_is_link | ||||
|                         from role_auth a | ||||
|                         join auth_page b on a.AuthCode = b.AuthCode | ||||
|                         join userinfo c on c.role_guid = a.role_guid | ||||
|                         join variable v2 on b.ShowView = v2.id and v2.system_type = @sub_system_type | ||||
|                         join variable v1 on v1.id = v2.system_parent_id and v1.system_type = @main_system_type | ||||
|                         left join device_kind dk on v1.system_value = dk.device_system_tag and v2.system_value = dk.device_name_tag and dk.device_building_tag = @building_tag | ||||
|                         left join device_item di on v2.system_value = di.device_name_tag and v1.system_value = di.device_system_tag and di.deleted = 0 | ||||
|                         -- left join device_item di on v2.system_value = di.device_name_tag and v1.system_value = di.device_system_tag and di.deleted = 0 | ||||
|                         where c.account = @account | ||||
|                         order by v1.system_priority, v2.system_priority", new { @account = myUser.account, @sub_system_type = sub_system_type, @main_system_type = main_system_type, @building_tag = fd.building_tag });
 | ||||
|                 var mains = dbsub.GroupBy(a => a.main_system_tag).ToList(); | ||||
|  | ||||
| @ -91,11 +91,6 @@ namespace FrontendWebApi.ApiControllers | ||||
|             sheet.SetColumnWidth(0, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(1, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(2, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(3, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(4, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(5, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(6, 4 * 160 * 12); | ||||
|             sheet.SetColumnWidth(7, 4 * 160 * 12); | ||||
|             ICell cell = row.CreateCell(0); | ||||
|             cell.SetCellValue("設備名稱"); | ||||
|             cell.CellStyle = styleLine12; | ||||
| @ -152,7 +147,7 @@ namespace FrontendWebApi.ApiControllers | ||||
|         /// <returns></returns> | ||||
|         [HttpPost] | ||||
|         [Route("api/History/GetMainSub")] | ||||
|         public async Task<ActionResult<ApiResult<History_MainSubBuildFloor>>> GetMainSub() | ||||
|         public async Task<ActionResult<ApiResult<History_MainSubBuildFloor>>> GetMainSub([FromBody] HistoryFind hf) | ||||
|         { | ||||
|             ApiResult<History_MainSubBuildFloor> apiResult = new ApiResult<History_MainSubBuildFloor>(jwt_str); | ||||
|             if (!jwtlife) | ||||
| @ -160,6 +155,13 @@ namespace FrontendWebApi.ApiControllers | ||||
|                 apiResult.Code = "5000"; | ||||
|                 return BadRequest(apiResult); | ||||
|             } | ||||
|             else if (string.IsNullOrEmpty(hf.building_tag)) | ||||
|             { | ||||
|                 apiResult.Code = "0002"; | ||||
|                 apiResult.Msg = "必須選擇東別"; | ||||
|                 return apiResult; | ||||
|             } | ||||
| 
 | ||||
|             try | ||||
|             { | ||||
|                 var dbsub = await frontendRepository.GetAllAsync<HistoryDBMainSub>( | ||||
| @ -176,9 +178,9 @@ namespace FrontendWebApi.ApiControllers | ||||
|                         join auth_page b on a.AuthCode = b.AuthCode | ||||
|                         join userinfo c on c.role_guid = a.role_guid | ||||
|                         join building d on d.building_tag = b.building_tag | ||||
|                         where c.account = '{myUser.account}' | ||||
|                         where c.account = @account and d.building_tag = @building_tag | ||||
|                         order by d.priority  | ||||
|                         ", new { @account = myUser.account });
 | ||||
|                         ", new { @account = myUser.account, @building_tag = hf.building_tag });
 | ||||
|                 var mains = dbsub.GroupBy(a => a.main_system_tag).ToList(); | ||||
|                 apiResult.Data = new History_MainSubBuildFloor(); | ||||
|                 apiResult.Data.history_Main_Systems = new List<History_Main_system>(); | ||||
| @ -189,12 +191,12 @@ namespace FrontendWebApi.ApiControllers | ||||
|                     history_Main_System.full_name = main.Select(a => a.main_name).FirstOrDefault(); | ||||
|                     history_Main_System.History_Sub_systems = new List<History_Sub_system>(); | ||||
| 
 | ||||
|                     var subs = main.GroupBy(a => a.main_system_tag).ToList(); | ||||
|                     var subs = dbsub.Where(x => x.main_system_tag == main.Select(m => m.main_system_tag).FirstOrDefault()).ToList(); | ||||
|                     foreach (var sub in subs) | ||||
|                     { | ||||
|                         History_Sub_system history_Sub_System = new History_Sub_system(); | ||||
|                         history_Sub_System.full_name = sub.Select(a => a.sub_name).FirstOrDefault(); | ||||
|                         history_Sub_System.sub_system_tag = sub.Select(a => a.sub_system_tag).FirstOrDefault(); | ||||
|                         history_Sub_System.full_name = sub.sub_name; | ||||
|                         history_Sub_System.sub_system_tag = sub.sub_system_tag; | ||||
|                         history_Main_System.History_Sub_systems.Add(history_Sub_System); | ||||
|                     } | ||||
|                     apiResult.Data.history_Main_Systems.Add(history_Main_System); | ||||
|  | ||||
| @ -72,6 +72,10 @@ namespace FrontendWebApi.Models | ||||
|         public byte device_item_is_link { get; set; } | ||||
|     } | ||||
| 
 | ||||
|     public class HistoryFind | ||||
|     { | ||||
|         public string building_tag { get; set; } | ||||
|     } | ||||
|     public class BuildingFloorRawData | ||||
|     { | ||||
|         public string building_guid { get; set; } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user