优化小宝

This commit is contained in:
tangxinyue 2026-01-16 17:23:26 +08:00
parent 56f24cd7ab
commit 79862a3fa0
10 changed files with 699 additions and 678 deletions

View File

@ -21,15 +21,11 @@ import {
} from './store'
export function createApp() {
const app = createSSRApp(App)
// 将store挂载到全局
app.config.globalProperties.$store = store
// 从缓存读取系统信息已在App.vue中获取
const systemInfo = uni.getStorageSync('systemInfo') || {}
app.config.globalProperties.$system = systemInfo.platform == 'ios' ? 'iOS' : 'Android'
app.config.globalProperties.$systemInfo = systemInfo
uni.setStorageSync('version', '1.1.0')
uni.setStorageSync('version', '1.0.0')
app.use(globalMethods);
return {
app

View File

@ -1,94 +1,95 @@
{
"name" : "alipay-emulator",
"appid" : "__UNI__D535736",
"description" : "",
"versionName" : "1.0.0",
"versionCode" : "100",
"transformPx" : false,
/* 5+App */
"app-plus" : {
"usingComponents" : true,
"nvueStyleCompiler" : "uni-app",
"compilerVersion" : 3,
"splashscreen" : {
"alwaysShowBeforeRender" : true,
"waiting" : true,
"autoclose" : true,
"delay" : 0
},
"optimization" : {
"subPackages" : true
},
"runmode" : "liberate", //
"name": "alipay-emulator",
"appid": "__UNI__D535736",
"description": "",
"versionName": "1.0.0",
"versionCode": "100",
"transformPx": false,
/* 5+App */
"app-plus": {
"darkmode": false,
"usingComponents": true,
"nvueStyleCompiler": "uni-app",
"compilerVersion": 3,
"splashscreen": {
"alwaysShowBeforeRender": true,
"waiting": true,
"autoclose": true,
"delay": 0
},
"optimization": {
"subPackages": true
},
"runmode": "liberate", //
/* */
"modules" : {
"Camera" : {},
"Payment" : {}
},
/* */
"distribute" : {
/* android */
"android" : {
"permissions" : [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios" : {
"dSYMs" : false
},
/* SDK */
"sdkConfigs" : {
"payment" : {
"weixin" : {
"__platform__" : [ "ios", "android" ],
"appid" : "123456",
"UniversalLinks" : "123456"
},
"alipay" : {
"__platform__" : [ "ios", "android" ]
}
}
}
},
"nvueLaunchMode" : ""
},
/* */
"quickapp" : {},
/* */
"mp-weixin" : {
"appid" : "",
"setting" : {
"urlCheck" : false
},
"usingComponents" : true
},
"mp-alipay" : {
"usingComponents" : true
},
"mp-baidu" : {
"usingComponents" : true
},
"mp-toutiao" : {
"usingComponents" : true
},
"uniStatistics" : {
"enable" : false
},
"vueVersion" : "3"
/* */
"modules": {
"Camera": {},
"Payment": {}
},
/* */
"distribute": {
/* android */
"android": {
"permissions": [
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
]
},
/* ios */
"ios": {
"dSYMs": false
},
/* SDK */
"sdkConfigs": {
"payment": {
"weixin": {
"__platform__": ["ios", "android"],
"appid": "123456",
"UniversalLinks": "123456"
},
"alipay": {
"__platform__": ["ios", "android"]
}
}
}
},
"nvueLaunchMode": ""
},
/* */
"quickapp": {},
/* */
"mp-weixin": {
"appid": "",
"setting": {
"urlCheck": false
},
"usingComponents": true
},
"mp-alipay": {
"usingComponents": true
},
"mp-baidu": {
"usingComponents": true
},
"mp-toutiao": {
"usingComponents": true
},
"uniStatistics": {
"enable": false
},
"vueVersion": "3"
}

View File

@ -197,20 +197,23 @@ onLoad(async () => {
//
updateStatusBarHeight()
data.windowHeight = await deviceUtil.getWindowHeight()
})
onShow(() => {
// #ifdef APP-PLUS
util.setAndroidSystemBarColor('#F0F3F8')
plus.navigator.setStatusBarStyle("light");
// #endif
//
data.menuList = fastEntranceData()
//
const cachedBalance = storage.get('balance')
if (cachedBalance !== null) {
data.balance = cachedBalance
}
})
onShow(() => {
// #ifdef APP-PLUS
util.setAndroidSystemBarColor('#F0F3F8', "#ffffff")
// #endif
//
data.menuList = fastEntranceData()
getRecentBills()
})
@ -228,6 +231,7 @@ const fastEntranceData = () => {
//
const getRecentBills = () => {
const allBillList = getBillList()
//
const sortedList = [...allBillList].sort((a, b) => {
const timeA = a.itemInfoList.find(info => info.key == 'createTime')?.value || 0
@ -235,9 +239,12 @@ const getRecentBills = () => {
return new Date(timeB) - new Date(timeA)
})
console.log('sortedList', sortedList)
// 3
const recentBills = sortedList.filter(item => item.payMethod == '余额').slice(0, 3)
console.log('recentBills', recentBills)
//
data.changeDetailList = recentBills.map(item => {
const createTime = item.itemInfoList.find(info => info.key == 'createTime')?.value || new Date()
@ -717,7 +724,7 @@ const onMenuScroll = (e) => {
.title-right>.text {
font-size: 14px;
color: var(--text-color);
color: #979797;
}
.right-icon {

View File

@ -473,6 +473,9 @@ let { billData, datePickerData, selectItemInfo } = toRefs(data)
onShow(() => {
// #ifdef APP-PLUS
util.setAndroidSystemBarColor('#F5F5F5')
setTimeout(() => {
plus.navigator.setStatusBarStyle("dark");
}, 500);
// #endif
})
@ -791,6 +794,9 @@ const onRightClick = async () => {
billData.value.payMethod = "余额"
}
addBill(billData.value)
const allBillList = getBillList()
console.log("getBillDataList------", allBillList)
}
uni.showToast({

View File

@ -319,6 +319,9 @@ onShow(() => {
getBillData(data.billId)
// #ifdef APP-PLUS
util.setAndroidSystemBarColor('#F5F5F5')
setTimeout(() => {
plus.navigator.setStatusBarStyle("dark");
}, 500);
// #endif
})

View File

@ -12,7 +12,7 @@
<template v-slot:center>
<view class="nav-bar-search flex-align-center flex-1">
<image class="search-icon" src="/static/image/bill/bill-list/search-black.png" mode=""></image>
<input type="text" class="search-input flex-1" placeholder="请输入搜索内容" />
<input type="text" class="search-input flex-1" placeholder="请输入交易记录" />
<view class="line h100"></view>
<view class="search-button">搜索</view>
</view>
@ -249,7 +249,9 @@ onShow(() => {
timingFunc: 'easeIn'
}
})
plus.navigator.setStatusBarStyle("dark");
setTimeout(() => {
plus.navigator.setStatusBarStyle("dark");
}, 500);
// #endif
})
@ -258,6 +260,8 @@ onShow(() => {
*/
const getBillDataList = () => {
const allBillList = getBillList()
console.log("getBillDataList------", allBillList)
//
const groupList = []
allBillList.forEach(item => {

View File

@ -75,7 +75,9 @@ onLoad((options) => {
onShow(() => {
// #ifdef APP-PLUS
util.setAndroidSystemBarColor('#ffffff')
plus.navigator.setStatusBarStyle("dark");
setTimeout(() => {
plus.navigator.setStatusBarStyle("dark");
}, 500);
// #endif
})

File diff suppressed because it is too large Load Diff

View File

@ -39,6 +39,9 @@ export const store = reactive({
});
// 定义操作方法
export const useStore = () => {
// 用户相关操作
@ -83,10 +86,6 @@ export const useStore = () => {
return store.billList
}
// 手动保存账单列表(替代自动监听)
const saveBillList = debounce(() => {
storage.set('bill_list', store.billList)
}, 500)
// 优化后的监听:使用防抖减少存储频率
const debouncedSaveSettings = debounce((newValue) => {
@ -105,7 +104,12 @@ export const useStore = () => {
{ deep: true }
);
// 移除billList的自动监听改为手动调用saveBillList
// 监听billList改变自动保存
watch(
() => store.billList,
(newValue) => storage.set('bill_list', newValue),
{ deep: true }
);
// 获取系统信息(从缓存读取)
const getSystemInfo = () => {
@ -124,7 +128,6 @@ export const useStore = () => {
updateBill,
deleteBill,
getBillList,
saveBillList,
getSystemInfo
};
};

View File

@ -387,7 +387,6 @@ export const util = {
let window = plus.android.invoke(activity, "getWindow");
plus.android.invoke(window, "setNavigationBarColor", colorInt);
uni.setNavigationBarColor({
frontColor: frontColor,
animation: { // 动画效果
duration: 100,
timingFunc: 'easeIn'
@ -395,7 +394,6 @@ export const util = {
})
setTimeout(function () {
uni.setNavigationBarColor({
frontColor: frontColor,
animation: { // 动画效果
duration: 100,
timingFunc: 'easeIn'
@ -407,7 +405,6 @@ export const util = {
} catch (err) {
console.log("状态栏修改失败", err);
uni.setNavigationBarColor({
frontColor: frontColor,
animation: { // 动画效果
duration: 100,
timingFunc: 'easeIn'