privilege.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. import 'package:flutter/material.dart';
  2. import 'package:liftmanager/net/api_service.dart';
  3. import 'package:liftmanager/utils/toast.dart';
  4. import 'package:liftmanager/widgets/app_bar.dart';
  5. import 'package:provider/provider.dart';
  6. import 'package:liftmanager/internal/account/provider/user_provider.dart';
  7. import 'package:flutter_screenutil/flutter_screenutil.dart';
  8. import 'package:liftmanager/widgets/load_image.dart';
  9. import 'package:liftmanager/routers/fluro_navigator.dart';
  10. import 'package:liftmanager/common/common.dart';
  11. import 'package:liftmanager/internal/account/account_router.dart';
  12. import 'package:liftmanager/utils/time_format.dart';
  13. import 'package:liftmanager/res/resources.dart';
  14. import 'package:liftmanager/internal/wode/model/privilege_model.dart';
  15. class Privilege extends StatefulWidget {
  16. Privilege(this.id);
  17. final String id;
  18. @override
  19. State<StatefulWidget> createState() {
  20. return PrivilegeState();
  21. }
  22. }
  23. class PrivilegeState extends State<Privilege>
  24. with AutomaticKeepAliveClientMixin {
  25. UserProvider provider = UserProvider();
  26. List<MenuList> privilegeList = [];
  27. @override
  28. void initState() {
  29. getAllMenu();
  30. super.initState();
  31. }
  32. @override
  33. void dispose() {
  34. super.dispose();
  35. }
  36. void getAllMenu() {
  37. NewApiService().getAllMenu(widget.id, onSuccess: (res) {
  38. privilegeList = res;
  39. setState(() {});
  40. }, onError: (code, msg) {
  41. privilegeList = [];
  42. toasts(msg);
  43. });
  44. }
  45. List<Widget> listWidget(context) => privilegeList.map((item) {
  46. double width = MediaQuery.of(context).size.width;
  47. return GestureDetector(
  48. child: Container(
  49. padding: EdgeInsets.only(
  50. left: ScreenUtil().setWidth(15),
  51. right: ScreenUtil().setWidth(15),
  52. top: ScreenUtil().setHeight(10),
  53. bottom: ScreenUtil().setHeight(10),
  54. ),
  55. decoration: BoxDecoration(
  56. border: Border(
  57. bottom: BorderSide(width: 0.5, color: Colours.line),
  58. ),
  59. ),
  60. child: Column(
  61. crossAxisAlignment: CrossAxisAlignment.start,
  62. children: <Widget>[
  63. Text(
  64. item.name ?? '',
  65. textAlign: TextAlign.left,
  66. style: TextStyle(fontSize: ScreenUtil().setSp(15)),
  67. maxLines: 1,
  68. overflow: TextOverflow.ellipsis,
  69. ),
  70. Text(
  71. item.descr ?? '',
  72. textAlign: TextAlign.right,
  73. style: TextStyle(
  74. color: Color(0xff999999),
  75. fontSize: ScreenUtil().setSp(14),
  76. ),
  77. )
  78. ],
  79. ),
  80. ),
  81. onTap: () {
  82. // print(item);
  83. },
  84. );
  85. }).toList();
  86. @override
  87. Widget build(BuildContext context) {
  88. double width = MediaQuery.of(context).size.width;
  89. double height = MediaQuery.of(context).size.height;
  90. return ChangeNotifierProvider<UserProvider>(
  91. create: (_) => provider,
  92. child: Container(
  93. child: Scaffold(
  94. resizeToAvoidBottomPadding: false,
  95. appBar: MyAppBar(
  96. centerTitle: "会员特权",
  97. ),
  98. body: Consumer<UserProvider>(
  99. builder: (_, provider, __) {
  100. return ListView(
  101. padding: EdgeInsets.all(0.0),
  102. children: listWidget(context),
  103. );
  104. },
  105. ),
  106. ),
  107. ),
  108. );
  109. }
  110. @override
  111. bool get wantKeepAlive => true;
  112. }