Flutter网站展示插件growerp_website的使用
Flutter网站展示插件growerp_website的使用
growerp_website
插件用于配置 GrowERP Flutter 前端系统创建的网站。以下是该插件的主要功能:
- 更改网站将显示在其下的域名。
- 更改网站的主标题。
- 输入 Google 统计 ID 以获取出色的访问者统计信息。
- 使用 Markdown 格式输入带图像的文本页面。
- 定义将在网站上显示的产品类别。
- 定义在首页“特色产品”或“优惠活动”部分中显示的产品。
- 能够上传 Obsidian/Logseq 存储库。
集成测试
集成测试可在示例组件中找到。它使用本地后端系统。
您也可以使用我们的测试后端系统,设置在 example/assets/cfg/app_settings.json
文件中:
"databaseUrlDebug": "https://backend.growerp.org",
"chatUrlDebug": "wss://chat.growerp.org"
启动测试使用 melos
:
melos build_all
melos l10n
cd example
flutter test integration_test
使用示例组件
与集成测试一样,您可以使用本地后端或我们的测试后端。在可以使用核心组件之前,您需要创建一个公司并接收一封包含密码的电子邮件。使用此密码登录,核心组件将出现在主菜单中。
以下是一个完整的示例代码,展示了如何使用 growerp_website
插件:
/*
* This GrowERP software is in the public domain under CC0 1.0 Universal plus a
* Grant of Patent License.
*
* To the extent possible under law, the author(s) have dedicated all
* copyright and related and neighboring rights to this software to the
* public domain worldwide. This software is distributed without any
* warranty.
*
* You should have received a copy of the CC0 Public Domain Dedication
* along with this software (see the LICENSE.md file). If not, see
* <http://creativecommons.org/publicdomain/zero/1.0/>.
*/
// ignore_for_file: depend_on_referenced_packages
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:global_configuration/global_configuration.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:growerp_core/growerp_core.dart';
import 'package:growerp_website/growerp_website.dart';
import 'package:growerp_models/growerp_models.dart';
import 'package:hive_flutter/hive_flutter.dart';
Future main() async {
WidgetsFlutterBinding.ensureInitialized();
await GlobalConfiguration().loadFromAsset('app_settings');
await Hive.initFlutter();
RestClient restClient = RestClient(await buildDioClient());
ChatServer chatServer = ChatServer();
Bloc.observer = AppBlocObserver();
runApp(TopApp(
restClient: restClient,
classificationId: 'AppAdmin',
chatServer: chatServer,
title: "GrowERP Website",
router: generateRoute,
menuOptions: menuOptions,
extraDelegates: const [WebsiteLocalizations.delegate],
extraBlocProviders: getWebsiteBlocProviders(restClient),
));
}
// 菜单定义
List<MenuOption> menuOptions = [
MenuOption(
image: 'packages/growerp_core/images/dashBoardGrey.png',
selectedImage: 'packages/growerp_core/images/dashBoard.png',
title: '主界面',
route: '/',
userGroups: [UserGroup.admin, UserGroup.employee],
child: const MainMenuForm(),
),
MenuOption(
image: 'packages/growerp_core/images/crmGrey.png',
selectedImage: 'packages/growerp_core/images/crm.png',
title: '网站',
route: '/website',
userGroups: [UserGroup.admin, UserGroup.employee],
child: const WebsiteForm(),
),
];
// 路由
Route<dynamic> generateRoute(RouteSettings settings) {
if (kDebugMode) {
debugPrint('>>NavigateTo { ${settings.name} with: ${settings.arguments.toString()} }');
}
switch (settings.name) {
case '/':
return MaterialPageRoute(
builder: (context) => HomeForm(menuOptions: menuOptions));
case '/company':
return MaterialPageRoute(
builder: (context) => HomeForm(menuOptions: menuOptions));
case '/user':
return MaterialPageRoute(
builder: (context) => HomeForm(menuOptions: menuOptions));
case '/website':
return MaterialPageRoute(
builder: (context) => DisplayMenuOption(menuList: menuOptions, menuIndex: 1));
default:
return MaterialPageRoute(
builder: (context) => FatalErrorForm(
message: "Routing not found for request: ${settings.name}"));
}
}
// 主菜单
class MainMenuForm extends StatelessWidget {
const MainMenuForm({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return BlocBuilder<AuthBloc, AuthState>(builder: (context, state) {
if (state.status == AuthStatus.authenticated) {
// Authenticate authenticate = state.authenticate!;
return DashBoardForm(dashboardItems: [
makeDashboardItem('dbWebsite', context, menuOptions[1], []),
]);
}
return const LoadingIndicator();
});
}
}
更多关于Flutter网站展示插件growerp_website的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter网站展示插件growerp_website的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
growerp_website
是一个用于 Flutter 的插件,主要用于构建企业级网站和电子商务平台。它提供了一系列的组件和功能,帮助你快速搭建一个功能齐全的网站。以下是如何使用 growerp_website
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 growerp_website
插件的依赖。
dependencies:
flutter:
sdk: flutter
growerp_website: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 导入插件
在你的 Dart 文件中,导入 growerp_website
插件。
import 'package:growerp_website/growerp_website.dart';
3. 使用插件组件
growerp_website
提供了多个组件,你可以根据需要在你的应用中使用这些组件。以下是一些常见的用法示例:
3.1 使用 HomePage
组件
HomePage
是一个预定义的首页组件,你可以直接使用它来展示网站的主页。
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('My Website'),
),
body: HomePage(),
);
}
}
3.2 使用 ProductList
组件
ProductList
是一个用于展示产品列表的组件,你可以传递产品数据给它。
class ProductListPage extends StatelessWidget {
final List<Product> products = [
Product(name: 'Product 1', price: 10.0),
Product(name: 'Product 2', price: 20.0),
// Add more products
];
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Product List'),
),
body: ProductList(products: products),
);
}
}
3.3 使用 ContactForm
组件
ContactForm
是一个用于处理用户联系表单的组件。
class ContactPage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Contact Us'),
),
body: ContactForm(),
);
}
}
4. 运行应用
完成上述步骤后,你可以运行你的 Flutter 应用来查看 growerp_website
插件的效果。
flutter run
5. 自定义和扩展
growerp_website
提供了多个可定制的组件和选项,你可以根据项目的需求进行扩展和自定义。你可以查阅插件的文档或源代码来了解更多细节。
6. 部署
当你完成开发后,可以使用 Flutter 提供的工具将你的网站部署到 Web 服务器上。
flutter build web