123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- import 'package:flutter/material.dart';
- import 'package:liftmanager/internal/heavy/model/heavy_count_item.dart';
- import 'package:liftmanager/internal/heavy/provider/heavy_page.dart';
- import 'package:liftmanager/internal/heavy/widgets/HeavyList.dart';
- import 'package:liftmanager/net/api_service.dart';
- import 'package:liftmanager/res/resources.dart';
- import 'package:liftmanager/utils/theme_utils.dart';
- import 'package:liftmanager/utils/toast.dart';
- import 'package:liftmanager/widgets/app_bar.dart';
- import 'package:provider/provider.dart' as p;
- class HeavyListPage extends StatefulWidget {
- HeavyListPage({this.topInto = false});
- final bool topInto;
- @override
- HeavyListPageState createState() => HeavyListPageState();
- }
- class HeavyListPageState extends State<HeavyListPage>
- with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
- HeavyPageProvider provider = HeavyPageProvider();
- // List<Map> tabs = [{"id":0,"name":"未开始"},{"id":1,"name":"施工中"},{"id":2,"name":"待审核"},{"id":3,"name":"已完成"}];
- TabController _tabController;
- PageController _pageController = PageController(initialPage: 0);
- HeavyCountItem countItem = HeavyCountItem();
- @override
- void initState() {
- super.initState();
- _tabController = new TabController(vsync: this, length: 4);
- // if(widget.topInto){
- // _tabController.animateTo(1);
- // _pageController = PageController(initialPage: 1);
- // }else{
- _pageController = PageController(initialPage: 0);
- // }
- getCount();
- }
- getCount() {
- ApiService(context: context).heavyCount(onSuccess: (res) {
- if (res != null) {
- countItem = res;
- setState(() {});
- }
- }, onError: (code, msg) {
- toasts(msg);
- });
- }
- @override
- void dispose() {
- _tabController.dispose();
- super.dispose();
- }
- _onPageChange(int index) {
- _tabController.animateTo(index);
- provider.setIndex(index);
- }
- @override
- Widget build(BuildContext context) {
- return p.ChangeNotifierProvider<HeavyPageProvider>(
- create: (_) => provider,
- child: Scaffold(
- appBar: MyAppBar(
- centerTitle: "大修管理",
- ),
- body: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: <Widget>[
- Container(
- // 隐藏点击效果
- color:ThemeUtils.getTabsBg(context),
- child: TabBar(
- onTap: (index) {
- if (!mounted) {
- return;
- }
- _pageController.jumpToPage(index);
- },
- isScrollable: false,
- controller: _tabController,
- labelStyle: TextStyles.textBold18,
- indicatorSize: TabBarIndicatorSize.label,
- labelPadding: const EdgeInsets.all(0),
- unselectedLabelColor: Colours.text_gray,
- labelColor: Theme.of(context).primaryColor,
- indicatorPadding:
- const EdgeInsets.only(left: 5.0, right: 5.0),
- tabs: <Widget>[
- _TabView("未开始", "(${countItem.noStart})", 0),
- _TabView("施工中", "(${countItem.abuilding})", 1),
- _TabView("待审核", "(${countItem.checkPending})", 2),
- _TabView("已完成", "(${countItem.complete})", 3),
- ],
- ),
- ),
- Gaps.line,
- Expanded(
- child: PageView.builder(
- key: const Key('pageView'),
- itemCount: 4,
- onPageChanged: _onPageChange,
- controller: _pageController,
- itemBuilder: (BuildContext context, int index) {
- return Container(
- color: ThemeUtils.getBackgroundColor(context),
- child: HeavyList(index: index+1));
- },
- ),
- )
- ],
- ),
- ),
- );
- }
- @override
- bool get wantKeepAlive => true;
- }
- class _TabView extends StatelessWidget {
- const _TabView(this.tabName, this.tabSub, this.index);
- final String tabName;
- final String tabSub;
- final int index;
- @override
- Widget build(BuildContext context) {
- return p.Consumer<HeavyPageProvider>(
- builder: (_, provider, child) {
- return Tab(
- child: SizedBox(
- child: Row(
- crossAxisAlignment: CrossAxisAlignment.center,
- mainAxisAlignment: MainAxisAlignment.center,
- children: <Widget>[
- Text(
- tabName,
- style: TextStyle(fontSize: 15),
- ),
- Padding(
- padding: const EdgeInsets.only(top: 1.0),
- child: Text(tabSub,
- style: TextStyle(fontSize: Dimens.font_sp12)),
- ),
- ],
- ),
- ));
- },
- );
- }
- }
- //class HeavyListPage extends StatefulWidget {
- // @override
- // HeavyListPageState createState() => HeavyListPageState();
- //}
- //
- //class HeavyListPageState
- // extends BasePageState<HeavyListPage, HeavyListProvider>
- // with SingleTickerProviderStateMixin, AutomaticKeepAliveClientMixin {
- // BaseListProvider<ProjectListItem> provider =
- // BaseListProvider<ProjectListItem>();
- //
- // String _keyword = "";
- // int _page = 1;
- //
- // @override
- // void initState() {
- // /// 默认为加载中状态,本页面场景默认为空
- // provider.setStateTypeNotNotify(StateType.loading);
- // super.initState();
- // _onRefresh();
- // }
- //
- // ///电梯列表
- // void _liftList(id) {
- // NavigatorUtils.push(context, HeavyRouter.heavyLiftListPage + "?id=${id}");
- // }
- //
- // ///项目详情
- // void _projectDetail(id) {
- // NavigatorUtils.push(context, "${HeavyRouter.heavyDetailPage}?id=${id}");
- // }
- //
- // @override
- // Widget build(BuildContext context) {
- // return ChangeNotifierProvider<BaseListProvider<ProjectListItem>>(
- // create: (_) => provider,
- // child: Scaffold(
- // appBar: MyAppBar(
- // centerTitle: "大修模块",
- //// actions: <Widget>[
- //// FlatButton(
- //// child: Text("创建", key: const Key('actionName')),
- //// textColor: Colours.dark_text,
- //// highlightColor: Colors.transparent,
- //// onPressed: () {
- //// NavigatorUtils.push(context, HeavyRouter.heavyCreatePage);
- //// },
- //// )
- //// ],
- // ),
- // body: Container(
- // color: ThemeUtils.getBackgroundColor(context),
- // child: Column(
- // crossAxisAlignment: CrossAxisAlignment.start,
- // children: <Widget>[
- // Container(
- // color: ThemeUtils.getBackgroundColor(context),
- // padding:
- // EdgeInsets.only(top: 10, bottom: 10, left: 15, right: 15),
- // child: SearchBar(
- // hintText: "搜索大修项目",
- // autofocus: false,
- // onPressed: (text) {
- // _keyword = text;
- // provider.setStateType(StateType.loading);
- // _page = 1;
- // presenter.searchProject(context,_keyword, _page, true);
- // },
- // ),
- // ),
- // Expanded(
- // flex: 1,
- // child: Consumer<BaseListProvider<ProjectListItem>>(
- // builder: (_, provider, __) {
- // return MyListView(
- // key: Key('project_list'),
- // itemCount: provider.list.length,
- // stateType: provider.stateType,
- // onRefresh: _onRefresh,
- // loadMore: _loadMore,
- // hasMore: provider.hasMore,
- // itemBuilder: (_, index) {
- // return InkWell(
- // onTap: () {
- // _projectDetail(provider.list[index].projectId);
- // },
- // child: Container(
- // margin: EdgeInsets.fromLTRB(15, 5, 15, 5),
- // decoration: BoxDecoration(
- // color: Colors.white,
- // borderRadius: BorderRadius.circular(6.0),
- // ),
- // padding: const EdgeInsets.only(bottom: 10),
- // child: Column(
- // children: <Widget>[
- // Container(
- // decoration: BoxDecoration(
- // border: Border(
- // bottom: BorderSide(
- // width: 0.5,
- // color: Colours.text_gray_c),
- // )),
- // padding: EdgeInsets.only(left: 12),
- // child: Row(
- // children: <Widget>[
- // Expanded(
- // flex: 1,
- // child: Text(
- // provider
- // .list[index].projectName,
- // style: TextStyles.text15,
- // overflow: TextOverflow.ellipsis,
- // softWrap: false, //单行显示
- // )),
- // MyButton(
- // key: const Key('lift_list'),
- // onPressed: () {
- // _liftList(provider
- // .list[index].projectId);
- // },
- // height: 25,
- // fontSize: 11,
- // colors: [
- // Colours.app_main,
- // Colours.app_main
- // ],
- // borderWidth: 0.5,
- // borderColor: Colours.app_main,
- // text: "查看电梯",
- // )
- // ],
- // ),
- // ),
- // lineTxt("大修单编号",
- // "${provider.list[index].projectCode}"),
- // lineTxt(
- // "项目用途",
- // "${Constant.projectUsageText[int.parse(provider.list[index].projectUsage)]}",
- // ),
- // lineTxt("台量",
- // "${provider.list[index].actualNum}")
- // ],
- // ),
- // ));
- // },
- // );
- // }))
- // ],
- // ),
- // ),
- // ));
- // }
- //
- // Widget lineTxt(title, value) {
- // return Container(
- // padding: EdgeInsets.only(left: 12, top: 5, right: 12),
- // child: Row(
- // children: <Widget>[
- // Text("${title}",
- // style: TextStyle(fontSize: 13, color: Colours.dark_text_gray)),
- // Expanded(
- // flex: 1,
- // child: Text(
- // "${value}",
- // textAlign: TextAlign.right,
- // style: TextStyle(fontSize: 13, color: Colours.dark_text_gray),
- // ),
- // )
- // ],
- // ),
- // );
- // }
- //
- // Future _onRefresh() async {
- // _page = 1;
- // await presenter.searchProject(context,_keyword, _page, false);
- // }
- //
- // Future _loadMore() async {
- // _page++;
- // await presenter.searchProject(context,_keyword, _page, false);
- // }
- //
- // @override
- // HeavyListProvider createPresenter() {
- // return HeavyListProvider();
- // }
- //
- // @override
- // bool get wantKeepAlive => true;
- //}
|