fix: 修复 VoiceController Map.of 兼容性 + ExploreController 参数不匹配
- VoiceController: Map.of() -> Collections.singletonMap() 兼容 Java 8 - ExploreController: 补齐 takeoutService.roll() 缺失的 taste/priceRange/allergies 参数 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
138
miniapp/pages/takeout-result/takeout-result.js
Normal file
138
miniapp/pages/takeout-result/takeout-result.js
Normal file
@@ -0,0 +1,138 @@
|
||||
const app = getApp();
|
||||
const api = require('../../utils/api');
|
||||
const loc = require('../../utils/location');
|
||||
const storage = require('../../utils/storage');
|
||||
|
||||
Page({
|
||||
data: {
|
||||
showAnimation: false,
|
||||
dataReady: false,
|
||||
result: null,
|
||||
error: '',
|
||||
distanceText: '',
|
||||
deliveryInfo: ''
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
this.roll();
|
||||
},
|
||||
|
||||
roll() {
|
||||
this.setData({
|
||||
showAnimation: true,
|
||||
dataReady: false,
|
||||
error: '',
|
||||
result: null
|
||||
});
|
||||
|
||||
const prefs = storage.get('user_prefs', {});
|
||||
loc.getLocation().then((pos) => {
|
||||
return api.post('/api/takeout/roll', {
|
||||
latitude: pos.latitude,
|
||||
longitude: pos.longitude,
|
||||
openid: 'anonymous',
|
||||
taste: prefs.taste || '都可以',
|
||||
priceRange: prefs.priceRange || 'all',
|
||||
allergies: prefs.allergies || ''
|
||||
});
|
||||
}).then((data) => {
|
||||
const distKm = ((data.distance || 0) / 1000).toFixed(1);
|
||||
const deliveryTime = data.deliveryTime || '';
|
||||
const minOrder = data.minOrder || '';
|
||||
const deliveryFee = data.deliveryFee ? ('配送费' + data.deliveryFee) : '';
|
||||
const parts = [deliveryTime, minOrder, deliveryFee].filter(Boolean);
|
||||
|
||||
this.setData({
|
||||
result: data,
|
||||
distanceText: distKm + 'km',
|
||||
deliveryInfo: parts.join(' · '),
|
||||
dataReady: true
|
||||
});
|
||||
}).catch((err) => {
|
||||
this.setData({
|
||||
showAnimation: false,
|
||||
error: err.message || '附近喵星人占领了,换片区域试试?'
|
||||
});
|
||||
});
|
||||
},
|
||||
|
||||
onAnimationDone() {
|
||||
this.setData({ showAnimation: false });
|
||||
},
|
||||
|
||||
goOrder() {
|
||||
const shop = this.data.result;
|
||||
if (!shop) return;
|
||||
|
||||
const shopName = shop.name || '';
|
||||
const shopAddress = shop.address || '';
|
||||
const lat = app.globalData.location ? app.globalData.location.latitude : 0;
|
||||
const lng = app.globalData.location ? app.globalData.location.longitude : 0;
|
||||
|
||||
wx.showActionSheet({
|
||||
itemList: ['美团外卖', '饿了么', '查看地图位置'],
|
||||
success: (res) => {
|
||||
if (res.tapIndex === 0) {
|
||||
this.openMeituan(shopName);
|
||||
} else if (res.tapIndex === 1) {
|
||||
this.openEleme(shopName);
|
||||
} else if (res.tapIndex === 2) {
|
||||
wx.openLocation({
|
||||
latitude: shop.latitude || lat,
|
||||
longitude: shop.longitude || lng,
|
||||
name: shopName,
|
||||
address: shopAddress,
|
||||
scale: 16
|
||||
});
|
||||
}
|
||||
},
|
||||
fail: () => {
|
||||
this.openMeituan(shopName);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
openMeituan(name) {
|
||||
wx.navigateToMiniProgram({
|
||||
appId: 'wxde8ac0a21135c07d',
|
||||
path: '',
|
||||
extraData: { query: name },
|
||||
success: () => {
|
||||
this.saveRecord(this.data.result);
|
||||
},
|
||||
fail: () => {
|
||||
wx.showToast({ title: '请安装美团外卖 APP', icon: 'none', duration: 2000 });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
openEleme(name) {
|
||||
wx.navigateToMiniProgram({
|
||||
appId: 'wxece3a9a4c82f58c9',
|
||||
path: '',
|
||||
extraData: { query: name },
|
||||
success: () => {
|
||||
this.saveRecord(this.data.result);
|
||||
},
|
||||
fail: () => {
|
||||
wx.showToast({ title: '请安装饿了么 APP', icon: 'none', duration: 2000 });
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
retry() {
|
||||
this.roll();
|
||||
},
|
||||
|
||||
saveRecord(data) {
|
||||
const history = wx.getStorageSync('box_history') || [];
|
||||
history.push({
|
||||
id: Date.now().toString(),
|
||||
icon: '🛵',
|
||||
name: data.name,
|
||||
time: new Date().toLocaleString(),
|
||||
typeName: '外卖盲盒'
|
||||
});
|
||||
wx.setStorageSync('box_history', history);
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user