这款个人财务管理看板是一个交互式仪表盘,旨在帮助用户跟踪他们的财务状况,设定目标,并可视化他们的支出。它适用于希望更好地管理资金并实现财务目标的个人。
该代码实现了以下基本功能:
import { createApp } from "vue";
import App from "./App.vue";
createApp(App).mount("#app");
const laptopOption = ref({
title: {
text: "Laptop",
},
series: [
{
type: "pie",
data: [
{ value: 100, name: "Budget" },
{ value: 50, name: "Spent" },
],
},
],
});
const ECharts = createComponent({ echarts, h });
import Calendar from "v-calendar";
import { BMap } from "vue3-baidu-map-gl";
<template>
<div class="flex flex-col h-screen bg-gray-100">
<!-- Header -->
<div class="flex items-center justify-between p-4 border-b border-gray-200">
<!-- Profile and Title -->
<div class="flex items-center">
<img
class="w-10 h-10 rounded-full"
src="https://source.unsplash.com/random/40x40"
alt="Profile picture"
/>
<div class="ml-4 text-lg font-semibold">My Targets</div>
</div>
<!-- Add New Button and Notification Icon -->
<div class="flex items-center space-x-4">
<button
class="px-4 py-2 text-sm font-semibold text-white bg-green-500 rounded-md"
>
+ Add New
</button>
<img
class="w-6 h-6"
src="https://source.unsplash.com/random/24x24"
alt="Notification icon"
/>
</div>
</div>
<!-- Main Content -->
<div class="flex-1 overflow-y-auto p-4">
<!-- Target Progress Cards -->
<div class="grid grid-cols-2 gap-4">
<div class="bg-white rounded-lg shadow-md p-4">
<div class="flex items-center justify-between">
<div class="text-lg font-semibold">Buy New Laptop</div>
<div class="text-sm font-semibold text-green-500">50%</div>
</div>
<div class="mt-4">
<ECharts
:option="laptopOption"
style="width: 100%; height: 200px"
/>
</div>
</div>
<div class="bg-white rounded-lg shadow-md p-4">
<div class="flex items-center justify-between">
<div class="text-lg font-semibold">Holiday to Hawaii</div>
<div class="text-sm font-semibold text-green-500">80%</div>
</div>
<div class="mt-4">
<ECharts
:option="hawaiiOption"
style="width: 100%; height: 200px"
/>
</div>
</div>
</div>
<!-- Recent Transactions -->
<div class="mt-8">
<div class="text-lg font-semibold">Recent Transactions</div>
<div class="mt-4">
<div
class="flex items-center justify-between border-b border-gray-200 py-2"
>
<div class="text-sm font-semibold">Transport</div>
<div class="text-sm font-semibold text-red-500">- $18.00</div>
</div>
<div
class="flex items-center justify-between border-b border-gray-200 py-2"
>
<div class="text-sm font-semibold">Grocery</div>
<div class="text-sm font-semibold text-red-500">- $67.00</div>
</div>
<div
class="flex items-center justify-between border-b border-gray-200 py-2"
>
<div class="text-sm font-semibold">Payment</div>
<div class="text-sm font-semibold text-green-500">+$100.00</div>
</div>
<div
class="flex items-center justify-between border-b border-gray-200 py-2"
>
<div class="text-sm font-semibold">Coffee</div>
<div class="text-sm font-semibold text-red-500">- $13.00</div>
</div>
</div>
</div>
</div>
<!-- Footer -->
<div class="border-t border-gray-200">
<div class="flex items-center justify-between p-4">
<div class="text-sm font-semibold">Total Balance</div>
<div class="text-sm font-semibold text-green-500">$2,780.50</div>
</div>
</div>
</div>
</template>
开发这段代码的过程是一个宝贵的学习体验。我深入了解了 Vue 3、ECharts、v-calendar 和 vue3-baidu-map-gl 的功能和集成方法。
展望: