Built files from Bizgaze WebServer
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

routeschedule.js 11KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Routes;
  6. (function (Routes) {
  7. let Map;
  8. (function (Map) {
  9. class Routeschedule extends Unibase.Platform.Core.BaseComponent {
  10. cssFiles() {
  11. return [];
  12. }
  13. jsFiles() {
  14. return [];
  15. }
  16. html(id, containerid) {
  17. let html = ``;
  18. return html;
  19. }
  20. load(id, containerid, callback) {
  21. }
  22. ;
  23. init(container) {
  24. Bizgaze.Apps.Routes.Map.Routeschedule.Instance().render(container);
  25. }
  26. render(containerid) {
  27. var portletwidgetid = Number($("#hf_PortletWidgetId").val());
  28. $("." + containerid).empty();
  29. let html = `<div class="card">
  30. <div class="card-header card-header-action">
  31. <div class="col-6">
  32. <span class="h6 ml-10">
  33. <span class="row">Route Map</span>
  34. </span>
  35. <span class="row"><strong>Count :</strong> <span id="Customer_Length"></span></span>
  36. </div>
  37. </div>
  38. <div class="row card-body" style="overflow-x:auto;">
  39. <div class="col-sm-12">
  40. <div id="RouteMap" style="width:auto;height:750px">
  41. </div>
  42. </div>
  43. </div>
  44. </div>`;
  45. $("." + containerid).append(html);
  46. this.mapRoute();
  47. }
  48. mapRoute() {
  49. var markers = [];
  50. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  51. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  52. var Routedefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + Unibase.Themes.Providers.DetailHelper.installedAppId + "_routedefinitionid").Value);
  53. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().getSections(Routedefinitionid).then(function (response) {
  54. var markers = [];
  55. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  56. $("#Customer_Length").text(response.result.length);
  57. if (response.result.length != 0) {
  58. for (var i = 0; i < response.result.length; i++) {
  59. var data = response.result[i];
  60. var addressId = data.ContactAddressId;
  61. var contactId = data.ContactId;
  62. var routeId = data.RouteId;
  63. var routeIndex = data.RouteIndex;
  64. var addressName = data.AddressName;
  65. var contactName = data.ContactName;
  66. var adrlatd = data.AddrLatd;
  67. var adrlgtd = data.AddrLgtd;
  68. var CustomerStatus = data.StatusId;
  69. var RouteScheduleItemId = data.RouteScheduleItemId;
  70. var objCustomer = {
  71. "title": contactName,
  72. "address": addressName,
  73. "lat": adrlatd,
  74. "lng": adrlgtd,
  75. "description": contactName,
  76. "type": CustomerStatus,
  77. "ContactId": contactId,
  78. "RouteScheduleItemId": RouteScheduleItemId
  79. };
  80. markers.push(objCustomer);
  81. }
  82. var mapOptions = {
  83. center: new google.maps.LatLng(32.3917, 115.867),
  84. zoom: 4,
  85. mapTypeId: google.maps.MapTypeId.ROADMAP
  86. };
  87. var map = new google.maps.Map(document.getElementById("RouteMap"), mapOptions);
  88. var infoWindow = new google.maps.InfoWindow();
  89. var lat_lng = new Array();
  90. var latlngbounds = new google.maps.LatLngBounds();
  91. var markerArr = [];
  92. for (var i = 0; i < markers.length; i++) {
  93. var dat = markers[i];
  94. var myLatlng = new google.maps.LatLng(dat.lat, dat.lng);
  95. lat_lng.push(myLatlng);
  96. var icon = "";
  97. switch (dat.type) {
  98. case 1:
  99. icon = "green";
  100. break;
  101. case 2:
  102. icon = "red";
  103. break;
  104. case 3:
  105. icon = "yellow";
  106. break;
  107. }
  108. icon = "http://maps.google.com/mapfiles/ms/icons/" + icon + ".png";
  109. var marker;
  110. marker = new google.maps.Marker({
  111. position: myLatlng,
  112. map: map,
  113. title: dat.title,
  114. });
  115. markerArr.push(marker);
  116. latlngbounds.extend(marker.position);
  117. (function (marker, dat) {
  118. google.maps.event.addListener(marker, "click", function (e) {
  119. infoWindow.setContent("<span class=''>" + "<strong>" + dat.title + ", " + dat.address + "</strong>" + "</span>" + "<br>" + "<br>" + "<button class='btn mr-20 btn-sm btn-primary btn-rounded text-white' href='javascript: ;' type='button' id='btnorders' onclick='Bizgaze.Apps.Routes.Map.Routeschedule.Instance().loadWidgets(" + dat.ContactId + ",\"Bizgaze_Platform_Crm_Customers_App_Customers_Widget_Report_Sales_Pending_Orders\");'>PendingOrders</button>" + "&nbsp" + "&nbsp" + "<button class='btn mr-20 btn-sm btn-success btn-rounded text-white' href='javascript: ;' type='button' id='btninvoices' onclick ='Bizgaze.Apps.Routes.Map.Routeschedule.Instance().loadWidgets(" + dat.ContactId + ",\"Pending_Invoices\");'>PendingInvoices</button>");
  120. infoWindow.open(map, marker);
  121. });
  122. })(marker, dat);
  123. map.setCenter(latlngbounds.getCenter());
  124. map.fitBounds(latlngbounds);
  125. }
  126. var path = new google.maps.MVCArray();
  127. var service = new google.maps.DirectionsService();
  128. var poly = new google.maps.Polyline({ map: map, strokeColor: '#4986E7' });
  129. for (var i = 0; i < lat_lng.length; i++) {
  130. if ((i + 1) < lat_lng.length) {
  131. var src = lat_lng[i];
  132. var des = lat_lng[i + 1];
  133. path.push(src);
  134. poly.setPath(lat_lng);
  135. poly.setMap(map);
  136. }
  137. }
  138. }
  139. }
  140. });
  141. });
  142. }
  143. loadWidgets(customerid, uniqueid) {
  144. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidgetbyuniqueid(uniqueid).then(function (response) {
  145. var linkwidgetid = response.result.WidgetId;
  146. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getWidget(linkwidgetid).then(function (res) {
  147. let ReplaceText = [];
  148. let split = res.result.Parameter.split(':');
  149. ReplaceText.push({
  150. Key: split[0],
  151. Value: (customerid).toString(),
  152. ExpOp: 1
  153. });
  154. let reportwidget = Unibase.Themes.Compact.Components.ReportWidgets.Default.Instance().getReportWidget(0, linkwidgetid, "", ReplaceText, null, true, Unibase.Themes.Providers.DetailHelper.installedAppId, true);
  155. });
  156. });
  157. }
  158. static Instance() {
  159. if (this.instance === undefined) {
  160. this.instance = new Routeschedule();
  161. }
  162. return this.instance;
  163. }
  164. }
  165. Map.Routeschedule = Routeschedule;
  166. })(Map = Routes.Map || (Routes.Map = {}));
  167. })(Routes = Apps.Routes || (Apps.Routes = {}));
  168. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  169. })(Bizgaze || (Bizgaze = {}));