first commit
This commit is contained in:
111
pages/mistakes/index.ux
Normal file
111
pages/mistakes/index.ux
Normal file
@@ -0,0 +1,111 @@
|
||||
<template>
|
||||
<div class="wrapper">
|
||||
<vw-list-des-radio-left
|
||||
list-array="{{listArray}}"
|
||||
onwidgetclick="handleWidgetClick"
|
||||
title="错题本"
|
||||
onback="handleBack"
|
||||
onscrollbottom="handleBottom"
|
||||
></vw-list-des-radio-left>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import router from '@blueos.app.appmanager.router'
|
||||
import storage from '@blueos.storage.storage';
|
||||
import prompt from '@blueos.window.prompt';
|
||||
export default {
|
||||
data: {
|
||||
listArray: [] // 初始化为空数组
|
||||
},
|
||||
|
||||
onInit() {
|
||||
try {
|
||||
// 同步获取存储数据
|
||||
const storedData = storage.getSync({ key: 'noLearnList' });
|
||||
if (typeof storedData!="string") return;
|
||||
// 解析数据并转换格式
|
||||
if (storedData) {
|
||||
const noLearnList = JSON.parse(storedData);
|
||||
|
||||
// 过滤无效数据并转换格式
|
||||
this.listArray = noLearnList
|
||||
.map(item => ({
|
||||
id: item.id,
|
||||
title: item.word,
|
||||
des: item.translation,
|
||||
checked: false,
|
||||
// 保留原始数据用于后续操作
|
||||
originData: item
|
||||
}));
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('数据加载失败:', e);
|
||||
// 可以添加用户提示
|
||||
prompt.showToast({ message: '加载错题本失败' });
|
||||
}
|
||||
},
|
||||
|
||||
handleBack() {
|
||||
router.replace({
|
||||
uri: 'pages/index'
|
||||
});
|
||||
},
|
||||
|
||||
handleWidgetClick(data) {
|
||||
const index = data.index;
|
||||
if (index >= 0 && index < this.listArray.length) {
|
||||
const targetId = this.listArray[index].id;
|
||||
|
||||
// 获取最新数据避免脏数据
|
||||
const storedData = storage.getSync({ key: 'noLearnList' });
|
||||
if (!storedData||typeof storedData!="string") return;
|
||||
|
||||
const noLearnList = JSON.parse(storedData);
|
||||
const newList = noLearnList.filter(item => item.id !== targetId);
|
||||
// 双重保障:更新存储和当前数据
|
||||
storage.set({ key: 'noLearnList', value: JSON.stringify(newList) });
|
||||
this.listArray = newList.map(item => ({
|
||||
id: item.id,
|
||||
title: item.word,
|
||||
des: item.translation,
|
||||
originData: item
|
||||
}));
|
||||
}
|
||||
},
|
||||
|
||||
// 处理滚动到底部(示例)
|
||||
handleBottom() {
|
||||
// 可以添加加载更多逻辑
|
||||
},
|
||||
loadData() {
|
||||
try {
|
||||
const storedData = storage.getSync({ key: 'noLearnList' });
|
||||
if (storedData && typeof storedData == "string") {
|
||||
const noLearnList = JSON.parse(storedData);
|
||||
this.listArray = noLearnList.map(item => ({
|
||||
id: item.id,
|
||||
title: item.word,
|
||||
des: item.translation,
|
||||
originData: item
|
||||
}));
|
||||
}
|
||||
} catch (e) {
|
||||
console.error('加载失败:', e);
|
||||
}
|
||||
},
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.wrapper {
|
||||
background-color: #000000; /* 更友好的背景色 */
|
||||
height: 100%;
|
||||
|
||||
/* 适配列表组件样式 */
|
||||
vw-list-des-radio-left {
|
||||
height: 100%;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user