You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

225 lines
7.4 KiB

2 years ago
  1. $(function () {
  2. 'use strict';
  3. var sLang = $('[http-equiv="content-language"]').attr('content') || 'zh-TW',
  4. bEn = sLang === 'en',
  5. iPageIndex = 1,
  6. iPageCount = 10,
  7. CountryChecked = [],
  8. CountryCheckedName = [],
  9. CategoryChecked = [],
  10. CategoryCheckedName = [],
  11. sCode = getUrlParam('Code'),
  12. /*
  13. * 目的 抓取國家
  14. */
  15. fnGetArguments = function () {
  16. return g_api.ConnectLite(Service.apiappcom, ComFn.GetArguments, {
  17. ArgClassID: 'Area',
  18. LevelOfArgument: 0
  19. }, function (res) {
  20. if (res.RESULT) {
  21. let saResArea = res.DATA.rel,
  22. sHtmlArea = $('#temp_Areas').render(saResArea);
  23. $("#hidden-countries").html(sHtmlArea);
  24. $.each(saResArea, function (LogIdx, LogData) {
  25. g_api.ConnectLite(Service.apiappcom, ComFn.GetArguments, {
  26. ArgClassID: 'Area',
  27. LevelOfArgument: 1,
  28. ParentID: LogData.id
  29. }, function (res2) {
  30. if (res2.RESULT) {
  31. let saResCountry = res2.DATA.rel,
  32. sHtmlCountry = $('#temp_Countries').render(saResCountry);
  33. $("#Area_" + LogData.id).html(sHtmlCountry);
  34. }
  35. });
  36. })
  37. }
  38. });
  39. },
  40. /*
  41. * 目的 抓取展覽類別
  42. */
  43. fnGetExhibitCategory = function () {
  44. return g_api.ConnectLite(Service.apiappcom, ComFn.GetArguments, {
  45. ArgClassID: 'ExhibClass',
  46. LevelOfArgument: 0
  47. }, function (res) {
  48. if (res.RESULT) {
  49. let saResCategory = res.DATA.rel,
  50. sHtmlCategory = $('#temp_ExhibitCategory').render(saResCategory);
  51. $("#ulExhibitCategory").html(sHtmlCategory);
  52. }
  53. });
  54. },
  55. /*
  56. * 目的 抓去展覽資訊前n筆
  57. */
  58. fnGetExhibitionsTop = function () {
  59. var sKeyWords = $('#keyword').val(),
  60. sArea = $('#area').val(),
  61. sDateStart = $('#datestart').val(),
  62. sDateEnd = $('#dateend').val(),
  63. sCategory = "";
  64. if (!sDateStart) {
  65. sDateStart = newDate();
  66. }
  67. g_api.ConnectLite(Service.apiwebcom, ComFn.GetExhibitionPage, {
  68. pageIndex: iPageIndex,
  69. pageSize: iPageCount,
  70. IsShowWebSim: "Y",
  71. KeyWords: sKeyWords,
  72. Area: CountryChecked.toString(),
  73. DateStart: sDateStart,
  74. DateEnd: sDateEnd,
  75. Category: CategoryChecked.toString(),
  76. Top: true,
  77. Code: sCode
  78. }, function (res) {
  79. if (res.RESULT) {
  80. var oRes = res.DATA.rel,
  81. sHtml = $('#temp_expo').render(oRes.DataList);
  82. $('.ExpoList').html(sHtml);
  83. $("#page").pagination({
  84. items: oRes.Total,
  85. itemsOnPage: iPageCount,
  86. currentPage: iPageIndex,
  87. displayedPages: 4,
  88. cssStyle: 'light-theme',
  89. onPageClick: fnChangePage
  90. });
  91. if (oRes.Total <= iPageCount) { $("#pager").hide(); }
  92. if(sCode != null){
  93. $('html, body').animate({
  94. scrollTop: $("#expoSearchFilter").offset().top
  95. }, "slow")
  96. }
  97. }
  98. });
  99. },
  100. /*
  101. * 目的 抓去活動資訊分頁資訊
  102. */
  103. fnChangePage = function () {
  104. iPageIndex = $("#page").pagination('getCurrentPage');
  105. fnGetExhibitionsTop();
  106. },
  107. init = function () {
  108. var myHelpers = {
  109. getYear: function (date) {
  110. var y = new Date(date).getFullYear();
  111. return y;
  112. },
  113. getMonth: function (date) {
  114. var m = new Date(date).getMonth();
  115. return m + 1;
  116. },
  117. setRangeDate: function (date1, date2) {
  118. var r1 = new Date(date1).formate('yyyy/MM/dd'),
  119. r2 = new Date(date2).formate('yyyy/MM/dd');
  120. return r1 + ' ~ ' + r2;
  121. },
  122. setDate: function (date) {
  123. var dt = new Date(date).formate('yyyy/MM/dd');
  124. if(dt === "1970/01/01"){
  125. dt = "";
  126. }
  127. return dt;
  128. },
  129. setFilePath: function (val) {
  130. val = val || '';
  131. if(val != ''){
  132. val = gServerUrl + '/' + val.replace(/\\/g, "\/")
  133. }
  134. return val;
  135. },
  136. setContent: function (val) {
  137. val = val || '';
  138. return val.length > 66 ? val.substr(0, 66) + '...' : val;
  139. }
  140. };
  141. $.views.helpers(myHelpers);
  142. if (bEn) {
  143. $.datepicker.setDefaults($.datepicker.regional[""]);
  144. }
  145. $(".datepicker").datepicker({
  146. changeYear: true,
  147. changeMonth: true,
  148. dateFormat: 'yy/mm/dd'
  149. });
  150. $.whenArray([
  151. g_api.ConnectLite(Service.apiappcom, ComFn.GetSysSet, {
  152. SetItemID: 'ExhibitionsShowCount'
  153. }, function (res) {
  154. if (res.RESULT) {
  155. iPageCount = parseInt(res.DATA.rel || 10);
  156. }
  157. }),
  158. //fnGetArguments(),
  159. fnGetExhibitCategory()
  160. ]).done(function () {
  161. fnGetExhibitionsTop();
  162. $('input[name="category"]').on('change', function(){
  163. CategoryChecked = [];
  164. CategoryCheckedName = [];
  165. $('input[name="category"]:checked').each(function(index, checkbox){
  166. CategoryChecked.push($(checkbox).attr('value'));
  167. CategoryCheckedName.push($(checkbox).attr('dataName'));
  168. });
  169. let html = "";
  170. for (let i = 0; i < CategoryChecked.length; ++i) {
  171. html += "<li>"+CategoryCheckedName[i]+"</li>"
  172. }
  173. $( "div.catselect").html("<ul class='tags'>"+html+"</ul>");
  174. });
  175. //setTimeout(function () {
  176. $('input[name="country"]').on('change', function(){
  177. CountryChecked = [];
  178. CountryCheckedName = [];
  179. $('input[name="country"]:checked').each(function(index, checkbox){
  180. CountryChecked.push($(checkbox).attr('value'));
  181. CountryCheckedName.push($(checkbox).attr('dataName'));
  182. });
  183. let html = "";
  184. for (let i = 0; i < CountryChecked.length; ++i) {
  185. html += "<li>"+CountryCheckedName[i]+"</li>"
  186. }
  187. $( "div.countryselect").html("<ul class='tags'>"+html+"</ul>");
  188. });
  189. //}, 1000);
  190. });
  191. $('#btnSearch').on('click', function () {
  192. iPageIndex = 1;
  193. fnGetExhibitionsTop();
  194. });
  195. $('#btnClear').on('click', function () {
  196. $("#keyword").val("");
  197. $("#datestart").val("");
  198. $("#dateend").val("");
  199. $(".catselect").html("<span class=\"disabledText\">選擇</span>");
  200. $(".countryselect").html("<span class=\"disabledText\">選擇</span>");
  201. CategoryChecked = [];
  202. CategoryCheckedName = [];
  203. CountryChecked = [];
  204. CountryCheckedName = [];
  205. $('input[name="category"]:checked').each(function(index, checkbox){
  206. $(this).prop('checked', false);
  207. });
  208. $('input[name="country"]:checked').each(function(index, checkbox){
  209. $(this).prop('checked', false);
  210. });
  211. });
  212. };
  213. init();
  214. });