68 lines
1.4 KiB
TypeScript
68 lines
1.4 KiB
TypeScript
import { config } from '../../config';
|
|
|
|
Page({
|
|
onLoad() {
|
|
wx.showShareMenu({
|
|
withShareTicket: true,
|
|
menus: ['shareAppMessage', 'shareTimeline']
|
|
});
|
|
},
|
|
onShareAppMessage() {
|
|
return config.share;
|
|
},
|
|
onShareTimeline() {
|
|
return config.share;
|
|
},
|
|
|
|
data: {
|
|
originalPrice: '',
|
|
discount: '',
|
|
finalPrice: '0.00',
|
|
savedMoney: '0.00'
|
|
},
|
|
|
|
bindOriginalInput(e: any) {
|
|
this.setData({
|
|
originalPrice: e.detail.value
|
|
});
|
|
this.calculate();
|
|
},
|
|
|
|
bindDiscountInput(e: any) {
|
|
this.setData({
|
|
discount: e.detail.value
|
|
});
|
|
this.calculate();
|
|
},
|
|
|
|
calculate() {
|
|
const original = parseFloat(this.data.originalPrice);
|
|
const discount = parseFloat(this.data.discount); // Assume local style 8.8折 or international %? Let's assume N折 (0-10)
|
|
|
|
if (isNaN(original) || isNaN(discount)) {
|
|
this.setData({
|
|
finalPrice: '0.00',
|
|
savedMoney: '0.00'
|
|
});
|
|
return;
|
|
}
|
|
|
|
// Logic: Input 9 = 9折 = 90% of price. Input 8.5 = 85%.
|
|
// If input > 10, maybe it means percentage? e.g. 80 = 80%?
|
|
// Let's stick to N折 standard in China.
|
|
|
|
let rate = discount;
|
|
if (rate > 10) {
|
|
rate = rate / 10.0;
|
|
}
|
|
|
|
// rate is now 0-10. e.g. 8.8
|
|
const final = original * (rate / 10.0);
|
|
const saved = original - final;
|
|
|
|
this.setData({
|
|
finalPrice: final.toFixed(2),
|
|
savedMoney: saved.toFixed(2)
|
|
});
|
|
}
|
|
}); |