Code Monkey home page Code Monkey logo

flutter_admin's Introduction

FLUTTER_ADMIN

GitHub GitHub release (latest by date) GitHub repo size Flutter version

简体中文 | English

使用flutter实现的一个后台管理系统。本项目为前端,对应的后端为 https://github.com/cairuoyu/flutter_admin_backend

本项目作为一个基于Flutter开发Web、Android、iOS、Windows、macOS、Linux等多端应用程序的模板、例子、演示,在功能上提供多种实现方式,而且不断地在完善。通过这个项目,可以高效学习Flutter或快速地开发一个新的跨端应用。


功能

  • 用户注册
  • 登录登出
  • 人脸检测
  • 功能菜单
  • Dashboard
  • 角色管理
  • 用户管理
  • 部门管理
  • 菜单管理
  • 文章管理
  • 图片上传
  • 视频上传
  • 人员管理
  • 数据字典管理
  • 留言
  • 我的信息
  • 图表
  • 国际化
  • 语言切换
  • 主题切换
  • 字体切换
  • 独立配置文件
  • 组件封装
  • 导入导出Excel

技术

名称 技术
基础包 cry
路由管理 Flutter Navigator 2
状态管理 GetX
缓存管理 GetStorage
网络请求 Dio
图表 syncfusion_flutter_charts
富文本 flutter_markdown
选择器 image_picker、video_player、file_picker、flutter_colorpicker
人脸识别 camera、google_ml_kit
认证 JWT

代码结构

├─config    配置文件
└─lib
    ├─api   服务接口
    ├─common    公共类
    ├─constants     常量类
    ├─data      数据类
    ├─enum      枚举类
    ├─generated     工具自动生成的国际化代码
    │  └─intl
    ├─l10n      国际化配置,修改后工具生成代码到generated文件夹下
    ├─models    模型类
    ├─pages     页面,各文件夹对应各功能
    │  ├─common
    │  ├─dash
    │  ├─dict
    │  ├─icon
    │  ├─image
    │  ├─layout
    │  ├─menu
    │  ├─message
    │  ├─person
    │  ├─role
    │  ├─subsystem
    │  ├─userInfo
    │  └─video
    └─utils     工具类

安装

flutter pub get
flutter create .

运行

# Web
flutter run -d chrome

# Windows
flutter run -d windows

打包

# Web
flutter build web

# Windows
flutter build windows

# Android
flutter build apk

live demo

http://www.cairuoyu.com/flutter_admin

web

image image image image image image image image image

android

dashboard

'setting

windows

image

加入讨论组

加我微信拉你入群

申请时请添加备注:flutter_admin

image

QQ

851796663

赞助

Paypal Me

flutter_admin's People

Contributors

12cry avatar andymillernz avatar cairuoyu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flutter_admin's Issues

我的信息页面,在无路由状态是点不开

打开了我的信息页面后,切换到无路由状态,就激活不了我的信息页面了。
另外,多开几个页面,在路由和无路由之间切换,很大情况是无法正常关闭页面。

页面状态无法保持

页面切换后,数据清空了。目前页面是用个content,需要改成TabBarView+AutomaticKeepAliveClientMixin

编译成windows后,页面切换有跳动

比如现在打开角色管理和子系统管理两个页面。
点击顶部的tab栏,页面切换,跳动厉害。在切换过程中,还看到了登录的页面。
刚看了下,web也是有类似体验。这个建议改改。

另外,就是table/grid,建议满宽,按钮高度适当放大点。
可以参考下 https://github.com/syncfusion/flutter-widgets

做得不错,加油!

startup errors

After starting the app, I get the following errors, do i miss something?

i entered:
flutter create .
flutter run -d chrome

