var apiName = 'api/Game/'; var width = $(document).width(); var featured = []; var offerListBox = $('#offerListBox'); var servers = []; var pathname = window.location.pathname; pathname = pathname.substr(1).toLocaleLowerCase().match('fortnite'); var filters = { IsFeatured: 0, Pager: _filters.Pager, FilterParams: { SortField: GetQueryString('SortField') || '', //SortField: GetQueryString('SortField') || (pathname ? 'fdefault' : 'most-reviews'), keyword: GetQueryString('keyword') || '', Serverid: GetQueryString('Serverid') || '', Quantity: '', Itemid: '', Freeinsurance: GetQueryString('Freeinsurance') || '', Isdelivery: parseInt(GetQueryString('Isdelivery')) || 0 } }; $('#mySelectCtrl select').change(function (e) { filters.FilterParams.SortField = $(this).val(); if ($(this).val() == '1') { var _FilterParams = { SortField: '', //SortField: 'most-reviews', keyword: GetQueryString('keyword') || '', Serverid: GetQueryString('Serverid') || '', Quantity: '', Itemid: '', Isdelivery: 0, Freeinsurance: 1 } filters.FilterParams = _FilterParams; }; filters.Pager.PageIndex = 1; window.location = queryConfig(filters); }); $('.input-group-btn').click(function (e) { if (width > 768) { filters.FilterParams.keyword = $('.filter-search').val(); } else { var search = $('.filter-search-xs').val(); filters.FilterParams.keyword = search; } filters.Pager.PageIndex = 1; window.location = queryConfig(filters); }); function template(offers) { if (!offers) return; var $table = $('#offers'); movetemplate(offers); $.each(offers, function (i, v) { var $tr = $(''); var detailUrl = v.Title.replace(/[^\w\s]{1,}/g, "").replace(/\s/g, "-"); var detail = toLower(v.OfferId + 'a!' + detailUrl.substring(0, 50)); var hot = $(' '); var Title = $('' + v.Title + ''); var Isdelivery = ''; if (v.Isdelivery) { Isdelivery = $('Instant'); } else { Isdelivery = $('icon-time' + v.DeliverySpeed.en + ''); } var Rating = $(''); var Price = $('' + currencyTypeLogo + '' + v.Price[currencyType].UnitPrice.toFixed(2) + ''); var Details = $('DETAILSBUY NOW'); if (v.Seller.TotalReviews == 0) { var ratingOuter = $('' + 'New Seller' + ''); ratingOuter.appendTo(Rating); } else { var ratingOuter = $('' + '' + '' + v.Seller.TotalReviews + '' + ''); ratingStars(ratingOuter, v.Seller.Rating); ratingOuter.appendTo(Rating); } hot.appendTo($tr); Title.appendTo($tr); Isdelivery.appendTo($tr); Rating.appendTo($tr); Price.appendTo($tr); Details.appendTo($tr); $tr.appendTo($table); }); $table.appendTo(offerListBox); } function hot() { filters.IsFeatured = 1; featured = init(filters).Offers; if (featured && featured.length > 0) { var $table = $('#offers'); movehot(featured); $.each(featured, function (i, v) { var detailUrl = v.Title.replace(/[^\w\s]{1,}/g, "").replace(/\s/g, "-"); var detail = toLower(v.OfferId + 'a!' + detailUrl.substring(0, 50)); var $tr = $(''); var hot = $(' '); var Title = $('' + v.Title + ''); var Isdelivery = ''; if (v.Isdelivery) { Isdelivery = $('Instant'); } else { Isdelivery = $('icon-time' + v.DeliverySpeed.en + ''); } var Rating = $('' + ''); var Price = $('' + currencyTypeLogo + '' + v.Price[currencyType].UnitPrice.toFixed(2) + ''); var detail = v.OfferId + 'a!' + v.Title.substring(0, 50); var Details = $('DETAILSBUY NOW'); if (v.Seller.TotalReviews == 0) { var ratingOuter = $('' + 'New Seller' + ''); ratingOuter.appendTo(Rating); } else { var ratingOuter = $('' + '' + '' + v.Seller.TotalReviews + '' + ''); ratingStars(ratingOuter, v.Seller.Rating); ratingOuter.appendTo(Rating); } hot.appendTo($tr); Title.appendTo($tr); Isdelivery.appendTo($tr); Rating.appendTo($tr); Price.appendTo($tr); Details.appendTo($tr); $tr.appendTo($table); //此处appendTo有坑,可以用prependTo }); $table.appendTo(offerListBox); } } function movehot(offers) { if (offers && offers.length > 0) { var $div = $('#moveFeatured'); $.each(offers, function (i, v) { var detailUrl = v.Title.replace(/[^\w\s]{1,}/g, "").replace(/\s/g, "-"); var detail = toLower(v.OfferId + 'a!' + detailUrl.substring(0, 50)); var $tr = $('
'); var hot = $('
icon-hot ' + v.Title + '
'); var Isdelivery = ''; var $dsDiv = $('
'); if (v.Isdelivery) { Isdelivery = $('
Instant
'); } else { Isdelivery = $('
icon-time' + v.DeliverySpeed.en + '
'); } Isdelivery.appendTo($dsDiv); if (v.Seller.TotalReviews == 0) { var ratingOuter = $('
New Seller
'); ratingOuter.appendTo($dsDiv); } else { var ratingOuter = $('
' + v.Seller.TotalReviews + '
'); ratingStars(ratingOuter, v.Seller.Rating); ratingOuter.appendTo($dsDiv); } var Details = $('

' + currencyTypeLogo + ' ' + v.Price[currencyType].UnitPrice.toFixed(2) + '

'); var $blockToDetail = $(''); hot.appendTo($tr); $dsDiv.appendTo($tr); Details.appendTo($tr); $tr.appendTo($blockToDetail); $blockToDetail.appendTo($div); }); $div.appendTo(offerListBox); } } function movetemplate(offers) { $('#moveOffer').empty(); //清空上一次的结果 if (offers && offers.length > 0) { var $div = $('#moveOffer'); $.each(offers, function (i, v) { var detailUrl = v.Title.replace(/[^\w\s]{1,}/g, "").replace(/\s/g, "-"); var detail = toLower(v.OfferId + 'a!' + detailUrl.substring(0, 50)); var $tr = $('
'); var hot = $('
' + v.Title + '
'); var Isdelivery = ''; var $dsDiv = $('
'); if (v.Isdelivery) { Isdelivery = $('
Instant
'); } else { Isdelivery = $('
icon-time' + v.DeliverySpeed.en + '
'); } Isdelivery.appendTo($dsDiv); if (v.Seller.TotalReviews == 0) { var ratingOuter = $('
New Seller
'); ratingOuter.appendTo($dsDiv); } else { var ratingOuter = $('
' + v.Seller.TotalReviews + '
'); ratingStars(ratingOuter, v.Seller.Rating); ratingOuter.appendTo($dsDiv); } var Details = $('

' + currencyTypeLogo + ' ' + v.Price[currencyType].UnitPrice.toFixed(2) + '

'); var $blockToDetail = $(''); hot.appendTo($tr); $dsDiv.appendTo($tr); Details.appendTo($tr); $tr.appendTo($blockToDetail); $blockToDetail.appendTo($div); }); $div.appendTo(offerListBox); } } function initUserlogData() { filters.IsFeatured = 0; function loadData() { var account = init(filters); if (account) { $('#offers').find('tr:not(".hot-table-row")').remove();//清空上一次的结果 //数据渲染 template(account.Offers); } } loadData(); } //获取下拉列表 function getFilters() { var url = api + apiName + gameSeoName + '/Info/?DisplayFileds=Servers'; $.ajax({ url: url, type: 'GET', dataType: 'json', success: function (data) { initFilters(data); }, error: function (reason) { console.log(reason); } }) }; function mySelect(configs) { var _config = configs || {}; var container = _config.container; if (!container) return false; var cb = _config.changeCallback || function () { }; container.appendChild(renderSelect(_config.data, _config.className)); var select = container.children[0].children[0].children[0]; /// addChangeEvent(select, container); //function addChangeEvent(oTar, contWrapper) { // oTar.onchange = function () { // var nextSlectStr = this.selectedOptions[0].getAttribute("options"); // var nextSlectObj = nextSlectStr && JSON.parse(nextSlectStr); // var tmp = null; // var next = this.parentNode.parentNode; // var oPar = this.parentNode.parentNode.parentNode; // while (next.nextElementSibling) { // oPar.removeChild(next.nextElementSibling); // } // var newSelectDom = renderSelect(nextSlectObj, _config.className); // newSelectDom && (tmp = document.createDocumentFragment(), tmp.appendChild(newSelectDom), contWrapper.appendChild(tmp), addChangeEvent(newSelectDom.children[0].children[0], contWrapper), tmp = null); // typeof cb == "function" && cb.call(this, this); // } //} } function renderSelect(data, className) { var selectStr = ''; if (data && data.SubCategorys.length < 1 || !data) return null; var wrapper = document.createElement("div"); wrapper.className = "filter-group clearfix " + className; selectStr += ""; wrapper.innerHTML = selectStr; return wrapper; } function renderOption(data, className) { var _data = data; if (!_data) return ''; var placeholder = ''; placeholder = (className == 'filter-sub-servers') ? placeholder = 'Select faction' : placeholder = 'Select item'; var optionStr = ''; for (let i = 0, curItem; curitem = _data[i++];) { optionStr += "\n\n"; }; return optionStr; } var allServers = []; var categorys = []; var serverSelect = {}; if (GetQueryString('Serverid')) { servers.push(GetQueryString('Serverid')); } function initFilters(data) { var Categorys = data.Result; Categorys = JSON.parse(JSON.stringify(Categorys).replace(/'/g, "'")); if (Categorys.length <= 1) { return; } serverSelect.SubCategorys = Categorys; mySelect({ container: g("select-server"), data: serverSelect, className: 'filter-sub-servers', changeCallback: function (e) { if (this.value) filters.FilterParams.Serverid = this.value; } }); $('#select-server select:first option:first').text('Select server'); mySelect({ container: g("select-server-xs"), data: serverSelect, className: 'filter-sub-servers', changeCallback: function (e) { if (this.value) filters.FilterParams.Serverid = this.value; } }); $('#select-server-xs select:first option:first').text('Select server'); if (servers) { initVal('.filter-sub-servers', servers); initVal('#select-server-xs .filter-sub-servers', servers); } addChangeEvent(g("select-server").children[0].children[0].children[0]); addChangeEvent(g("select-server-xs").children[0].children[0].children[0]); } function addChangeEvent(oTar) { oTar.onchange = function () { filters.FilterParams.Serverid = $(this).val(); filters.Pager.PageIndex = 1; window.location = queryConfig(filters); } } function initVal(wrapperClass, data) { data.forEach(function (item, index) { $(wrapperClass).find("select").eq(index).val(item).triggerHandler("change"); }) } function g(id) { return document.getElementById(id); } $(function () { if (GetQueryString('Isdelivery') == 1) { $('#paCheckbox,#paCheckbox2').prop('checked', true); } if (GetQueryString('SortField')) { $("#mySelectCtrl select").find("option[value=" + GetQueryString('SortField') + "]").prop("selected", true); } if (GetQueryString('keyword')) { $('.filter-search').val(GetQueryString('keyword')); } getFilters(); //hot(); //initUserlogData(); $("div.btn-keywords").click(function () { filters.FilterParams.keyword = $(this).attr("data-value"); filters.Pager.PageIndex = 1; window.location = queryConfig(filters); }); }); function InstantChange(paCheckbox) { if ($('#' + paCheckbox).prop('checked')) { filters.FilterParams.Isdelivery = 1; } else { filters.FilterParams.Isdelivery = 0; } filters.Pager.PageIndex = 1; window.location = queryConfig(filters); }