|
|
@@ -62,26 +62,7 @@
|
|
|
let categoryData = null
|
|
|
let categoryGoodsData = null
|
|
|
let nowGoodsId = null
|
|
|
- for (let i = 0; i < categoryMenuItems.length; i++) {
|
|
|
- let item = categoryMenuItems[i]
|
|
|
-
|
|
|
- item.addEventListener("click", function () {
|
|
|
- for (let j = 0; j < categoryMenuItems.length; j++) {
|
|
|
- let cmi = categoryMenuItems[j]
|
|
|
- if (cmi !== item && cmi.classList.contains("category-menu-item-select")) {
|
|
|
- cmi.className = "category-menu-item"
|
|
|
- }
|
|
|
- }
|
|
|
- this.className = "category-menu-item category-menu-item-select"
|
|
|
- var newUrl = window.location.origin + '/category/';
|
|
|
- history.pushState(null, null, newUrl + item.dataset.value);
|
|
|
- postCategoryData(item.dataset.value, 1, 30)
|
|
|
-
|
|
|
- })
|
|
|
- if (i === 0) {
|
|
|
- item.click()
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
function showOrNoneCPGD() {
|
|
|
if (cpgd.style.display) {
|
|
|
@@ -91,7 +72,8 @@
|
|
|
} else {
|
|
|
cpgd.style.display = "none"
|
|
|
cpd.style.display = ""
|
|
|
- var newUrl = window.location + '/' + nowGoodsId;
|
|
|
+ console.log(666)
|
|
|
+ let newUrl = window.location.href;
|
|
|
let number = newUrl.lastIndexOf('/');
|
|
|
newUrl = newUrl.substring(0, number)
|
|
|
history.pushState(null, null, newUrl);
|
|
|
@@ -99,8 +81,10 @@
|
|
|
}
|
|
|
|
|
|
function getSkuList() {
|
|
|
- var newUrl = window.location + '/' + nowGoodsId;
|
|
|
- history.pushState(null, null, newUrl);
|
|
|
+ if (nowGoodsId) {
|
|
|
+ var newUrl = window.location + '/' + nowGoodsId;
|
|
|
+ history.pushState(null, null, newUrl);
|
|
|
+ }
|
|
|
postCategoryGoodsData(nowGoodsId)
|
|
|
}
|
|
|
|
|
|
@@ -144,6 +128,7 @@
|
|
|
xhr.send(JSON.stringify(data));
|
|
|
}
|
|
|
|
|
|
+ //获取商品列表
|
|
|
function postCategoryGoodsData(goodsId) {
|
|
|
// 创建 XMLHttpRequest 对象
|
|
|
var xhr = new XMLHttpRequest();
|
|
|
@@ -161,7 +146,6 @@
|
|
|
// 解析服务器返回的 JSON 数据
|
|
|
var response = JSON.parse(xhr.responseText);
|
|
|
categoryGoodsData = response.data
|
|
|
- console.log(categoryGoodsData)
|
|
|
generateGoodsStructure(categoryGoodsData)
|
|
|
// 在此处理返回的数据对象
|
|
|
} catch (e) {
|
|
|
@@ -174,7 +158,6 @@
|
|
|
var data = {
|
|
|
goodsId: goodsId,
|
|
|
};
|
|
|
-
|
|
|
// 将数据对象转换为 JSON 字符串并发送
|
|
|
xhr.send(JSON.stringify(data));
|
|
|
}
|
|
|
@@ -188,7 +171,6 @@
|
|
|
console.error("未找到 .first 容器");
|
|
|
return;
|
|
|
}
|
|
|
- console.log(categoryData)
|
|
|
for (let i = 0; i < categoryData.list.length; i++) {
|
|
|
let item = categoryData.list[i]
|
|
|
// 创建外层 div
|
|
|
@@ -231,67 +213,127 @@
|
|
|
|
|
|
// 清空容器,确保不会重复添加
|
|
|
container.innerHTML = '';
|
|
|
-
|
|
|
- // 遍历返回的商品列表
|
|
|
- data.list.forEach(function (item) {
|
|
|
- // 创建外层 div
|
|
|
- const skuDiv = document.createElement('div');
|
|
|
- skuDiv.classList.add('category-goods-detail-sku');
|
|
|
-
|
|
|
- // 左侧图片 div
|
|
|
- const leftImgDiv = document.createElement('div');
|
|
|
- leftImgDiv.classList.add('cgds-left-img');
|
|
|
- const imgElement = document.createElement('img');
|
|
|
- imgElement.src = item.skuImage; // 设置图片地址
|
|
|
- leftImgDiv.appendChild(imgElement);
|
|
|
-
|
|
|
- // 右侧详细信息 div
|
|
|
- const rightDetailDiv = document.createElement('div');
|
|
|
- rightDetailDiv.classList.add('cgds-right-detail');
|
|
|
-
|
|
|
- // 名称 div
|
|
|
- const nameDiv = document.createElement('div');
|
|
|
- nameDiv.classList.add('cgds-right-detail-name');
|
|
|
- nameDiv.textContent = item.skuName; // 设置商品名称
|
|
|
-
|
|
|
- // 销量 div
|
|
|
- const salesNumDiv = document.createElement('div');
|
|
|
- salesNumDiv.classList.add('cgds-right-detail-salesnum');
|
|
|
- salesNumDiv.textContent = `销量:${item.inventoryNumber}`; // 设置库存信息
|
|
|
-
|
|
|
- // 价格 div
|
|
|
- const priceDiv = document.createElement('div');
|
|
|
- priceDiv.classList.add('cgds-right-detail-price');
|
|
|
-
|
|
|
- const priceNowDiv = document.createElement('div');
|
|
|
- priceNowDiv.classList.add('cgds-right-detail-price-now');
|
|
|
- priceNowDiv.textContent = item.price; // 当前价格
|
|
|
-
|
|
|
- const priceHistoryDiv = document.createElement('div');
|
|
|
- priceHistoryDiv.classList.add('cgds-right-detail-price-history');
|
|
|
- priceHistoryDiv.textContent = item.historicalPrices; // 历史价格
|
|
|
-
|
|
|
- // 将价格 divs 添加到价格容器
|
|
|
- priceDiv.appendChild(priceNowDiv);
|
|
|
- priceDiv.appendChild(priceHistoryDiv);
|
|
|
-
|
|
|
- // 将名称、销量、价格 div 添加到右侧详细信息 div
|
|
|
- rightDetailDiv.appendChild(nameDiv);
|
|
|
- rightDetailDiv.appendChild(salesNumDiv);
|
|
|
- rightDetailDiv.appendChild(priceDiv);
|
|
|
-
|
|
|
- // 将左侧图片和右侧详细信息 div 添加到外层 sku div
|
|
|
- skuDiv.appendChild(leftImgDiv);
|
|
|
- skuDiv.appendChild(rightDetailDiv);
|
|
|
-
|
|
|
- // 将生成的 sku div 添加到页面容器中
|
|
|
- container.appendChild(skuDiv);
|
|
|
- });
|
|
|
+ if (data.list)
|
|
|
+ // 遍历返回的商品列表
|
|
|
+ data.list.forEach(function (item) {
|
|
|
+ // 创建外层 div
|
|
|
+ const skuDiv = document.createElement('div');
|
|
|
+ skuDiv.classList.add('category-goods-detail-sku');
|
|
|
+
|
|
|
+ // 左侧图片 div
|
|
|
+ const leftImgDiv = document.createElement('div');
|
|
|
+ leftImgDiv.classList.add('cgds-left-img');
|
|
|
+ const imgElement = document.createElement('img');
|
|
|
+ imgElement.src = item.skuImage; // 设置图片地址
|
|
|
+ leftImgDiv.appendChild(imgElement);
|
|
|
+
|
|
|
+ // 右侧详细信息 div
|
|
|
+ const rightDetailDiv = document.createElement('div');
|
|
|
+ rightDetailDiv.classList.add('cgds-right-detail');
|
|
|
+
|
|
|
+ // 名称 div
|
|
|
+ const nameDiv = document.createElement('div');
|
|
|
+ nameDiv.classList.add('cgds-right-detail-name');
|
|
|
+ nameDiv.textContent = item.skuName; // 设置商品名称
|
|
|
+
|
|
|
+ // 销量 div
|
|
|
+ const salesNumDiv = document.createElement('div');
|
|
|
+ salesNumDiv.classList.add('cgds-right-detail-salesnum');
|
|
|
+ salesNumDiv.textContent = `销量:${item.inventoryNumber}`; // 设置库存信息
|
|
|
+
|
|
|
+ // 价格 div
|
|
|
+ const priceDiv = document.createElement('div');
|
|
|
+ priceDiv.classList.add('cgds-right-detail-price');
|
|
|
+
|
|
|
+ const priceNowDiv = document.createElement('div');
|
|
|
+ priceNowDiv.classList.add('cgds-right-detail-price-now');
|
|
|
+ priceNowDiv.textContent = item.price; // 当前价格
|
|
|
+
|
|
|
+ const priceHistoryDiv = document.createElement('div');
|
|
|
+ priceHistoryDiv.classList.add('cgds-right-detail-price-history');
|
|
|
+ priceHistoryDiv.textContent = item.historicalPrices; // 历史价格
|
|
|
+
|
|
|
+ // 将价格 divs 添加到价格容器
|
|
|
+ priceDiv.appendChild(priceNowDiv);
|
|
|
+ priceDiv.appendChild(priceHistoryDiv);
|
|
|
+
|
|
|
+ // 将名称、销量、价格 div 添加到右侧详细信息 div
|
|
|
+ rightDetailDiv.appendChild(nameDiv);
|
|
|
+ rightDetailDiv.appendChild(salesNumDiv);
|
|
|
+ rightDetailDiv.appendChild(priceDiv);
|
|
|
+
|
|
|
+ // 将左侧图片和右侧详细信息 div 添加到外层 sku div
|
|
|
+ skuDiv.appendChild(leftImgDiv);
|
|
|
+ skuDiv.appendChild(rightDetailDiv);
|
|
|
+
|
|
|
+ // 将生成的 sku div 添加到页面容器中
|
|
|
+ container.appendChild(skuDiv);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
// 调用函数,传入实际数据
|
|
|
- postCategoryData(1, 1, 10);
|
|
|
+ // postCategoryData(1, 1, 10);
|
|
|
+ function init() {
|
|
|
+ let ele = null
|
|
|
+ for (let i = 0; i < categoryMenuItems.length; i++) {
|
|
|
+ let item = categoryMenuItems[i]
|
|
|
+
|
|
|
+ item.addEventListener("click", function () {
|
|
|
+ for (let j = 0; j < categoryMenuItems.length; j++) {
|
|
|
+ let cmi = categoryMenuItems[j]
|
|
|
+ if (cmi !== item && cmi.classList.contains("category-menu-item-select")) {
|
|
|
+ cmi.className = "category-menu-item"
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.className = "category-menu-item category-menu-item-select"
|
|
|
+ var newUrl = window.location.host + '/category/';
|
|
|
+ history.pushState(null, null, newUrl + item.dataset.value);
|
|
|
+ postCategoryData(item.dataset.value, 1, 30)
|
|
|
|
|
|
+ })
|
|
|
+ if (i === 0) {
|
|
|
+ ele = item
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取路由
|
|
|
+ let path = ""
|
|
|
+ let host = window.location.host
|
|
|
+ let href = window.location.href
|
|
|
+ let number = href.indexOf(host)
|
|
|
+ if (number === -1) {
|
|
|
+ ele.click()
|
|
|
+ } else {
|
|
|
+ path = href.substring(number + host.length)
|
|
|
+ }
|
|
|
+ let strings = path.split("/");
|
|
|
+ let sign = 0
|
|
|
+ let reg = /^[0-9]*$/
|
|
|
+ for (let i = 0; i < strings.length; i++) {
|
|
|
+ if (strings[i] === "category") {
|
|
|
+ sign = 1
|
|
|
+ if (i === strings.length - 1) {
|
|
|
+ let d = ele.getAttribute("data-value");
|
|
|
+ postCategoryData(d, 1, 30)
|
|
|
+ var newUrl = window.location.href + '/' + d;
|
|
|
+ history.pushState(null, null, newUrl);
|
|
|
+ console.log("base")
|
|
|
+ }
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if (sign === 1 && reg.test(strings[i])) {
|
|
|
+ sign++
|
|
|
+ postCategoryData(strings[i], 1, 30)
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ if (sign === 2 && reg.test(strings[i])) {
|
|
|
+ sign++
|
|
|
+ postCategoryGoodsData(strings[i])
|
|
|
+ showOrNoneCPGD()
|
|
|
+ break
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
+ init()
|
|
|
</script>
|
|
|
</html>
|