lib/pages/layout/layoutNoRoutes.dart:11:8: Error: Error when reading 'lib/utils/LocalStorageUtil.dart': No such file or directory
import 'package:flutter_admin/utils/LocalStorageUtil.dart';
^
lib/pages/menu/menuMenu.dart:5:8: Error: Error when reading 'lib/components/CryTreeTable.dart': No such file or directory
import 'package:flutter_admin/components/CryTreeTable.dart';
^
lib/pages/layout/layoutNoRoutes.dart:173:5: Error: The getter 'LocalStorageUtil' isn't defined for the class '_LayoutState'.

  • '_LayoutState' is from 'package:flutter_admin/pages/layout/layoutNoRoutes.dart' ('lib/pages/layout/layoutNoRoutes.dart').
    Try correcting the name to the name of an existing getter, or defining a getter or field named 'LocalStorageUtil'.
    LocalStorageUtil.set(Constant.KEY_TOKEN, null);
    ^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:29:10: Error: 'CryTreeTableColumnData' isn't a type.
    List columnData = [
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:30:7: Error: The method 'CryTreeTableColumnData' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTableColumnData'.
    CryTreeTableColumnData('名称', (Menu v) => v.name),
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:31:7: Error: The method 'CryTreeTableColumnData' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTableColumnData'.
    CryTreeTableColumnData('英文名', (Menu v) => v.nameEn),
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:32:7: Error: The method 'CryTreeTableColumnData' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTableColumnData'.
    CryTreeTableColumnData('URL', (Menu v) => v.url),
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:33:7: Error: The method 'CryTreeTableColumnData' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTableColumnData'.
    CryTreeTableColumnData('顺序号', (Menu v) => v.orderBy?.toString(), width: 80),
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:34:7: Error: The method 'CryTreeTableColumnData' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTableColumnData'.
    CryTreeTableColumnData('备注', (Menu v) => v.remark, width: 300),
    ^^^^^^^^^^^^^^^^^^^^^^
    lib/pages/menu/menuMenu.dart:36:18: Error: The method 'CryTreeTable' isn't defined for the class '_MenuMenuState'.
  • '_MenuMenuState' is from 'package:flutter_admin/pages/menu/menuMenu.dart' ('lib/pages/menu/menuMenu.dart').
    Try correcting the name to the name of an existing method, or defining a method named 'CryTreeTable'.
    var result = CryTreeTable(
    ^^^^^^^^^^^^

Error while trying to load an asset: Failed to load asset at "assets/config/application.yaml" (404)

💪 Running with sound null safety 💪
Debug service listening on ws://127.0.0.1:49194/5o_az14jCtU=/ws
Error while trying to load an asset: Failed to load asset at "assets/config/application.yaml" (404)
Error: Unable to load asset: "config/application.yaml".
dart-sdk/lib/internal/js_dev_runtime/private/ddc_runtime/errors.dart 266:49 throw
packages/flutter/src/services/asset_bundle.dart 254:9
dart-sdk/lib/async/zone.dart 1660:54 runUnary
dart-sdk/lib/async/future_impl.dart 147:18 handleValue
dart-sdk/lib/async/future_impl.dart 767:44 handleValueCallback
dart-sdk/lib/async/future_impl.dart 796:13 _propagateToListeners
dart-sdk/lib/async/future_impl.dart 567:5 [_completeWithValue]
dart-sdk/lib/async/future_impl.dart 640:7 callback
dart-sdk/lib/async/schedule_microtask.dart 40:11 _microtaskLoop
dart-sdk/lib/async/schedule_microtask.dart 49:5 _startMicrotaskLoop
dart-sdk/lib/_internal/js_dev_runtime/patch/async_patch.dart 166:15

UI 建议: 配色和字体调整一下

  • 项目整体完成度很高哇, 赞👍🏻
  • 使用了 GetX, 好评.
    • 不过搜索了一下代码, 好像只有 layout, 用了一下 GetX, 还没用起来哇.
    • 建议多用 GetX 写View, 以及路由接管, 数据状态管理.
    • 早点用 GetX, 早点解脱. 😄
  • 几个小建议:
    • UI 的配色, 不够好看.
    • 字体这个实在太丑了. 还是建议使用标准字体, 极度不适哇.

几个 flutter 的 Admin UI:

GetX 全家桶:

Run web 報錯

如下訊息, 再麻煩您了. 謝謝

很棒的後台展示.

ENV: MacOS 11.4, M1

`
$ flutter run -d chrome --web-renderer html

Launching lib/main.dart on Chrome in debug mode...
lib/common/routes.dart:83:19: Error: The argument type 'List<GetPage>?' can't be assigned to the parameter type
'List<GetPage>' because 'List<GetPage>?' is nullable and 'List<GetPage>' isn't.

  • 'List' is from 'dart:core'.
  • 'GetPage' is from 'package:get/get_navigation/src/routes/get_route.dart'
    ('../../Downloads/flutter/.pub-cache/hosted/pub.dartlang.org/get-4.2.4/lib/get_navigation/src/routes/get_route.dart').
    children: layoutPages,
    ^
    Waiting for connection from debug service on Chrome... 19.8s
    Failed to compile application.
    `

网站无法登陆

用admin登陆,提示DioError [DioErrorType.response]: XMLHttpRequest error.

flutter pub get cry failed

[flutter_admin] flutter pub get
Resolving dependencies...
Because cry >=1.0.0 depends on intl ^0.17.0 and every version of flutter_localizations from sdk depends on intl 0.18.0, cry >=1.0.0 is incompatible with flutter_localizations from sdk.
So, because flutter_admin depends on both flutter_localizations from sdk and cry 1.2.0, version solving failed.
exit code 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.