// pages/evaluate/index.js //估价暂未开放 Page({ data: { evaluateStep: 1, fromPreviousStep: false, // 用于标记是否从下一步返回 evaluateData: { region: '', type: '', brand: '', model: '', freshness: '', size: '', packaging: '', spec: '' }, // 客户地区列表 regions: ['北京', '上海', '广州', '深圳', '杭州', '成都', '武汉', '西安', '南京', '重庆'], evaluateResult: { finalPrice: '0', totalPrice: '0' }, // 鸡蛋类型数据(包含成交单量) eggTypes: [ { name: '土鸡蛋', dailyOrders: 1258, desc: '散养鸡产出的优质鸡蛋' }, { name: '洋鸡蛋', dailyOrders: 3421, desc: '规模化养殖的普通鸡蛋' }, { name: '乌鸡蛋', dailyOrders: 892, desc: '乌鸡产出的特色鸡蛋' }, { name: '有机鸡蛋', dailyOrders: 675, desc: '有机认证的高品质鸡蛋' }, { name: '初生蛋', dailyOrders: 965, desc: '母鸡产的第一窝鸡蛋' } ], // 鸡蛋品牌和型号数据(包含成交单量) eggData: { '土鸡蛋': { brands: [ { name: '农家乐', dailyOrders: 456 }, { name: '山野', dailyOrders: 389 }, { name: '生态园', dailyOrders: 243 }, { name: '田园', dailyOrders: 170 } ], models: { '农家乐': [ { name: '散养土鸡蛋', dailyOrders: 213 }, { name: '林下土鸡蛋', dailyOrders: 132 }, { name: '谷物喂养土鸡蛋', dailyOrders: 78 }, { name: '农家土鸡蛋', dailyOrders: 33 } ], '山野': [ { name: '高山散养土鸡蛋', dailyOrders: 189 }, { name: '林间土鸡蛋', dailyOrders: 124 }, { name: '野生土鸡蛋', dailyOrders: 76 } ], '生态园': [ { name: '有机土鸡蛋', dailyOrders: 112 }, { name: '无抗土鸡蛋', dailyOrders: 89 }, { name: '生态土鸡蛋', dailyOrders: 42 } ], '田园': [ { name: '农家土鸡蛋', dailyOrders: 87 }, { name: '走地鸡蛋', dailyOrders: 54 }, { name: '自然放养土鸡蛋', dailyOrders: 29 } ] } }, '洋鸡蛋': { brands: [ { name: '德青源', dailyOrders: 1234 }, { name: '圣迪乐村', dailyOrders: 987 }, { name: '正大', dailyOrders: 765 }, { name: '咯咯哒', dailyOrders: 435 } ], models: { '德青源': [ { name: '安心鲜鸡蛋', dailyOrders: 543 }, { name: '谷物鸡蛋', dailyOrders: 456 }, { name: '营养鸡蛋', dailyOrders: 235 } ], '圣迪乐村': [ { name: '高品质鲜鸡蛋', dailyOrders: 432 }, { name: '谷物鸡蛋', dailyOrders: 321 }, { name: '生态鸡蛋', dailyOrders: 234 } ], '正大': [ { name: '鲜鸡蛋', dailyOrders: 345 }, { name: '营养鸡蛋', dailyOrders: 243 }, { name: '优选鸡蛋', dailyOrders: 177 } ], '咯咯哒': [ { name: '鲜鸡蛋', dailyOrders: 213 }, { name: '谷物鸡蛋', dailyOrders: 145 }, { name: '农家鸡蛋', dailyOrders: 77 } ] } }, '乌鸡蛋': { brands: [ { name: '山野', dailyOrders: 345 }, { name: '生态园', dailyOrders: 289 }, { name: '农家乐', dailyOrders: 258 } ], models: { '山野': [ { name: '散养乌鸡蛋', dailyOrders: 156 }, { name: '林下乌鸡蛋', dailyOrders: 102 }, { name: '野生乌鸡蛋', dailyOrders: 87 } ], '生态园': [ { name: '有机乌鸡蛋', dailyOrders: 123 }, { name: '无抗乌鸡蛋', dailyOrders: 98 }, { name: '生态乌鸡蛋', dailyOrders: 68 } ], '农家乐': [ { name: '农家乌鸡蛋', dailyOrders: 112 }, { name: '谷物乌鸡蛋', dailyOrders: 93 }, { name: '散养乌鸡蛋', dailyOrders: 53 } ] } }, '有机鸡蛋': { brands: [ { name: '生态园', dailyOrders: 289 }, { name: '山野', dailyOrders: 213 }, { name: '田园', dailyOrders: 173 } ], models: { '生态园': [ { name: '有机认证鸡蛋', dailyOrders: 132 }, { name: '无抗有机鸡蛋', dailyOrders: 98 }, { name: '生态有机鸡蛋', dailyOrders: 59 } ], '山野': [ { name: '有机散养鸡蛋', dailyOrders: 98 }, { name: '有机谷物鸡蛋', dailyOrders: 76 }, { name: '野生有机鸡蛋', dailyOrders: 39 } ], '田园': [ { name: '有机农家鸡蛋', dailyOrders: 89 }, { name: '有机初生蛋', dailyOrders: 54 }, { name: '自然有机鸡蛋', dailyOrders: 30 } ] } }, '初生蛋': { brands: [ { name: '农家乐', dailyOrders: 342 }, { name: '山野', dailyOrders: 312 }, { name: '生态园', dailyOrders: 311 } ], models: { '农家乐': [ { name: '土鸡初生蛋', dailyOrders: 156 }, { name: '散养初生蛋', dailyOrders: 112 }, { name: '农家初生蛋', dailyOrders: 74 } ], '山野': [ { name: '高山初生蛋', dailyOrders: 145 }, { name: '林下初生蛋', dailyOrders: 98 }, { name: '野生初生蛋', dailyOrders: 69 } ], '生态园': [ { name: '有机初生蛋', dailyOrders: 134 }, { name: '无抗初生蛋', dailyOrders: 102 }, { name: '生态初生蛋', dailyOrders: 75 } ] } } }, eggBrands: [], eggModels: [] }, onLoad() { console.log('估价页面初始化') // 页面加载时,对鸡蛋类型按成交单量降序排序并添加排名 const sortedTypes = [...this.data.eggTypes].sort((a, b) => b.dailyOrders - a.dailyOrders); // 添加排名属性 const typesWithRank = sortedTypes.map((type, index) => ({ ...type, rank: index + 1 })); this.setData({ eggTypes: typesWithRank, fromPreviousStep: false // 初始化标志 }); }, // 选择客户地区 selectRegion(e) { const region = e.currentTarget.dataset.region; this.setData({ 'evaluateData.region': region }); // 只有当当前步骤是1且已经从下一步返回时,才自动进入下一步 if (this.data.evaluateStep === 1 && !this.data.fromPreviousStep) { this.setData({ evaluateStep: 2 }); } // 重置标志 this.setData({ fromPreviousStep: false }); }, // 选择鸡蛋类型 selectEggType(e) { const type = e.currentTarget.dataset.type; // 获取该类型下的品牌,并按成交单量降序排序 const brands = [...this.data.eggData[type].brands].sort((a, b) => b.dailyOrders - a.dailyOrders); // 添加排名属性 const brandsWithRank = brands.map((brand, index) => ({ ...brand, rank: index + 1 })); this.setData({ 'evaluateData.type': type, eggBrands: brandsWithRank, // 清除之前选择的品牌和型号 'evaluateData.brand': '', 'evaluateData.model': '', eggModels: [] }); // 只有当当前步骤是2且已经从下一步返回时,才自动进入下一步 if (this.data.evaluateStep === 2 && !this.data.fromPreviousStep) { this.setData({ evaluateStep: 3 }); } // 重置标志 this.setData({ fromPreviousStep: false }); }, // 选择鸡蛋品牌 selectEggBrand(e) { const brand = e.currentTarget.dataset.brand; const type = this.data.evaluateData.type; // 获取该品牌下的型号,并按成交单量降序排序 const models = [...this.data.eggData[type].models[brand]].sort((a, b) => b.dailyOrders - a.dailyOrders); // 添加排名属性 const modelsWithRank = models.map((model, index) => ({ ...model, rank: index + 1 })); this.setData({ 'evaluateData.brand': brand, eggModels: modelsWithRank, // 清除之前选择的型号 'evaluateData.model': '' }); // 只有当当前步骤是3且已经从下一步返回时,才自动进入下一步 if (this.data.evaluateStep === 3 && !this.data.fromPreviousStep) { this.setData({ evaluateStep: 4 }); } // 重置标志 this.setData({ fromPreviousStep: false }); }, // 选择鸡蛋型号 selectEggModel(e) { const model = e.currentTarget.dataset.model; this.setData({ 'evaluateData.model': model }); // 只有当当前步骤是4且已经从下一步返回时,才自动进入下一步 if (this.data.evaluateStep === 4 && !this.data.fromPreviousStep) { this.setData({ evaluateStep: 5 }); } // 重置标志 this.setData({ fromPreviousStep: false }); }, // 格式化订单数量显示 formatOrderCount(count) { if (count >= 10000) { return (count / 10000).toFixed(1) + '万'; } else if (count >= 1000) { return (count / 1000).toFixed(1) + 'k'; } return count.toString(); }, // 选择条件 selectCondition(e) { const { type, value } = e.currentTarget.dataset; this.setData({ [`evaluateData.${type}`]: value }); // 只有当当前步骤不是从返回过来的,才自动进入下一步 if (!this.data.fromPreviousStep) { // 根据当前步骤自动进入下一步 const currentStep = this.data.evaluateStep; if (currentStep === 5) { this.setData({ evaluateStep: 6 }); } else if (currentStep === 6) { this.setData({ evaluateStep: 7 }); } else if (currentStep === 7) { this.setData({ evaluateStep: 8 }); } } // 重置标志 this.setData({ fromPreviousStep: false }); }, // 选择规格 selectSpec(e) { const spec = e.currentTarget.dataset.spec; this.setData({ 'evaluateData.spec': spec }); }, // 获取报价 getQuote() { if (this.data.evaluateData.spec) { this.calculatePrice(); } else { wx.showToast({ title: '请选择规格', icon: 'none', duration: 2000 }); } }, // 上一步 prevStep() { if (this.data.evaluateStep > 1) { this.setData({ evaluateStep: this.data.evaluateStep - 1, fromPreviousStep: true // 标记是从下一步返回的 }); } else { // 如果在第一步,返回上一页 wx.navigateBack(); } }, // 计算价格 calculatePrice() { const { region, type, brand, model, freshness, size, packaging, spec } = this.data.evaluateData; // 校验必填参数 if (!region || !type || !brand || !model || !freshness || !size || !packaging || !spec) { wx.showToast({ title: '请完成所有选项', icon: 'none', duration: 2000 }); return; } // 显示加载中 wx.showLoading({ title: '计算中...', mask: true }); // 模拟计算延迟 setTimeout(() => { // 基础价格表(元/斤) const basePrices = { '土鸡蛋': 25, '洋鸡蛋': 15, '乌鸡蛋': 35, '有机鸡蛋': 40, '初生蛋': 45 }; // 品牌溢价系数 const brandMultipliers = { '农家乐': 1.0, '山野': 1.1, '生态园': 1.2, '田园': 1.0, '德青源': 1.1, '圣迪乐村': 1.15, '正大': 1.05, '咯咯哒': 1.0 }; // 型号溢价系数 const modelMultipliers = { // 土鸡蛋型号系数 '散养土鸡蛋': 1.1, '林下土鸡蛋': 1.15, '谷物喂养土鸡蛋': 1.2, '农家土鸡蛋': 1.0, '高山散养土鸡蛋': 1.25, '林间土鸡蛋': 1.1, '野生土鸡蛋': 1.3, '有机土鸡蛋': 1.3, '无抗土鸡蛋': 1.25, '生态土鸡蛋': 1.2, '走地鸡蛋': 1.1, '自然放养土鸡蛋': 1.12, // 洋鸡蛋型号系数 '安心鲜鸡蛋': 1.0, '谷物鸡蛋': 1.1, '营养鸡蛋': 1.05, '高品质鲜鸡蛋': 1.15, '生态鸡蛋': 1.2, '鲜鸡蛋': 1.0, '优选鸡蛋': 1.1, '农家鸡蛋': 1.05, // 乌鸡蛋型号系数 '散养乌鸡蛋': 1.1, '林下乌鸡蛋': 1.15, '野生乌鸡蛋': 1.3, '有机乌鸡蛋': 1.3, '无抗乌鸡蛋': 1.25, '生态乌鸡蛋': 1.2, '农家乌鸡蛋': 1.0, '谷物乌鸡蛋': 1.1, // 有机鸡蛋型号系数 '有机认证鸡蛋': 1.3, '无抗有机鸡蛋': 1.35, '生态有机鸡蛋': 1.32, '有机散养鸡蛋': 1.25, '有机谷物鸡蛋': 1.2, '野生有机鸡蛋': 1.4, '有机农家鸡蛋': 1.1, '有机初生蛋': 1.4, '自然有机鸡蛋': 1.2, // 初生蛋型号系数 '土鸡初生蛋': 1.2, '散养初生蛋': 1.25, '农家初生蛋': 1.15, '高山初生蛋': 1.3, '林下初生蛋': 1.25, '野生初生蛋': 1.45, '有机初生蛋': 1.4, '无抗初生蛋': 1.35, '生态初生蛋': 1.3 }; // 状况调整系数 const freshnessCoefficient = { '非常新鲜': 1.0, '较新鲜': 0.85, '一般': 0.7, '不新鲜': 0.4 }; const sizeCoefficient = { '特大': 1.3, '大': 1.1, '中': 1.0, '小': 0.8 }; const packagingCoefficient = { '原装完整': 1.0, '部分包装': 0.9, '散装': 0.8 }; // 计算单价(元/斤) let unitPrice = basePrices[type] || 20; const brandMultiplier = brandMultipliers[brand] || 1.0; const modelMultiplier = modelMultipliers[model] || 1.0; unitPrice = unitPrice * brandMultiplier * modelMultiplier; unitPrice *= freshnessCoefficient[freshness]; unitPrice *= sizeCoefficient[size]; unitPrice *= packagingCoefficient[packaging]; // 确保价格合理 unitPrice = Math.max(unitPrice, 1); // 计算总价(假设每个鸡蛋约0.05斤) const eggsPerKilogram = 20; // 约20个鸡蛋/斤 const specCount = parseInt(spec) || 0; const totalWeight = specCount / eggsPerKilogram; const totalPrice = unitPrice * totalWeight; // 更新结果 this.setData({ evaluateResult: { finalPrice: unitPrice.toFixed(1), totalPrice: totalPrice.toFixed(1) }, evaluateStep: 9 }, () => { wx.hideLoading(); }); }, 800); }, // 重新估价 restartEvaluate() { this.setData({ evaluateStep: 1, evaluateData: { region: '', type: '', brand: '', model: '', freshness: '', size: '', packaging: '', spec: '' }, evaluateResult: { finalPrice: '0', totalPrice: '0' }, fromPreviousStep: false // 重置标志 }); }, // 返回首页 backToHome() { wx.navigateBack(); }, // 跳转到购物页面 goToBuy() { console.log('goToBuy 函数被调用'); // 使用与custom-tab-bar相同的跳转逻辑 const url = 'pages/buyer/index'; // 先尝试使用navigateTo wx.navigateTo({ url: '/' + url, success: function(res) { console.log('使用navigateTo成功跳转到购物页面:', res); }, fail: function(error) { console.log('navigateTo失败,尝试使用reLaunch:', error); // 如果navigateTo失败,使用reLaunch wx.reLaunch({ url: '/' + url, success: function(res) { console.log('使用reLaunch成功跳转到购物页面:', res); }, fail: function(err) { console.error('reLaunch也失败:', err); } }); } }); }, // 跳转到货源页面 goToSell() { console.log('goToSell 函数被调用'); // 使用与custom-tab-bar相同的跳转逻辑 const url = 'pages/seller/index'; // 先尝试使用navigateTo wx.navigateTo({ url: '/' + url, success: function(res) { console.log('使用navigateTo成功跳转到货源页面:', res); }, fail: function(error) { console.log('navigateTo失败,尝试使用reLaunch:', error); // 如果navigateTo失败,使用reLaunch wx.reLaunch({ url: '/' + url, success: function(res) { console.log('使用reLaunch成功跳转到货源页面:', res); }, fail: function(err) { console.error('reLaunch也失败:', err); } }); } }); } })