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

w_createemployeewisetarget.js 19KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let TM;
  6. (function (TM) {
  7. let Targets;
  8. (function (Targets) {
  9. let Components;
  10. (function (Components) {
  11. class CreateEmployyeWiseTarget extends Unibase.Platform.Core.BaseComponent {
  12. cssFiles() {
  13. return ['libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css'];
  14. }
  15. jsFiles() {
  16. return ['libs/tabulator/js/tabulator.min.js', 'apps/tm/targets/components/savetargetvalue.js'];
  17. }
  18. html() {
  19. var html = '<div></div>';
  20. return html;
  21. }
  22. loadHtml(containerid) {
  23. const html = `<div id="EmployeeTargetWidget"><div class="card"><div class="card-header border-0 py-1 d-flex align-items-center"><span class="biz-highlight-bg-color text-truncate w-25">Employee Target</span>
  24. <div class="card-search-bar target-search-wrap">
  25. <div class="search-wrapper d-flex w-100">
  26. <input class="form-control txt_global_search target-search-input" placeholder="Search Employee" oninput="Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().targetTabulatorSearch('${containerid}')">
  27. <i class="fa fa-search search-left-icon"></i>
  28. <div class="biz-highlight-bg-color main-search-loader search-clear-icon d-none"></div>
  29. <a href="javascript:;" class="search-clear-icon target-search-clear biz-highlight-bg-color d-none" onclick="Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().clearTargetSearch('${containerid}')"><i class="zmdi zmdi-close"></i></a>
  30. </div>
  31. </div>
  32. </div><div class="card-body pa-0"><div id="Employee_TargetTable_${containerid}" class="target-widget-table templateviewer-tableview"></div></div></div></div>`;
  33. $("#" + containerid).html(html);
  34. }
  35. loadCustHtml(containerid) {
  36. const html = `<div id="CustomerTargetWidget"><div class="card"><div class="card-header border-0 py-1 d-flex align-items-center"><span class="biz-highlight-bg-color text-truncate w-25">Customer Target</span>
  37. <div class="card-search-bar target-search-wrap">
  38. <div class="search-wrapper d-flex w-100">
  39. <input class="form-control txt_global_search target-search-input" placeholder="Search Customer" oninput="Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().targetTabulatorSearch('${containerid}')">
  40. <i class="fa fa-search search-left-icon"></i>
  41. <div class="biz-highlight-bg-color main-search-loader search-clear-icon d-none"></div>
  42. <a href="javascript:;" class="search-clear-icon target-search-clear biz-highlight-bg-color d-none" onclick="Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().clearTargetSearch('${containerid}')"><i class="zmdi zmdi-close"></i></a>
  43. </div>
  44. </div>
  45. </div><div class="card-body pa-0"><div id="Customer_TargetTable" class="target-widget-table templateviewer-tableview"></div></div></div></div>`;
  46. $("#" + containerid).html(html);
  47. }
  48. load() {
  49. }
  50. init(Containerid) {
  51. var instance = this;
  52. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  53. var allowothercontacts = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_allowothercontacts").Value);
  54. instance.fileCacheHelper.loadCssFile('libs/tabulator-tables/css/bootstrap/tabulator_bootstrap4.min.css', null);
  55. instance.fileCacheHelper.loadJsFiles(["libs/tabulator/js/tabulator.min.js"], function () {
  56. if (allowothercontacts == 2) {
  57. Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().loadCustHtml(Containerid);
  58. instance.customerwisetarget();
  59. }
  60. else {
  61. Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().loadHtml(Containerid);
  62. instance.employeewisetarget(Containerid);
  63. }
  64. });
  65. }
  66. employeewisetarget(Containerid) {
  67. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  68. var targetdefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_targetdefinitionid").Value);
  69. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  70. var instance = this;
  71. instance.fileCacheHelper.loadJsFile('apps/tm/targets/managers/targetmanager.js', function () {
  72. Bizgaze.Apps.TM.Targets.Managers.TargetManager.Instance().employeeWiseTarget(userinfo.sessionId, targetdefinitionid).then(function (response) {
  73. if (response != null) {
  74. var dataarry = [];
  75. var result = response.result;
  76. instance.employeetotaldata = response.result;
  77. instance.totalEmployeeResponse = jQuery.extend(true, [], response.result);
  78. var datatree = false;
  79. var userparentinformation = response.result.filter(function (o) { return o.EmployeeId === userinfo.userId + "p"; });
  80. if (userparentinformation.length > 0) {
  81. datatree = true;
  82. userparentinformation[0]["_children"] = [];
  83. }
  84. dataarry.push(userparentinformation[0]);
  85. Bizgaze.Apps.TM.Targets.Components.CreateEmployyeWiseTarget.Instance().loadEmpTargetTabulator(dataarry, datatree, response, Containerid);
  86. }
  87. });
  88. });
  89. }
  90. loadEmpTargetTabulator(response, datatree, response1, Containerid) {
  91. var instance = this;
  92. var autoNumFormatter = function (cell) {
  93. var row = cell.getRow();
  94. var rowIndex = row.getPosition(false);
  95. return (rowIndex + 1);
  96. };
  97. var editIcon = function (cell, formatterParams) {
  98. var icon = "<i class='fa fa-pencil'></i>";
  99. if (cell.getRow().getData()._children != undefined) {
  100. icon = "";
  101. }
  102. return icon;
  103. };
  104. instance.initialEmployeeData = response;
  105. instance.employeeData = new Tabulator(`#Employee_TargetTable_${Containerid}`, {
  106. placeholder: "<div class='alert alert-primary text-center mb-0 border-0 w-100 font-14 rounded-0'>No data available</div>",
  107. data: response,
  108. layout: "fitDataFill",
  109. columns: [
  110. { title: "EmployeeId", field: "EmployeeId", visible: false },
  111. { title: "Employee Name", field: "EmployeeName" },
  112. { title: "Target Value", field: "TargetValue" },
  113. {
  114. title: "Edit Target Value", formatter: editIcon, hozAlign: "center", cellClick: function (e, cell) {
  115. instance.currentRow = cell.getRow();
  116. if (!instance.currentRow._row.data.EmployeeId.includes("p")) {
  117. instance.fileCacheHelper.loadJsFile('apps/tm/targets/components/savetargetvalue.js', function () {
  118. Bizgaze.Apps.TM.Targets.Components.SaveTargetValue.Instance().loadForm(0, cell.getRow().getData().EmployeeId, 0, null, 0);
  119. });
  120. }
  121. }
  122. },
  123. ],
  124. dataTree: datatree,
  125. dataTreeSelectPropagate: true,
  126. dataTreeChildIndent: 15,
  127. dataTreeRowExpanded: function (row, level) {
  128. var currentemployeeid = row.getData().EmployeeId;
  129. if (currentemployeeid.includes("p"))
  130. currentemployeeid = currentemployeeid.replace("p", "");
  131. var empdatta = instance.employeetotaldata.filter(function (o) { return o.ParentId === Number(currentemployeeid); });
  132. for (var i = 0; i < empdatta.length; i++) {
  133. var userparentinformation = instance.employeetotaldata.filter(function (o) { return o.EmployeeId === empdatta[i].EmployeeId; });
  134. ;
  135. if (userparentinformation[0].EmployeeId.includes("p")) {
  136. if (userparentinformation.length > 0) {
  137. datatree = true;
  138. empdatta[i]["_children"] = [];
  139. }
  140. }
  141. }
  142. row.getData()._children = empdatta;
  143. row.getData().isExpanded = true;
  144. row.update(row.getData());
  145. instance.employeeData.redraw(true);
  146. instance.initialEmployeeData = instance.employeeData.getData();
  147. },
  148. dataTreeRowCollapsed: function (row, level) {
  149. row.getData().isExpanded = false;
  150. },
  151. dataTreeStartExpanded: function (row, level) {
  152. return row.getData().isExpanded;
  153. },
  154. });
  155. }
  156. customerwisetarget() {
  157. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  158. var targetdefinitionid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_targetdefinitionid").Value);
  159. var userinfo = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
  160. var instance = this;
  161. instance.fileCacheHelper.loadJsFile('apps/tm/targets/managers/targetmanager.js', function () {
  162. Bizgaze.Apps.TM.Targets.Managers.TargetManager.Instance().customerWiseTarget(userinfo.sessionId, targetdefinitionid).then(function (response) {
  163. if (response != null) {
  164. var result = response.result;
  165. instance.loadCustTargetTabulator("");
  166. instance.customerData.setData(result);
  167. }
  168. });
  169. });
  170. }
  171. loadCustTargetTabulator(response) {
  172. var instance = this;
  173. var tabledata = [];
  174. var autoNumFormatter = function (cell) {
  175. var row = cell.getRow();
  176. var rowIndex = row.getPosition(false);
  177. return (rowIndex + 1);
  178. };
  179. var editIcon = function (cell, formatterParams) {
  180. return "<i class='fa fa-pencil'></i>";
  181. };
  182. instance.customerData = new Tabulator("#Customer_TargetTable", {
  183. placeholder: "<div class='alert alert-primary text-center mb-0 border-0 w-100 font-14 rounded-0'>No data available</div>",
  184. data: tabledata,
  185. layout: "fitDataFill",
  186. columns: [
  187. { title: "EmployeeId", field: "EmployeeId", visible: false, },
  188. { title: "Customer Name", field: "EmployeeName" },
  189. { title: "ParentId", field: "ParentId", visible: false },
  190. { title: "Target Value", field: "TargetValue" },
  191. {
  192. title: "Edit Target Value", formatter: editIcon, hozAlign: "center", cellClick: function (e, cell) {
  193. instance.currentRow = cell.getRow();
  194. instance.fileCacheHelper.loadJsFile('apps/tm/targets/components/savetargetvalue.js', function () {
  195. Bizgaze.Apps.TM.Targets.Components.SaveTargetValue.Instance().loadForm(0, cell.getRow().getData().EmployeeId, 0, null, 0);
  196. });
  197. }
  198. },
  199. ],
  200. pagination: "local",
  201. paginationSize: 15,
  202. dataTree: false,
  203. dataTreeSelectPropagate: true,
  204. });
  205. }
  206. targetTabulatorSearch(containerId) {
  207. const instance = this;
  208. const containerEl = $(`#${containerId}`);
  209. const searchEl = containerEl.find('.target-search-input');
  210. const loaderEl = containerEl.find('.main-search-loader');
  211. const clearEl = containerEl.find('.target-search-clear');
  212. let tableEl = instance.employeeData;
  213. let totalResponse = instance.totalEmployeeResponse;
  214. let initialTableData = instance.initialEmployeeData;
  215. clearTimeout(instance.searchTimer);
  216. loaderEl.removeClass('d-none');
  217. clearEl.addClass('d-none');
  218. instance.searchTimer = setTimeout(function () {
  219. let searchVal = searchEl.val();
  220. searchVal = searchVal.trim().toLowerCase();
  221. if (searchVal) {
  222. if (containerEl.find('#CustomerTargetWidget').length > 0) {
  223. instance.customerData.setFilter("EmployeeName", "like", searchVal);
  224. }
  225. else {
  226. const searchedData = totalResponse.filter(employee => {
  227. return employee.EmployeeName.toLowerCase().includes(searchVal) && !employee.EmployeeId.includes('p');
  228. });
  229. tableEl.replaceData(searchedData);
  230. tableEl.redraw(true);
  231. }
  232. clearEl.removeClass('d-none');
  233. }
  234. else {
  235. if (containerEl.find('#CustomerTargetWidget').length === 0) {
  236. tableEl.replaceData(initialTableData);
  237. tableEl.redraw(true);
  238. }
  239. clearEl.addClass('d-none');
  240. }
  241. loaderEl.addClass('d-none');
  242. }, 1000);
  243. }
  244. clearTargetSearch(containerId) {
  245. const instance = this;
  246. const containerEl = $(`#${containerId}`);
  247. let initialTableData = instance.initialEmployeeData;
  248. containerEl.find('.target-search-input').val('');
  249. containerEl.find('.target-search-clear,.main-search-loader').addClass('d-none');
  250. if (containerEl.find('#CustomerTargetWidget').length > 0) {
  251. instance.customerData.setFilter("EmployeeName", "like", "");
  252. return;
  253. }
  254. instance.employeeData.replaceData(initialTableData);
  255. instance.employeeData.redraw(true);
  256. }
  257. static Instance() {
  258. if (this.instance === undefined) {
  259. this.instance = new CreateEmployyeWiseTarget();
  260. }
  261. return this.instance;
  262. }
  263. }
  264. Components.CreateEmployyeWiseTarget = CreateEmployyeWiseTarget;
  265. })(Components = Targets.Components || (Targets.Components = {}));
  266. })(Targets = TM.Targets || (TM.Targets = {}));
  267. })(TM = Apps.TM || (Apps.TM = {}));
  268. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  269. })(Bizgaze || (Bizgaze = {}));