Files
2026-06-02 15:28:25 +08:00

85 lines
1.7 KiB
Vue

<template>
<view class="page-container">
<scroll-view class="page-body" scroll-y>
<view class="ledger-menu">
<view
class="ledger-item"
v-for="item in ledgerList"
:key="item.id"
@click="navigateTo(item)"
>
<view class="ledger-text">
<text class="title">{{ item.alias }}</text>
<!-- <text class="desc">{{ item.lx }}</text> -->
</view>
<uni-icons type="right" size="14" color="#cccccc"></uni-icons>
</view>
</view>
</scroll-view>
</view>
</template>
<script>
import { api } from '@/api'
export default {
data() {
return {
ledgerList: []
}
},
onLoad() {
this.loadData()
},
methods: {
navigateTo(item) {
uni.navigateTo({
url: '/pages/ledger/detail?item=' + encodeURIComponent(JSON.stringify(item))
})
},
async loadData() {
const res = await api.ledgetType()
if (res.code === 1000) {
// 按 sort_order 排序
this.ledgerList = res.data.sort((a, b) => a.sort_order - b.sort_order)
}
}
}
}
</script>
<style lang="scss" scoped>
.ledger-menu {
padding: $spacing-md;
}
.ledger-item {
background: #ffffff;
border-radius: $border-radius-md;
padding: $spacing-md;
margin-bottom: $spacing-base;
display: flex;
align-items: center;
gap: $spacing-sm;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}
.ledger-text {
flex: 1;
.title {
display: block;
font-size: $font-size-md;
color: $text-primary;
margin-bottom: 2px;
}
.desc {
display: block;
font-size: $font-size-sm;
color: $text-placeholder;
}
}
</style>