├── android
├── settings_aar.gradle
├── app
│ ├── src
│ │ ├── main
│ │ │ ├── res
│ │ │ │ ├── ic_launcher.png
│ │ │ │ ├── mipmap-hdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-ldpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-mdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── mipmap-xxxhdpi
│ │ │ │ │ └── ic_launcher.png
│ │ │ │ ├── values
│ │ │ │ │ └── styles.xml
│ │ │ │ └── drawable
│ │ │ │ │ └── launch_background.xml
│ │ │ ├── kotlin
│ │ │ │ └── com
│ │ │ │ │ └── rwson
│ │ │ │ │ └── bill
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── AndroidManifest.xml
│ │ ├── debug
│ │ │ └── AndroidManifest.xml
│ │ └── profile
│ │ │ └── AndroidManifest.xml
│ └── build.gradle
├── gradle.properties
├── gradle
│ └── wrapper
│ │ └── gradle-wrapper.properties
├── settings.gradle
└── build.gradle
├── ios
├── Runner
│ ├── Runner-Bridging-Header.h
│ ├── Assets.xcassets
│ │ ├── AppIcon.appiconset
│ │ │ ├── icon-29.png
│ │ │ ├── icon-40.png
│ │ │ ├── icon-50.png
│ │ │ ├── icon-57.png
│ │ │ ├── icon-72.png
│ │ │ ├── icon-76.png
│ │ │ ├── icon-1024.png
│ │ │ ├── icon-20@2x.png
│ │ │ ├── icon-20@3x.png
│ │ │ ├── icon-29@2x.png
│ │ │ ├── icon-29@3x.png
│ │ │ ├── icon-40@2x.png
│ │ │ ├── icon-40@3x.png
│ │ │ ├── icon-50@2x.png
│ │ │ ├── icon-57@2x.png
│ │ │ ├── icon-60@2x.png
│ │ │ ├── icon-60@3x.png
│ │ │ ├── icon-72@2x.png
│ │ │ ├── icon-76@2x.png
│ │ │ ├── icon-20-ipad.png
│ │ │ ├── icon-29-ipad.png
│ │ │ ├── icon-83.5@2x.png
│ │ │ ├── icon-20@2x-ipad.png
│ │ │ ├── icon-29@2x-ipad.png
│ │ │ └── Contents.json
│ │ └── LaunchImage.imageset
│ │ │ ├── LaunchImage.png
│ │ │ ├── LaunchImage@2x.png
│ │ │ ├── LaunchImage@3x.png
│ │ │ ├── README.md
│ │ │ └── Contents.json
│ ├── AppDelegate.swift
│ ├── Base.lproj
│ │ ├── Main.storyboard
│ │ └── LaunchScreen.storyboard
│ └── Info.plist
├── Flutter
│ ├── Debug.xcconfig
│ ├── Release.xcconfig
│ └── AppFrameworkInfo.plist
├── Runner.xcodeproj
│ ├── project.xcworkspace
│ │ └── contents.xcworkspacedata
│ └── xcshareddata
│ │ └── xcschemes
│ │ └── Runner.xcscheme
├── Runner.xcworkspace
│ └── contents.xcworkspacedata
├── Podfile.lock
└── Podfile
├── lib
├── fonts
│ └── font.ttf
├── assets
│ ├── avatar.png
│ ├── circle.png
│ ├── limit.png
│ ├── task.png
│ └── reminder.png
├── assets.dart
├── bean
│ ├── limit.dart
│ ├── limit.g.dart
│ ├── reminder.dart
│ ├── task.dart
│ ├── reminder.g.dart
│ ├── user.dart
│ ├── bill.dart
│ ├── task.g.dart
│ ├── group.dart
│ ├── user.g.dart
│ ├── bill.g.dart
│ ├── group.g.dart
│ ├── statistics.dart
│ └── statistics.g.dart
├── stores
│ ├── base.dart
│ ├── bill.g.dart
│ ├── stores.dart
│ ├── base.g.dart
│ ├── limit.g.dart
│ ├── limit.dart
│ ├── bill.dart
│ ├── task.g.dart
│ ├── group.g.dart
│ ├── reminder.g.dart
│ ├── statistics.dart
│ ├── statistics.g.dart
│ ├── task.dart
│ ├── user.g.dart
│ ├── group.dart
│ ├── reminder.dart
│ └── user.dart
├── pay-channels.dart
├── pages
│ ├── bill
│ │ ├── detail.dart
│ │ └── month-bill-list.dart
│ ├── tab
│ │ └── analysis
│ │ │ └── tooltip.dart
│ ├── limit
│ │ └── limit-set.dart
│ ├── user
│ │ ├── login.dart
│ │ └── forgot.dart
│ ├── group
│ │ └── groups.dart
│ ├── task
│ │ └── tasks.dart
│ └── reminder
│ │ └── reminders.dart
├── event.dart
├── widgets
│ ├── empty.dart
│ └── pop-menu.dart
├── router.dart
├── adaptor.dart
├── colors.dart
├── api.dart
├── http
│ └── http-util.dart
├── bottom_navigation_widget.dart
├── util.dart
├── methods-icons.dart
├── iconfont.dart
└── main.dart
├── screenshoots
├── mine.png
├── index.png
├── wealth.png
└── analysis.png
├── .metadata
├── local.properties
├── .vscode
└── launch.json
├── README.md
├── .flutter-plugins-dependencies
├── .gitignore
└── pubspec.yaml
/android/settings_aar.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/ios/Runner/Runner-Bridging-Header.h:
--------------------------------------------------------------------------------
1 | #import "GeneratedPluginRegistrant.h"
--------------------------------------------------------------------------------
/lib/fonts/font.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/fonts/font.ttf
--------------------------------------------------------------------------------
/lib/assets/avatar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/assets/avatar.png
--------------------------------------------------------------------------------
/lib/assets/circle.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/assets/circle.png
--------------------------------------------------------------------------------
/lib/assets/limit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/assets/limit.png
--------------------------------------------------------------------------------
/lib/assets/task.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/assets/task.png
--------------------------------------------------------------------------------
/screenshoots/mine.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/screenshoots/mine.png
--------------------------------------------------------------------------------
/lib/assets/reminder.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/lib/assets/reminder.png
--------------------------------------------------------------------------------
/screenshoots/index.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/screenshoots/index.png
--------------------------------------------------------------------------------
/screenshoots/wealth.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/screenshoots/wealth.png
--------------------------------------------------------------------------------
/screenshoots/analysis.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/screenshoots/analysis.png
--------------------------------------------------------------------------------
/android/app/src/main/res/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Flutter/Debug.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/gradle.properties:
--------------------------------------------------------------------------------
1 | org.gradle.jvmargs=-Xmx1536M
2 | android.enableR8=true
3 | android.useAndroidX=true
4 | android.enableJetifier=true
5 |
--------------------------------------------------------------------------------
/ios/Flutter/Release.xcconfig:
--------------------------------------------------------------------------------
1 | #include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
2 | #include "Generated.xcconfig"
3 |
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-hdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-ldpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-ldpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-mdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-1024.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20-ipad.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29-ipad.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-20@2x-ipad.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon-29@2x-ipad.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/rwson/bill/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
--------------------------------------------------------------------------------
/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/android/gradle/wrapper/gradle-wrapper.properties:
--------------------------------------------------------------------------------
1 | #Fri Jun 23 08:50:38 CEST 2017
2 | distributionBase=GRADLE_USER_HOME
3 | distributionPath=wrapper/dists
4 | zipStoreBase=GRADLE_USER_HOME
5 | zipStorePath=wrapper/dists
6 | distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip
7 |
--------------------------------------------------------------------------------
/ios/Runner.xcworkspace/contents.xcworkspacedata:
--------------------------------------------------------------------------------
1 |
2 |
4 |
6 |
7 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/.metadata:
--------------------------------------------------------------------------------
1 | # This file tracks properties of this Flutter project.
2 | # Used by Flutter tool to assess capabilities and perform upgrades etc.
3 | #
4 | # This file should be version controlled and should not be manually edited.
5 |
6 | version:
7 | revision: 68587a0916366e9512a78df22c44163d041dd5f3
8 | channel: stable
9 |
10 | project_type: app
11 |
--------------------------------------------------------------------------------
/lib/assets.dart:
--------------------------------------------------------------------------------
1 | // 静态资源
2 | class Assets {
3 | static String iconAvatar = 'lib/assets/avatar.png';
4 |
5 | static String iconCircle = 'lib/assets/circle.png';
6 |
7 | static String iconLimit = 'lib/assets/limit.png';
8 |
9 | static String iconReminder = 'lib/assets/reminder.png';
10 |
11 | static String iconTask = 'lib/assets/task.png';
12 | }
13 |
--------------------------------------------------------------------------------
/lib/bean/limit.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 |
3 | part 'limit.g.dart';
4 |
5 | @JsonSerializable()
6 | class Limit {
7 | final int limit;
8 |
9 | Limit([this.limit]);
10 |
11 | factory Limit.fromJson(Map json) => _$LimitFromJson(json);
12 |
13 | Map toJson() => _$LimitToJson(this);
14 | }
15 |
--------------------------------------------------------------------------------
/android/app/src/debug/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/local.properties:
--------------------------------------------------------------------------------
1 | ## This file must *NOT* be checked into Version Control Systems,
2 | # as it contains information specific to your local configuration.
3 | #
4 | # Location of the SDK. This is only used by Gradle.
5 | # For customization when using a Version Control System, please read the
6 | # header note.
7 | #Tue Nov 19 09:20:46 CST 2019
8 | sdk.dir=/Users/rwson/My/sdks/android
9 |
--------------------------------------------------------------------------------
/android/app/src/profile/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
3 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | // Use IntelliSense to learn about possible attributes.
3 | // Hover to view descriptions of existing attributes.
4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5 | "version": "0.2.0",
6 | "configurations": [
7 | {
8 | "name": "Flutter",
9 | "request": "launch",
10 | "type": "dart"
11 | }
12 | ]
13 | }
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md:
--------------------------------------------------------------------------------
1 | # Launch Screen Assets
2 |
3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory.
4 |
5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
--------------------------------------------------------------------------------
/android/app/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
--------------------------------------------------------------------------------
/android/app/src/main/kotlin/com/rwson/bill/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package com.rwson.bill
2 |
3 | import android.os.Bundle
4 |
5 | import io.flutter.app.FlutterActivity
6 | import io.flutter.plugins.GeneratedPluginRegistrant
7 |
8 | class MainActivity : FlutterActivity() {
9 | override fun onCreate(savedInstanceState: Bundle?) {
10 | super.onCreate(savedInstanceState)
11 | GeneratedPluginRegistrant.registerWith(this)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/ios/Runner/AppDelegate.swift:
--------------------------------------------------------------------------------
1 | import UIKit
2 | import Flutter
3 |
4 | @UIApplicationMain
5 | @objc class AppDelegate: FlutterAppDelegate {
6 | override func application(
7 | _ application: UIApplication,
8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
9 | ) -> Bool {
10 | GeneratedPluginRegistrant.register(with: self)
11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions)
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/lib/stores/base.dart:
--------------------------------------------------------------------------------
1 | import 'package:mobx/mobx.dart';
2 |
3 | part 'base.g.dart';
4 |
5 | class BaseStore = _BaseStore with _$BaseStore;
6 |
7 | abstract class _BaseStore with Store {
8 | @observable
9 | bool loading = false;
10 |
11 | @action
12 | bool switchLoading(bool isLoading) {
13 | // if (isLoading) {
14 | // LoadingFlipping.circle();
15 | // }
16 | if (isLoading != loading) {
17 | loading = isLoading;
18 | }
19 | return loading;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/android/app/src/main/res/drawable/launch_background.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
12 |
--------------------------------------------------------------------------------
/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images": [
3 | {
4 | "idiom": "universal",
5 | "filename": "LaunchImage.png",
6 | "scale": "1x"
7 | },
8 | {
9 | "idiom": "universal",
10 | "filename": "LaunchImage@2x.png",
11 | "scale": "2x"
12 | },
13 | {
14 | "idiom": "universal",
15 | "filename": "LaunchImage@3x.png",
16 | "scale": "3x"
17 | }
18 | ],
19 | "info": {
20 | "version": 1,
21 | "author": "xcode"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/lib/bean/limit.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'limit.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | Limit _$LimitFromJson(Map json) {
10 | return Limit(
11 | json['limit'] as int,
12 | );
13 | }
14 |
15 | Map _$LimitToJson(Limit instance) => {
16 | 'limit': instance.limit,
17 | };
18 |
--------------------------------------------------------------------------------
/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
3 | def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
4 |
5 | def plugins = new Properties()
6 | def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
7 | if (pluginsFile.exists()) {
8 | pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
9 | }
10 |
11 | plugins.each { name, path ->
12 | def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
13 | include ":$name"
14 | project(":$name").projectDir = pluginDirectory
15 | }
16 |
--------------------------------------------------------------------------------
/lib/bean/reminder.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 |
3 | part 'reminder.g.dart';
4 |
5 | @JsonSerializable()
6 | class ReminderItem {
7 | final int id;
8 | final String frequency;
9 | final String time;
10 | final String rule;
11 | final int back;
12 |
13 | ReminderItem(this.id, this.frequency, this.time, this.rule, this.back);
14 |
15 | factory ReminderItem.fromJson(Map json) =>
16 | _$ReminderItemFromJson(json);
17 |
18 | Map toJson() => _$ReminderItemToJson(this);
19 | }
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # bill
2 |
3 | 基于Flutter开发的一款记账
4 |
5 | ## 所需依赖
6 |
7 | - fl_chart: Flutter图表
8 |
9 | - flutter_daydart: Flutter端的moment
10 |
11 | - fluro: Flutter页面路由
12 |
13 | - flutter_animation_progress_bar: Flutter进度条
14 |
15 | - flutter_statusbar_manager: Flutter状态栏管理器
16 |
17 | - flutter_swiper: Flutter端的swiper
18 |
19 | - flutter_datetime_picker: Flutter日期选择器
20 |
21 |
22 |
23 | ## 主要界面
24 |
25 | 
26 |
27 | 
28 |
29 | 
30 |
31 | 
32 |
33 |
34 |
35 |
--------------------------------------------------------------------------------
/lib/pay-channels.dart:
--------------------------------------------------------------------------------
1 | class ChannelItem {
2 | String type;
3 | String desc;
4 |
5 | ChannelItem({this.type, this.desc});
6 | }
7 |
8 | List _payChannels = [
9 | ChannelItem(type: 'pc-1', desc: '支付宝'),
10 | ChannelItem(type: 'pc-2', desc: '微信'),
11 | ChannelItem(type: 'pc-3', desc: '现金'),
12 | ChannelItem(type: 'pc-4', desc: '其他')
13 | ];
14 |
15 | Map _payChannelMaps = { for (var v in _payChannels) v.type: v };
16 |
17 | class PayChannels {
18 | static List payChannels = _payChannels;
19 |
20 | static Map payChannelMaps = _payChannelMaps;
21 | }
22 |
23 |
--------------------------------------------------------------------------------
/.flutter-plugins-dependencies:
--------------------------------------------------------------------------------
1 | {"_info":"// This is a generated file; do not edit or check into version control.","dependencyGraph":[{"name":"device_info","dependencies":[]},{"name":"flt_telephony_info","dependencies":[]},{"name":"flutter_plugin_android_lifecycle","dependencies":[]},{"name":"flutter_statusbar_manager","dependencies":[]},{"name":"image_picker","dependencies":["flutter_plugin_android_lifecycle"]},{"name":"mobpush_plugin","dependencies":[]},{"name":"path_provider","dependencies":[]},{"name":"shared_preferences","dependencies":["shared_preferences_macos","shared_preferences_web"]},{"name":"shared_preferences_macos","dependencies":[]},{"name":"shared_preferences_web","dependencies":[]}]}
--------------------------------------------------------------------------------
/ios/Podfile.lock:
--------------------------------------------------------------------------------
1 | PODS:
2 | - Flutter (1.0.0)
3 | - flutter_statusbar_manager (0.0.1):
4 | - Flutter
5 |
6 | DEPENDENCIES:
7 | - Flutter (from `.symlinks/flutter/ios`)
8 | - flutter_statusbar_manager (from `.symlinks/plugins/flutter_statusbar_manager/ios`)
9 |
10 | EXTERNAL SOURCES:
11 | Flutter:
12 | :path: ".symlinks/flutter/ios"
13 | flutter_statusbar_manager:
14 | :path: ".symlinks/plugins/flutter_statusbar_manager/ios"
15 |
16 | SPEC CHECKSUMS:
17 | Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
18 | flutter_statusbar_manager: 18588ba7dce7a28a538363d2a9989f9ede4a6710
19 |
20 | PODFILE CHECKSUM: b6a0a141693093b304368d08511b46cf3d1d0ac5
21 |
22 | COCOAPODS: 1.8.4
23 |
--------------------------------------------------------------------------------
/lib/pages/bill/detail.dart:
--------------------------------------------------------------------------------
1 | import 'package:bill/adaptor.dart';
2 | import 'package:bill/colors.dart';
3 | import 'package:flutter/material.dart';
4 |
5 | class TaskPage extends StatefulWidget {
6 | @override
7 | State createState() => TaskState();
8 | }
9 |
10 | class TaskState extends State {
11 | @override
12 | void initState() {
13 | super.initState();
14 | }
15 |
16 | @override
17 | Widget build(BuildContext context) {
18 | return Scaffold(
19 | appBar: AppBar(
20 | title: Text('账单详情',
21 | style: TextStyle(
22 | fontSize: Adaptor.px(32.0),
23 | color: AppColors.appTextDark))));
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/bean/task.dart:
--------------------------------------------------------------------------------
1 | import 'package:json_annotation/json_annotation.dart';
2 |
3 | part 'task.g.dart';
4 |
5 | @JsonSerializable()
6 | class TaskItem {
7 | final int id;
8 | final String frequency;
9 | final String time;
10 | final String amount;
11 | final String billType;
12 | final String category;
13 | final String remark;
14 | final String confirm;
15 | final String payMethod;
16 |
17 | TaskItem([this.id,
18 | this.frequency,
19 | this.time,
20 | this.amount,
21 | this.billType,
22 | this.category,
23 | this.remark,
24 | this.confirm,
25 | this.payMethod]);
26 |
27 | factory TaskItem.fromJson(Map json) => _$TaskItemFromJson(json);
28 |
29 | Map toJson() => _$TaskItemToJson(this);
30 | }
31 |
--------------------------------------------------------------------------------
/lib/bean/reminder.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'reminder.dart';
4 |
5 | // **************************************************************************
6 | // JsonSerializableGenerator
7 | // **************************************************************************
8 |
9 | ReminderItem _$ReminderItemFromJson(Map json) {
10 | return ReminderItem(
11 | json['id'] as int,
12 | json['frequency'] as String,
13 | json['time'] as String,
14 | json['rule'] as String,
15 | json['back'] as int,
16 | );
17 | }
18 |
19 | Map _$ReminderItemToJson(ReminderItem instance) =>
20 | {
21 | 'id': instance.id,
22 | 'frequency': instance.frequency,
23 | 'time': instance.time,
24 | 'rule': instance.rule,
25 | 'back': instance.back,
26 | };
27 |
--------------------------------------------------------------------------------
/ios/Flutter/AppFrameworkInfo.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | App
9 | CFBundleIdentifier
10 | io.flutter.flutter.app
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | App
15 | CFBundlePackageType
16 | FMWK
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0
23 | MinimumOSVersion
24 | 8.0
25 |
26 |
27 |
--------------------------------------------------------------------------------
/lib/stores/bill.g.dart:
--------------------------------------------------------------------------------
1 | // GENERATED CODE - DO NOT MODIFY BY HAND
2 |
3 | part of 'bill.dart';
4 |
5 | // **************************************************************************
6 | // StoreGenerator
7 | // **************************************************************************
8 |
9 | // ignore_for_file: non_constant_identifier_names, unnecessary_lambdas, prefer_expression_function_bodies, lines_longer_than_80_chars, avoid_as, avoid_annotating_with_dynamic
10 |
11 | mixin _$BillStore on _BillStore, Store {
12 | final _$createBillAsyncAction = AsyncAction('createBill');
13 |
14 | @override
15 | Future createBill(Map bill) {
16 | return _$createBillAsyncAction.run(() => super.createBill(bill));
17 | }
18 |
19 | final _$getMonthBillsAsyncAction = AsyncAction('getMonthBills');
20 |
21 | @override
22 | Future getMonthBills(Map param) {
23 | return _$getMonthBillsAsyncAction.run(() => super.getMonthBills(param));
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/lib/event.dart:
--------------------------------------------------------------------------------
1 | typedef void EventCallback(arg);
2 |
3 | class EventBus {
4 | EventBus._internal();
5 |
6 | //保存单例
7 | static EventBus _singleton = new EventBus._internal();
8 |
9 | factory EventBus() => _singleton;
10 | var _emap = new Map