样式调整
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
import './assets/main.css'
|
import './assets/main.css'
|
||||||
|
import './styles/common.css'
|
||||||
|
|
||||||
import { createApp } from 'vue'
|
import { createApp } from 'vue'
|
||||||
import { createPinia } from 'pinia'
|
import { createPinia } from 'pinia'
|
||||||
|
|||||||
@@ -161,3 +161,71 @@
|
|||||||
-webkit-overflow-scrolling: touch;
|
-webkit-overflow-scrolling: touch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ===== 页面容器布局(Flex布局) ===== */
|
||||||
|
.page-container-flex {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
height: 100vh;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-container-flex :deep(.van-nav-bar) {
|
||||||
|
flex-shrink: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page-container-flex > .van-pull-refresh {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== 可滚动内容区域 ===== */
|
||||||
|
.scroll-content {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
padding: 16px 0 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== 粘性顶部元素样式 ===== */
|
||||||
|
.sticky-header {
|
||||||
|
position: sticky;
|
||||||
|
top: 0;
|
||||||
|
z-index: 10;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
padding: 12px 16px;
|
||||||
|
margin: 0 12px;
|
||||||
|
margin-top: 12px;
|
||||||
|
background: #ffffff;
|
||||||
|
border-radius: 12px;
|
||||||
|
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
.sticky-header {
|
||||||
|
background: #1f1f1f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.sticky-header-text {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: var(--van-text-color);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
gap: 4px;
|
||||||
|
cursor: pointer;
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ===== 颜色工具类 ===== */
|
||||||
|
.text-expense {
|
||||||
|
color: #ff6b6b;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-income {
|
||||||
|
color: #51cf66;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
title="智能分析"
|
title="智能分析"
|
||||||
@@ -11,11 +11,6 @@
|
|||||||
<div class="analysis-content">
|
<div class="analysis-content">
|
||||||
<!-- 输入区域 -->
|
<!-- 输入区域 -->
|
||||||
<div class="input-section">
|
<div class="input-section">
|
||||||
<div class="input-header">
|
|
||||||
<h3>输入您的问题</h3>
|
|
||||||
<p class="input-tip">例如:我这三个月坐车花费了多少钱?</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<van-field
|
<van-field
|
||||||
v-model="userInput"
|
v-model="userInput"
|
||||||
rows="2"
|
rows="2"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
title="批量分类"
|
title="批量分类"
|
||||||
left-text="返回"
|
left-text="返回"
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
placeholder
|
placeholder
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<div class="scroll-content">
|
||||||
<!-- 未分类账单统计 -->
|
<!-- 未分类账单统计 -->
|
||||||
<div class="unclassified-stat">
|
<div class="unclassified-stat">
|
||||||
<span>未分类账单数: {{ unclassifiedCount }}</span>
|
<span>未分类账单数: {{ unclassifiedCount }}</span>
|
||||||
@@ -165,6 +166,7 @@
|
|||||||
<van-field v-model="newClassify" placeholder="请输入新的交易分类" />
|
<van-field v-model="newClassify" placeholder="请输入新的交易分类" />
|
||||||
</van-dialog>
|
</van-dialog>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
:title="navTitle"
|
:title="navTitle"
|
||||||
left-text="返回"
|
left-text="返回"
|
||||||
@@ -8,6 +8,7 @@
|
|||||||
placeholder
|
placeholder
|
||||||
/>
|
/>
|
||||||
|
|
||||||
|
<div class="scroll-content">
|
||||||
<!-- 第一层:选择交易类型 -->
|
<!-- 第一层:选择交易类型 -->
|
||||||
<div v-if="currentLevel === 0" class="level-container">
|
<div v-if="currentLevel === 0" class="level-container">
|
||||||
<van-cell-group inset>
|
<van-cell-group inset>
|
||||||
@@ -91,6 +92,7 @@
|
|||||||
@confirm="handleConfirmDelete"
|
@confirm="handleConfirmDelete"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container classification-nlp">
|
<div class="page-container-flex classification-nlp">
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
title="智能分类助手"
|
title="自然语言分类"
|
||||||
left-text="返回"
|
left-text="返回"
|
||||||
left-arrow
|
left-arrow
|
||||||
@click-left="onClickLeft"
|
@click-left="onClickLeft"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="page-content">
|
<div class="scroll-content">
|
||||||
<!-- 输入区域 -->
|
<!-- 输入区域 -->
|
||||||
<div class="input-section">
|
<div class="input-section">
|
||||||
<van-cell-group inset>
|
<van-cell-group inset>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container smart-classification">
|
<div class="page-container-flex smart-classification">
|
||||||
<van-nav-bar
|
<van-nav-bar
|
||||||
title="智能分类"
|
title="智能分类"
|
||||||
left-text="返回"
|
left-text="返回"
|
||||||
@@ -7,7 +7,7 @@
|
|||||||
@click-left="onClickLeft"
|
@click-left="onClickLeft"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div class="page-content" style="padding-top: 5px;">
|
<div class="scroll-content" style="padding-top: 5px;">
|
||||||
<!-- 统计信息 -->
|
<!-- 统计信息 -->
|
||||||
<div class="stats-info">
|
<div class="stats-info">
|
||||||
<span class="stats-label">未分类账单:</span>
|
<span class="stats-label">未分类账单:</span>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<van-nav-bar title="邮件记录" placeholder>
|
<van-nav-bar title="邮件记录" placeholder>
|
||||||
<template #right>
|
<template #right>
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
|
|
||||||
<!-- 下拉刷新区域 -->
|
<!-- 下拉刷新区域 -->
|
||||||
<van-pull-refresh v-model="refreshing" @refresh="onRefresh" class="refresh-wrapper">
|
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
|
||||||
<!-- 加载提示 -->
|
<!-- 加载提示 -->
|
||||||
<van-loading v-if="loading && !(emailList && emailList.length)" vertical style="padding: 50px 0">
|
<van-loading v-if="loading && !(emailList && emailList.length)" vertical style="padding: 50px 0">
|
||||||
加载中...
|
加载中...
|
||||||
@@ -417,6 +417,13 @@ onMounted(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
|
:deep(.van-pull-refresh) {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
.email-info {
|
.email-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<van-nav-bar title="设置" placeholder/>
|
<van-nav-bar title="设置" placeholder/>
|
||||||
|
<div class="scroll-content">
|
||||||
<div class="detail-header" style="padding-bottom: 5px;">
|
<div class="detail-header" style="padding-bottom: 5px;">
|
||||||
<p>账单导入</p>
|
<p>账单导入</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -16,7 +17,7 @@
|
|||||||
<p>分类处理</p>
|
<p>分类处理</p>
|
||||||
</div>
|
</div>
|
||||||
<van-cell-group inset>
|
<van-cell-group inset>
|
||||||
<van-cell title="分类管理" is-link @click="handleEditClassification" />
|
<van-cell title="编辑分类" is-link @click="handleEditClassification" />
|
||||||
<van-cell title="批量分类" is-link @click="handleBatchClassification" />
|
<van-cell title="批量分类" is-link @click="handleBatchClassification" />
|
||||||
<van-cell title="智能分类" is-link @click="handleSmartClassification" />
|
<van-cell title="智能分类" is-link @click="handleSmartClassification" />
|
||||||
<van-cell title="自然语言分类" is-link @click="handleNaturalLanguageClassification" />
|
<van-cell title="自然语言分类" is-link @click="handleNaturalLanguageClassification" />
|
||||||
@@ -28,6 +29,7 @@
|
|||||||
<van-cell title="退出登录" is-link @click="handleLogout" />
|
<van-cell title="退出登录" is-link @click="handleLogout" />
|
||||||
</van-cell-group>
|
</van-cell-group>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<van-nav-bar title="账单统计" placeholder>
|
<van-nav-bar title="账单统计" placeholder>
|
||||||
<template #right>
|
<template #right>
|
||||||
@@ -8,14 +8,14 @@
|
|||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
|
|
||||||
<!-- 月份选择器 固定区域 -->
|
<!-- 月份选择器 固定区域 -->
|
||||||
<div class="month-selector">
|
<div class="sticky-header">
|
||||||
<van-button
|
<van-button
|
||||||
icon="arrow-left"
|
icon="arrow-left"
|
||||||
plain
|
plain
|
||||||
size="small"
|
size="small"
|
||||||
@click="changeMonth(-1)"
|
@click="changeMonth(-1)"
|
||||||
/>
|
/>
|
||||||
<div class="month-text" @click="showMonthPicker = true">
|
<div class="sticky-header-text" @click="showMonthPicker = true">
|
||||||
{{ currentYear }}年{{ currentMonth }}月
|
{{ currentYear }}年{{ currentMonth }}月
|
||||||
<van-icon name="arrow-down" />
|
<van-icon name="arrow-down" />
|
||||||
</div>
|
</div>
|
||||||
@@ -665,58 +665,14 @@ onActivated(() => {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
.page-container {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
height: 100vh;
|
|
||||||
overflow: hidden;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-container :deep(.van-nav-bar) {
|
|
||||||
flex-shrink: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.van-pull-refresh {
|
|
||||||
flex: 1;
|
|
||||||
overflow-y: auto;
|
|
||||||
-webkit-overflow-scrolling: touch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.statistics-content {
|
.statistics-content {
|
||||||
padding: 16px 0 0 0;
|
padding: 16px 0 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 月份选择器 - 固定 */
|
:deep(.van-pull-refresh) {
|
||||||
.month-selector {
|
flex: 1;
|
||||||
position: sticky;
|
overflow-y: auto;
|
||||||
top: 0;
|
-webkit-overflow-scrolling: touch;
|
||||||
z-index: 10;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
padding: 12px 16px;
|
|
||||||
margin: 0 12px;
|
|
||||||
margin-top: 12px;
|
|
||||||
background: #ffffff;
|
|
||||||
border-radius: 12px;
|
|
||||||
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
.month-selector {
|
|
||||||
background: #1f1f1f;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.month-text {
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: 600;
|
|
||||||
color: var(--van-text-color);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 4px;
|
|
||||||
cursor: pointer;
|
|
||||||
user-select: none;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 月度概览卡片 */
|
/* 月度概览卡片 */
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="page-container">
|
<div class="page-container-flex">
|
||||||
<!-- 顶部导航栏 -->
|
<!-- 顶部导航栏 -->
|
||||||
<van-nav-bar title="交易记录" placeholder>
|
<van-nav-bar title="交易记录" placeholder>
|
||||||
<template #right>
|
<template #right>
|
||||||
@@ -10,7 +10,7 @@
|
|||||||
</van-nav-bar>
|
</van-nav-bar>
|
||||||
|
|
||||||
<!-- 下拉刷新区域 -->
|
<!-- 下拉刷新区域 -->
|
||||||
<van-pull-refresh v-model="refreshing" @refresh="onRefresh" class="refresh-wrapper">
|
<van-pull-refresh v-model="refreshing" @refresh="onRefresh">
|
||||||
<!-- 加载提示 -->
|
<!-- 加载提示 -->
|
||||||
<van-loading v-if="loading && !(transactionList && transactionList.length)" vertical style="padding: 50px 0">
|
<van-loading v-if="loading && !(transactionList && transactionList.length)" vertical style="padding: 50px 0">
|
||||||
加载中...
|
加载中...
|
||||||
@@ -529,6 +529,12 @@ onMounted(async () => {
|
|||||||
|
|
||||||
<style scoped>
|
<style scoped>
|
||||||
|
|
||||||
|
:deep(.van-pull-refresh) {
|
||||||
|
flex: 1;
|
||||||
|
overflow-y: auto;
|
||||||
|
-webkit-overflow-scrolling: touch;
|
||||||
|
}
|
||||||
|
|
||||||
.floating-search {
|
.floating-search {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 90px;
|
bottom: 90px;
|
||||||
|
|||||||
Reference in New Issue
Block a user