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.
 
 

70 lines
2.3 KiB

Page({
data: {
productNames: [],
loading: false,
error: ''
},
onLoad(options) {
this.loadProductNames();
},
loadProductNames() {
this.setData({ loading: true, error: '' });
const api = require('../../utils/api');
// 使用较大的pageSize来获取更多商品数据
api.getProducts(1, 1000).then(result => {
console.log('API返回结果:', result);
// 从返回对象中提取products数组,如果不存在则使用空数组
const products = result.products || [];
console.log('提取的products数组:', products);
console.log('products数组长度:', products.length);
// 过滤出price不为空的商品
const productsWithPrice = products.filter(product => product.price);
console.log('price不为空的商品:', productsWithPrice);
console.log('price不为空的商品数量:', productsWithPrice.length);
// 提取这些商品的productName
const productNames = productsWithPrice.map(product => product.productName);
console.log('提取的productName数组:', productNames);
// 过滤掉空的productName
const nonEmptyProductNames = productNames.filter(Boolean);
console.log('非空的productName数组:', nonEmptyProductNames);
// 去重
const uniqueProductNames = [...new Set(nonEmptyProductNames)];
console.log('去重后的productName数组:', uniqueProductNames);
console.log('去重后的productName数量:', uniqueProductNames.length);
this.setData({
productNames: uniqueProductNames,
loading: false
});
}).catch(err => {
console.error('获取商品列表失败:', err);
this.setData({
error: '获取商品列表失败,请稍后重试',
loading: false
});
});
},
selectProduct(e) {
const productName = e.currentTarget.dataset.product;
console.log('选择商品:', productName);
// 将商品名称存储到本地存储,因为wx.switchTab不支持URL参数
wx.setStorageSync('selectedProductName', productName);
// 使用wx.switchTab导航到tabBar页面
wx.switchTab({
url: '/pages/evaluate1/index',
success: function(res) {
console.log('跳转成功:', res);
},
fail: function(err) {
console.error('跳转失败:', err);
}
});
}
});