설명 없음
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.

laptopd.js 30KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943
  1. function startDetails() {
  2. // http://127.0.0.1:5502/productdetails.html?productId=106633230000024
  3. if (window.location.search.split('=')[0] == '') {
  4. window.location.href = "/notfound.html";
  5. return;
  6. }
  7. let productId = window.location.hash.split('#')[1].split('=')[1];
  8. // console.log(productId);
  9. let itemtagscombinationRes = null;
  10. let labels = {};
  11. let isThereInLabel = {};
  12. let currentComb = null;
  13. let colorId = null;
  14. let group = {};
  15. let loadingActions = {
  16. addLoader() {
  17. $('.loadingCall').removeClass('d-none');
  18. $('.mainContanierProduct').addClass('d-none');
  19. },
  20. removeLoader() {
  21. $('.loadingCall').addClass('d-none');
  22. $('.mainContanierProduct').removeClass('d-none');
  23. }
  24. }
  25. let currentClick = null;
  26. if (productId) {
  27. swapSectionsVideo();
  28. loadingActions.addLoader();
  29. updateProductId(productId);
  30. getProductDetails(productId);
  31. appendSpecs(productId)
  32. } else {
  33. window.location.href = "/notfound.html"
  34. }
  35. function updateProductId(val) {
  36. $('#productidtag').val(val);
  37. }
  38. function updateItemId(val) {
  39. $('#itemidtag').val(val);
  40. }
  41. let specification_wrap_action = {
  42. remove() {
  43. $('.specification-wrap').addClass('d-none');
  44. },
  45. add() {
  46. $('.specification-wrap').removeClass('d-none');
  47. }
  48. }
  49. let description_action = {
  50. addVal(value) {
  51. $('.description-wrap > p').html(value);
  52. },
  53. removeVal(value) {
  54. $('.description-wrap > p').html('');
  55. }
  56. }
  57. function getSpecsItemHTML({ name, des, itemid, id }) {
  58. let isMobile = $(window).width()<=600 ? '' : '';
  59. let addPaddM = $(window).width()<=600 ? 'py-2' : 'py-4';
  60. return `<div id="${id}" data-specitemid="${itemid}" >
  61. <div class="row border-bottom">
  62. <div class="col-sm-3 ${isMobile} font-weight-600 ${addPaddM} ">
  63. ${name}
  64. </div>
  65. <div class="col-sm-9 py-2 d-flex align-items-center">
  66. ${des}
  67. </div>
  68. </div>
  69. </div>`;
  70. }
  71. // function getSpecsItemHTML({name,des,itemid,id}){
  72. // return ` <tr id="${id}" data-specitemid="${itemid}">
  73. // <td style="width:200px">${name}</td>
  74. // <td class="">${des}</td>
  75. // </tr>`;
  76. // }
  77. async function appendSpecs(id) {
  78. let resData = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/itemspecifications/itemid/${id}`, true);
  79. if (resData.isError) {
  80. $('.productdetailstabs').addClass('d-none');
  81. $('.specContainerleft').html('')
  82. $('.specContainerRight').html('')
  83. return;
  84. }
  85. $('.productdetailstabs ').removeClass('d-none');
  86. const res = resData.response;
  87. // console.log(JSON.parse(res.result));
  88. const data = JSON.parse(res.result);
  89. // console.log(data);
  90. let html = '';
  91. let leftHtml = '';
  92. let rightHtml = '';
  93. if (data.length == 0) {
  94. $('.productdetailstabs ').addClass('d-none');
  95. $('.specContainerleft').html('')
  96. $('.specContainerRight').html('')
  97. return;
  98. }
  99. for (let i = 0; i < data.length; i++) {
  100. const { specificationname, specificationitemid, itemid, description } = data[i];
  101. if ((i + 1) % 2 == 0) {
  102. rightHtml += getSpecsItemHTML({
  103. name: specificationname, id: specificationitemid, itemid, des: description
  104. })
  105. } else {
  106. leftHtml += getSpecsItemHTML({
  107. name: specificationname, id: specificationitemid, itemid, des: description
  108. });
  109. }
  110. }
  111. $('.specContainerleft').html(leftHtml)
  112. $('.specContainerRight').html(rightHtml)
  113. }
  114. function getParentHTML(name, productid, id, isMain) {
  115. return `<div data-parentidgroup="${name?.replace(" ", '')}-parent" class="pb-2 groupingitems_search ${name?.replace(" ", '')}-parent">
  116. <h5 class="py-2 smallHeadingProductDetails">${name}</h5>
  117. <div class="d-flex gap-2 flex-lg-row flex-wrap ${id}container" data-tagid="${id}">
  118. </div>
  119. </div>`;
  120. }
  121. function onClickHandler(e) {
  122. $(e).parent().find('.borderselector').removeClass('borderselector');
  123. $(e).addClass('borderselector')
  124. }
  125. function getChildHTML(tagid, name, isTrue,parentid) {
  126. let blue = '#253746';
  127. let greenLight = '#5e7975';
  128. let brown = '#624839';
  129. let bgColor = '';
  130. if(name === 'Deep Sea Blue'){
  131. bgColor = blue;
  132. }else if(name == 'Desert Brown'){
  133. bgColor = brown;
  134. }else if(name == 'Eucalyptus Green'){
  135. bgColor = greenLight;
  136. }
  137. if(colorId == parentid){
  138. return `
  139. <div data-type="${tagid}-${name}" data-tagiditem="${tagid}" class="specsmallcard optiontaganwi ${isTrue ? 'borderselector' : ''} colorselector card text-center small-font cursor-pointer ">
  140. <span style="
  141. height: 25px;
  142. border-radius: 5px;
  143. width:25px;
  144. background: ${bgColor} !important;
  145. pointer-events:none;
  146. "></span>
  147. </div> `
  148. }
  149. return `
  150. <div data-type="${tagid}-${name}" data-tagiditem="${tagid}" class="specsmallcard optiontaganwi ${isTrue ? 'borderselector' : ''} card text-center small-font cursor-pointer p-3">
  151. ${name}
  152. </div> `
  153. }
  154. function addeventlisteners() {
  155. $('.optiontaganwi').each(function (i, el) {
  156. $(el).click(function (e) {
  157. $('#quantity').val(1);
  158. $(e.target).parent().find('.borderselector').removeClass('borderselector');
  159. $(e.target).addClass('borderselector');
  160. currentClick = e.target;
  161. ;
  162. //searchComb();
  163. // getAllCombination();
  164. getandsetCombination();
  165. })
  166. });
  167. }
  168. function getandsetCombination(){
  169. let keyOption = $(currentClick).data('tagiditem');
  170. $('.disabled-option-item').removeClass('disabled-option-item');
  171. let tagsNames = [];
  172. let currOptionAvaIds = {};
  173. $('.borderselector').each(function (i,e){
  174. let id = $(e).data('tagiditem');
  175. tagsNames.push(id);
  176. });
  177. for(let i=0;i<itemtagscombinationRes.length;i++){
  178. let tagItems = itemtagscombinationRes[i].tagids;;
  179. if(tagItems.includes(keyOption)){
  180. let splitArr = tagItems.split('|');
  181. for(let j=0;j<splitArr.length;j++){
  182. if(keyOption){
  183. currOptionAvaIds[splitArr[j]] = splitArr[j];
  184. }
  185. }
  186. }
  187. }
  188. // console.log(currOptionAvaIds);
  189. //console.log(itemtagscombinationRes);
  190. let parentsArr = [];
  191. $('.optiontaganwi').each(function (i,e){
  192. let currParent = $(e).parents('.groupingitems_search');
  193. if(currParent.find(`[data-tagiditem="${keyOption}"]`).length==0){
  194. let currId = $(e).data('tagiditem');
  195. if(!currOptionAvaIds[currId]){
  196. if($(e).hasClass('borderselector')){
  197. parentsArr.push(currParent);
  198. $(e).removeClass('borderselector');
  199. }
  200. $(e).addClass('disabled-option-item');
  201. }
  202. }
  203. });
  204. for(let i=0;i<parentsArr.length;i++){
  205. let currParent = parentsArr[i];
  206. currParent.find('.optiontaganwi').each(function (j,e){
  207. let isTrue = $(e).hasClass('disabled-option-item');
  208. if(!isTrue){
  209. $(e).addClass('borderselector');
  210. return false;
  211. }
  212. });
  213. }
  214. // $('.optiontaganwi').addClass('disabled-option-item');
  215. let parentId = $(currentClick).parents('.groupingitems_search');
  216. let parentData = $(parentId).data('parentidgroup');
  217. let parentArr = [];
  218. $('.groupingitems_search').each(function (i,e){
  219. const curParentId = $(e).data('parentidgroup');
  220. if(parentData != curParentId){
  221. let obj = {
  222. name:$(e).find('.smallHeadingProductDetails').html(),
  223. arr:[]
  224. }
  225. $(e).find('.optiontaganwi').each(function (j,evt){
  226. let id = $(evt).data('tagiditem');
  227. obj.arr.push(id);
  228. });
  229. parentArr.push(obj);
  230. }
  231. })
  232. // console.log(parentArr);
  233. let arrone = parentArr[0].arr;
  234. let arrtwo = [];
  235. if(parentArr.length>1){
  236. arrtwo = parentArr[1]?.arr;
  237. }
  238. let currId = keyOption;
  239. let ids = [];
  240. for(let i=0;i<arrone.length;i++){
  241. //let currEl = [currId,arrone[i]];
  242. let currEl = ``
  243. for(let j=0;j<arrtwo.length;j++){
  244. currEl = `${currId}|${arrone[i]}|${arrtwo[j]}`;
  245. ids.push(currEl);
  246. currEl = '';
  247. }
  248. }
  249. console.log(ids,'ids');
  250. let findObj = [];
  251. debugger
  252. for(let i=0;i<ids.length;i++){
  253. let curId = ids[i]
  254. for(let j=0;j<itemtagscombinationRes.length;j++){
  255. const currItem = itemtagscombinationRes[j].tagids.split('|');
  256. let isTrue = true;
  257. for(let k=0;k<currItem.length;k++){
  258. if(!curId.includes(currItem[k])){
  259. isTrue = false;
  260. break;
  261. }
  262. }
  263. if(isTrue){
  264. findObj.push(itemtagscombinationRes[j]);
  265. }
  266. }
  267. }
  268. //console.log(findObj);
  269. $('.optiontaganwi').addClass('disabled-option-item');
  270. debugger;
  271. for(let i=0;i<findObj.length;i++){
  272. let item = findObj[i].tagids.split('|');
  273. for(let j=0;j<item.length;j++){
  274. $(`[data-tagiditem=${item[j]}]`).removeClass('disabled-option-item');
  275. }
  276. }
  277. $(parentId).find('.optiontaganwi').each(function (i,e){
  278. $(e).removeClass('disabled-option-item')
  279. });
  280. for(let i=0;i<itemtagscombinationRes.length;i++){
  281. let currIds = itemtagscombinationRes[i].tagids;
  282. let isTrue = true;
  283. let isPro = false;
  284. for(let j=0;j<tagsNames.length;j++){
  285. if(tagsNames.join().includes('106631360000128')&&(tagsNames.join().includes('106631360000132')||tagsNames.join().includes('106631360000133'))){
  286. isPro = true;
  287. }
  288. if(!currIds.includes(tagsNames[j])){
  289. isTrue = false;
  290. }
  291. }
  292. if(isTrue){
  293. const { quantity } = itemtagscombinationRes[i];
  294. if (true) {
  295. currentComb = itemtagscombinationRes[i];
  296. updateDetailsByObj(itemtagscombinationRes[i]);
  297. if(isPro){
  298. $(`[data-tagiditem="106631360000089"]`).addClass(' disabled-option-item')
  299. $(`[data-tagiditem="106631360000088"]`).addClass(' disabled-option-item')
  300. }
  301. } else {
  302. let name = itemtagscombinationRes[i].itemname.split('-')[0];
  303. $('#addtocart').addClass('disabled');
  304. let itemsName = name;
  305. $('.borderselector').each(function (i, e) {
  306. itemsName += ` ${$(e).html().trim()}`;
  307. });
  308. updateItemId(null);
  309. let defaultImg = itemtagscombinationRes[i].itemimageurl ? imgServerNameBuild(itemtagscombinationRes[i].itemimageurl) : `./dist/assets/imgs/nophoto.png`;
  310. $('.productDetailsMain > img').attr('src', defaultImg);
  311. specification_wrap_action.remove();
  312. $('#skudetailitem').val(-1)
  313. $('.productname').html(itemsName)
  314. $('.msgErrorDetailsItem').removeClass('d-none');
  315. $('.des_productdes').html('');
  316. $('.price').html('');
  317. }
  318. initAddToCart()
  319. return;
  320. }
  321. }
  322. // return;
  323. return;
  324. let commonTags = [];
  325. // $('.optiontaganwi').addClass('disabled-option-item')
  326. for(let i=0;i<tagsNames.length;i++){
  327. let currtagName = tagsNames[i];
  328. let arr = currtagItemCom(currtagName);
  329. commonTags.push(arr);
  330. }
  331. console.log(commonTags);
  332. // for(let i=0;i<commonTags.length;i++){
  333. // let currObj = commonTags[i];
  334. // for(let item in currObj){
  335. // console.log($(`[data-tagiditem="${item}"]`));
  336. // $(`[data-tagiditem="${item}"]`).removeClass('disabled-option-item')
  337. // }
  338. // }
  339. let finalAns = {};
  340. let arra = [];
  341. for(let i=0;i<commonTags.length;i++){
  342. let currObj = commonTags[i];
  343. for(let item in currObj){
  344. let isTrue = true;
  345. for(let j=0;j<commonTags.length;j++){
  346. if(j!=i){
  347. let currComb = commonTags[j];
  348. if(!currComb[item]){
  349. isTrue = false;
  350. }
  351. }
  352. }
  353. if(isTrue){
  354. arra.push(currObj[item])
  355. finalAns[currObj[item]] = currObj[item];
  356. $(`[data-tagiditem="${item}"]`).removeClass('disabled-option-item')
  357. }
  358. }
  359. }
  360. // console.log(arra);
  361. // for(let i=0;i<itemtagscombinationRes.length;i++){
  362. // let tagItems = itemtagscombinationRes[i].tagids;;
  363. // if(tagItems.includes(keyOption)){
  364. // let splitArr = tagItems.split('|');
  365. // for(let j=0;j<splitArr.length;j++){
  366. // commonTags[splitArr[j]] = splitArr[j];
  367. // }
  368. // }
  369. // }
  370. // for(let i=0;i<currOptionAvaIds.length;i++){
  371. // let currId = currOptionAvaIds[i];
  372. // if(parentId.find(currId).length === 0){
  373. // console.log(currId);
  374. // }
  375. // }
  376. }
  377. function currtagItemCom(keyOption){
  378. debugger;
  379. let arr = [];
  380. let commonTags = {};
  381. for(let i=0;i<itemtagscombinationRes.length;i++){
  382. let tagItems = itemtagscombinationRes[i].tagids;;
  383. if(tagItems.includes(keyOption)){
  384. let splitArr = tagItems.split('|');
  385. for(let j=0;j<splitArr.length;j++){
  386. if(!commonTags[splitArr[j]]){
  387. commonTags[splitArr[j]] = {
  388. keyOption,
  389. data:itemtagscombinationRes[i]
  390. };
  391. arr.push(splitArr[j]);
  392. }
  393. }
  394. }
  395. }
  396. return commonTags;
  397. }
  398. function updateDetailsByObj(obj) {
  399. $('.productname').html(obj.itemname);
  400. $('.titleproductnav').html(obj.itemname);
  401. let [currencySymbol, amount] = getCurrencySymbol(obj?.pricelist||0);
  402. let commingSoonText = window.location.href.toLowerCase().includes('zeno')||window.location.href.toLowerCase().includes('fyro')
  403. $('.price').html(obj.pricelist ? `<span class="font-w600">${currencySymbol}${amount}</span>${commingSoonText?'<span class="mx-1 badge bg-gradient-violet text-a-color">Coming Soon</span>':''}` : 'coming soon');
  404. $('.price').attr('data-price',obj.pricelist);
  405. appendSpecs(obj.itemid)
  406. $('#skudetailitem').val(obj.sku)
  407. $('.des_productdes').html(obj.itemdescription);
  408. $('#addtocart').attr('data-qty', obj.quantity);
  409. let defaultImg = obj.itemimageurl ? imgServerNameBuild(obj.itemimageurl) : `./dist/assets/imgs/nophoto.png`;
  410. // console.log(obj.itemimageurl, 'obj.itemimageurlobj.itemimageurlobj.itemimageurl');
  411. debugger;
  412. let productId = window.location.hash.split('#')[1]?.split('=')[1];
  413. let itemId = window.location.hash.split('#')[2]?.split('=')[1];
  414. history.replaceState(undefined, undefined, `#productId=${productId}#itemid=${obj.itemid}`)
  415. $('.productDetailsMain > img').attr('src', defaultImg).attr('loading','lazy');
  416. updateItemId(obj.itemid);
  417. //console.log(obj,'objobjobj');
  418. if (!obj.pricelist || !obj.quantity) {
  419. $('.buynow').attr('disabled', true);
  420. $('#addtocart').attr('disabled', true);
  421. } else {
  422. $('.buynow').attr('disabled', false);
  423. $('#addtocart').attr('disabled', false);
  424. }
  425. }
  426. function searchComb() {
  427. let valuesSelected = [];
  428. $('.optiontaganwi').removeClass('disabled-option-item')
  429. $('#addtocart').removeClass('disabled');
  430. $('.msgErrorDetailsItem').addClass('d-none');
  431. $('.borderselector,border_selector').each(function (i, el) {
  432. // console.log($(el).html())
  433. let val = $(el).data('tagiditem');
  434. valuesSelected.push(val);
  435. });
  436. let labelRecord = {};
  437. for (let label in labels) {
  438. labelRecord[label] = false;
  439. }
  440. specification_wrap_action.add();
  441. let unFiler = null;
  442. for (let i = 0; i < itemtagscombinationRes.length; i++) {
  443. const currItem = itemtagscombinationRes[i];
  444. const { tagids } = currItem;
  445. let isTrue = true;
  446. let labelFilter = labelRecord;
  447. for (let i = 0; i < valuesSelected.length; i++) {
  448. if (!tagids.includes(valuesSelected[i])) {
  449. isTrue = false
  450. unFiler = labelFilter;
  451. break;
  452. }
  453. labelFilter[group[valuesSelected[i]]] = true;
  454. }
  455. if (isTrue) {
  456. // console.log(itemtagscombinationRes[i], 'itemtagscombinationRes[i]');
  457. const { quantity } = itemtagscombinationRes[i];
  458. if (quantity >= $('#quantity').val() && quantity >= 1) {
  459. currentComb = itemtagscombinationRes[i];
  460. // $('.productname').html(itemtagscombinationRes[i].itemname)
  461. // $('.price').html(itemtagscombinationRes[i].pricelist);
  462. // location.hash = itemtagscombinationRes[i].itemname.trim();
  463. // appendSpecs(itemtagscombinationRes[i].itemid)
  464. // history.replaceState(null, null, `#itemid=${itemtagscombinationRes[i].itemid}#${itemtagscombinationRes[i].itemname.trim()}`);
  465. // $('#skudetailitem').val(itemtagscombinationRes[i].sku)
  466. // $('.des_productdes').html(itemtagscombinationRes[i].itemdescription);
  467. updateDetailsByObj(itemtagscombinationRes[i]);
  468. } else {
  469. let name = itemtagscombinationRes[i].itemname.split('-')[0];
  470. $('#addtocart').addClass('disabled');
  471. let itemsName = name;
  472. $('.borderselector').each(function (i, e) {
  473. itemsName += ` ${$(e).html().trim()}`;
  474. });
  475. updateItemId(null);
  476. let defaultImg = itemtagscombinationRes[i].itemimageurl ? imgServerNameBuild(itemtagscombinationRes[i].itemimageurl) : `./dist/assets/imgs/nophoto.png`;
  477. // console.log(itemtagscombinationRes[i].itemimageurl, 'obj.itemimageurlobj.itemimageurlobj.itemimageurl');
  478. $('.productDetailsMain > img').attr('src', defaultImg);
  479. specification_wrap_action.remove();
  480. $('#skudetailitem').val(-1)
  481. $('.productname').html(itemsName)
  482. // history.replaceState(null, null, `#`);
  483. $('.msgErrorDetailsItem').removeClass('d-none');
  484. $('.des_productdes').html('');
  485. $('.price').html('');
  486. }
  487. initAddToCart()
  488. return;
  489. }
  490. }
  491. alert("j");
  492. let name = itemtagscombinationRes[0].itemname.split('-')[0];
  493. let itemsName = name;
  494. $('.borderselector').each(function (i, e) {
  495. itemsName += `- ${$(e).html().trim()}`;
  496. })
  497. specification_wrap_action.remove();
  498. $('.productname').html(itemsName)
  499. $('#skudetailitem').val(-1)
  500. $('.price').html('');
  501. $('#addtocart').addClass('disabled');
  502. $('.msgErrorDetailsItem').removeClass('d-none');
  503. initAddToCart()
  504. }
  505. function getAllCombination() {
  506. debugger;
  507. const currClickAttr = $(currentClick).html().trim();
  508. const optionId = $(currentClick).data('tagiditem');
  509. let curr = $(currentClick).parents('.groupingitems_search').data('parentidgroup');
  510. $('.groupingitems_search').each(function (i, e) {
  511. const id = $(e).data('parentidgroup');
  512. if (id != curr) {
  513. $(e).find('.optiontaganwi').addClass('disabled-option-item');
  514. $(e).find('.borderselector').removeClass('borderselector');
  515. }
  516. });
  517. let ansArr = [];
  518. let index = 0;
  519. let comb = null;
  520. for(let i=0;i<itemtagscombinationRes.length;i++){
  521. let currIds = itemtagscombinationRes[i].tagids;
  522. if(currIds.includes(optionId)){
  523. currIds = currIds.split('|');
  524. for(let j=0;j<currIds.length;j++){
  525. debugger;
  526. if(index==0 &&optionId != currIds[j] ) {
  527. $(`[data-tagiditem="${currIds[j]}"]`).addClass('borderselector')
  528. comb = itemtagscombinationRes[i];
  529. index++;
  530. }
  531. $(`[data-tagiditem="${currIds[j]}"]`).removeClass('disabled-option-item');
  532. // $().parents('[data-tagid]').find()
  533. }
  534. }
  535. }
  536. // console.log(comb,'comb tag');
  537. updateDetailsByObj(comb);
  538. let currentItem = comb.tagids.split('|');
  539. for(let i=0;i<currentItem.length;i++){
  540. $(`[data-tagiditem="${currentItem[i]}"]`).removeClass('disabled-option-item').addClass('borderselector');
  541. }
  542. // history.replaceState(null, null, `#${comb.itemname}`);
  543. // window.location.href = `#${comb.itemname}`
  544. console.log(itemtagscombinationRes,'gobal');
  545. return;
  546. };
  547. async function getProductDetails(id) {
  548. debugger;
  549. let resData = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/productattributelist/productid/${id}`, true);
  550. if (resData.isError) {
  551. loadingActions.removeLoader();
  552. alert(resData.errorMsg.message);
  553. return;
  554. }
  555. if(resData.response.result == '[]' || !resData.response.result){
  556. $('.barbgnav').removeClass('d-none')
  557. loadingActions.removeLoader();
  558. toasterHelper("Something Went Wrong")
  559. return;
  560. }
  561. let res = resData.response;
  562. res = JSON.parse(res.result);
  563. // console.log(res,'resDataresDataresDataresDataresData');
  564. // console.log(res, 'productattributelist');
  565. if (!res) {
  566. loadingActions.removeLoader();
  567. return;
  568. };
  569. let html = '';
  570. for (let i = 0; i < res.length; i++) {
  571. const currItem = res[i];
  572. // parenttagid means under what label
  573. // tag id means it know unquie id
  574. const { parentattribute, parenttagid, tagid, attribute, productid } = currItem;
  575. if (labels[parentattribute]) {
  576. labels[parentattribute].items.push({
  577. attribute,
  578. tagid: tagid
  579. });
  580. } else {
  581. labels[parentattribute] = {
  582. id: parenttagid,
  583. items: [{
  584. attribute,
  585. tagid: tagid
  586. }]
  587. };
  588. if(parentattribute.toLowerCase() === 'colour'){
  589. colorId = parenttagid;
  590. }
  591. html += getParentHTML(parentattribute, productid, parenttagid, i == 0);
  592. }
  593. }
  594. $('#spec-container-details').html(html);
  595. console.log(labels,'labels');
  596. let childIds = [];
  597. for (let item in labels) {
  598. let { id, items } = labels[item];
  599. // $(`[data-tagid=${id}]`)
  600. let html = '';
  601. for (let i = 0; i < items.length; i++) {
  602. const { attribute, tagid } = items[i]
  603. childIds.push(tagid);
  604. group[attribute] = item;
  605. // console.log(attribute,colorId,"s");
  606. html += getChildHTML(tagid, attribute, i == 0,id);
  607. // console.log(attribute,"attributeattributeattributeattribute");
  608. }
  609. debugger;
  610. $(`[data-tagid="${id}"]`).html(html);
  611. }
  612. itemtagscombinationRes = await API_SERVICES_ACTIONS.getAPIService(`apis/v4/bizgaze/integrations/products/getitemwithoutbranch/productid/${id}`, true);
  613. itemtagscombinationRes = JSON.parse(itemtagscombinationRes.response.result);
  614. console.log(itemtagscombinationRes, "conductt");
  615. let itemidSearch = window.location.hash.split('#')[2]?.split('=')[1];
  616. if(!itemidSearch){
  617. itemidSearch = itemtagscombinationRes[0].itemid
  618. }
  619. let valuesSelected = [];
  620. $('.borderselector').each(function (i, el) {
  621. let val = $(el).html();
  622. valuesSelected.push(val.trim());
  623. });
  624. debugger;
  625. // let searchParams = window.location.search.split("&");
  626. // let skuId = window.location.hash.split('#')[2].split('=')[1];
  627. // skuId = skuId.split('=')[1]
  628. let isGo = true;
  629. for (let i = 0; i < itemtagscombinationRes.length; i++) {
  630. const currItem = itemtagscombinationRes[i];
  631. const { tagnames, sku, itemid } = currItem;
  632. isThereInLabel[tagnames] = itemtagscombinationRes[i];
  633. let isTrue = true;
  634. if (isGo) {
  635. // for(let i=0;i<valuesSelected.length;i++){
  636. // if(!tagnames.includes(valuesSelected[i])){
  637. // isTrue = false
  638. // }
  639. // }
  640. if (itemidSearch != itemid) {
  641. isTrue = false
  642. }
  643. // if (i != 0) {
  644. // isTrue = false
  645. // }
  646. if (isTrue) {
  647. // console.log(itemtagscombinationRes[i], 'itemtagscombinationRes[i]');
  648. currentComb = itemtagscombinationRes[i];
  649. updateDetailsByObj(itemtagscombinationRes[i]);
  650. isGo = false;
  651. let { tagnames, tagids, pricelist } = itemtagscombinationRes[i];
  652. tagids = tagids.split('|');
  653. tagnames = tagnames.split('|');
  654. $('.optiontaganwi').removeClass('borderselector');
  655. for (let i = 0; i < tagids.length; i++) {
  656. $(`[data-tagiditem="${tagids[i]}"]`).addClass('borderselector');
  657. }
  658. break;
  659. // tagiditem
  660. }
  661. }
  662. }
  663. if (isGo && itemtagscombinationRes.length != 0) {
  664. // console.log(itemtagscombinationRes[0]);
  665. let { tagnames, tagids, pricelist } = itemtagscombinationRes[0];
  666. tagids = tagids.split('|');
  667. tagnames = tagnames.split('|');
  668. $('.optiontaganwi').removeClass('borderselector');
  669. currentComb = itemtagscombinationRes[0];
  670. // updateItemId(itemtagscombinationRes[0].itemid);
  671. for (let i = 0; i < tagids.length; i++) {
  672. $(`[data-type="${tagids[i]}-${tagnames[i]}"]`).addClass('borderselector');
  673. // $(`[data-type="${tagids[i]}-Eucalyptus Green"]`).removeClass('borderselector');
  674. // $(`[data-type="${tagids[i]}-Desert Brown"]`).removeClass('borderselector');
  675. // $(`[data-type="${tagids[i]}-Deep Sea Blue"]`).removeClass('borderselector');
  676. }
  677. // $('.price').html(pricelist);
  678. // $('.des_productdes').html(itemtagscombinationRes[0].itemdescription);
  679. // appendSpecs(itemtagscombinationRes[0].itemid);
  680. updateDetailsByObj(itemtagscombinationRes[0]);
  681. //console.log(childIds);
  682. //
  683. }
  684. //getAllCombination()
  685. // for(let i=0;i<itemtagscombinationRes.length;i++){
  686. // const {tagnames} = itemtagscombinationRes[i];
  687. // }
  688. $('#spec-container-details').children().find('.specsmallcard').removeClass('specsmallcard');
  689. //getting the first borderselector in first $('.groupingitems_search')[0]
  690. let firstParentGroup = $('.groupingitems_search')[0];
  691. debugger;
  692. let optionId = $(firstParentGroup).find('.borderselector').data('tagiditem');
  693. currentClick = $(firstParentGroup).find('.borderselector')
  694. getandsetCombination();
  695. addeventlisteners();
  696. loadingActions.removeLoader();
  697. return;
  698. }
  699. }
  700. startDetails();