ui: 暗色金融风重构 + 自定义货币选择器
- 深色主题:深蓝背景 + 毛玻璃卡片 + 金色结果数字 - 自定义底部弹窗货币选择器,替换原生白色 Picker - 换算卡片内容居中竖排布局 - 汇率信息条改为竖排独立卡片 - 实时脉冲徽章 + 蓝紫渐变互换按钮 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -6,13 +6,14 @@ const pickerData = getPickerData();
|
||||
Page({
|
||||
data: {
|
||||
pickerData,
|
||||
baseIndex: 0, // CNY
|
||||
baseIndex: 0,
|
||||
amount: '100',
|
||||
list: [],
|
||||
updatedAt: '',
|
||||
loading: true,
|
||||
error: '',
|
||||
rates: null,
|
||||
showPicker: false,
|
||||
},
|
||||
|
||||
onLoad() {
|
||||
@@ -30,17 +31,10 @@ Page({
|
||||
try {
|
||||
const baseCode = CURRENCIES[this.data.baseIndex].code;
|
||||
const { rates, updatedAt } = await getRates(baseCode);
|
||||
this.setData({
|
||||
rates,
|
||||
updatedAt,
|
||||
loading: false,
|
||||
});
|
||||
this.setData({ rates, updatedAt, loading: false });
|
||||
this.buildList();
|
||||
} catch (e) {
|
||||
this.setData({
|
||||
loading: false,
|
||||
error: '汇率获取失败,请检查网络后下拉刷新',
|
||||
});
|
||||
this.setData({ loading: false, error: '汇率获取失败,请下拉刷新重试' });
|
||||
}
|
||||
},
|
||||
|
||||
@@ -72,11 +66,19 @@ Page({
|
||||
this.setData({ list });
|
||||
},
|
||||
|
||||
handleBaseChange(e) {
|
||||
this.setData({ baseIndex: Number(e.detail.value) });
|
||||
openBasePicker() {
|
||||
this.setData({ showPicker: true });
|
||||
},
|
||||
|
||||
handlePickerSelect(e) {
|
||||
this.setData({ baseIndex: e.detail.value, showPicker: false });
|
||||
this.loadRates();
|
||||
},
|
||||
|
||||
handlePickerClose() {
|
||||
this.setData({ showPicker: false });
|
||||
},
|
||||
|
||||
handleAmountInput(e) {
|
||||
this.setData({ amount: e.detail.value });
|
||||
this.buildList();
|
||||
|
||||
Reference in New Issue
Block a user