feast_setmeal_page.dart 10.5 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/widgets/h_empty_view.dart';

import '../../res/colors.dart';
import '../../utils/screen_util.dart';
import '../../utils/utils.dart';
import '../../widgets/round_button.dart';
import '../../widgets/system_app_bar.dart';
import '../../widgets/v_empty_view.dart';

/**
 * 添加套餐
 */
class FeastSetmealPage extends StatefulWidget {
  FeastSetmealPage({Key key}) : super(key: key);

  @override
  _FeastSetmealPageState createState() => _FeastSetmealPageState();
}

class _FeastSetmealPageState extends State<FeastSetmealPage> {
  @override
  void initState() {
    super.initState();
    Utils.changeStatusColor(color: MyColours.color_438E93);
  }

  Widget _callButton(
      {GestureTapCallback onPress,
      content,
      hasLeftBorder = true,
      isSelect = false}) {
    return InkWell(
      onTap: onPress,
      child: Container(
        height: h(48),
        decoration: BoxDecoration(
            color: isSelect ? MyColours.color_438E93 : MyColours.color_ffffff,
            border: Border(
                bottom: BorderSide(
                    color: MyColours.color_438E93,
                    width: ScreenUtil().setWidth(2)),
                top: BorderSide(
                    color: MyColours.color_438E93,
                    width: ScreenUtil().setWidth(2)),
                left: hasLeftBorder
                    ? BorderSide(
                        color: MyColours.color_438E93,
                        width: ScreenUtil().setWidth(2))
                    : BorderSide.none,
                right: BorderSide(
                    color: MyColours.color_438E93,
                    width: ScreenUtil().setWidth(2)))),
        child: Align(
          alignment: Alignment.center,
          child: Text(
            content,
            style: TextStyle(
                color:
                    isSelect ? MyColours.color_F6F6F6 : MyColours.color_438E93,
                fontSize: ScreenUtil().setSp(36)),
          ),
        ),
      ),
    );
  }

  ///输入框
  Widget _textfield(String hintText, TextEditingController editingController,
      FocusNode focusNode,
      {TextInputType inputType = TextInputType.text, double width}) {
    return Container(
      width: width,
      padding: EdgeInsets.symmetric(horizontal: w(6)),
      decoration: BoxDecoration(
          border: Border.all(width: h(1), color: MyColours.color_438E93)),
      child: Container(
          // height: ScreenUtil().setHeight(120),
          height: ScreenUtil().setWidth(44),
          child: TextField(
            controller: editingController,
            // textAlign: TextAlign.right,
            // textAlignVertical: TextAlignVertical.bottom,
            maxLines: 1,
            inputFormatters: [],

            // //光标颜色
            // cursorColor:
            //     widget.isSelect ? Colors.white : MyColours.color_199095,
            //输入文本的样式
            style: TextStyle(
              fontSize: ScreenUtil().setSp(32),
            ),
            focusNode: focusNode,
            textAlign: TextAlign.center,
            decoration: InputDecoration(
              border: OutlineInputBorder(borderSide: BorderSide.none),
              hintText: hintText,
              hintStyle: TextStyle(
                color: hintText == ''
                    ? MyColours.color_999999
                    : MyColours.color_000000,
                fontSize: ScreenUtil().setSp(28),
              ),
              contentPadding: EdgeInsets.zero,
            ),
            onChanged: (value) {},
            onEditingComplete: () {
              FocusScope.of(context).requestFocus(FocusNode()); //点击空白处隐藏键盘
            },
            keyboardType: inputType,
          )),
    );
  }

  Widget buildListItem(BuildContext context, int index, bool select) {
    return Container(
        padding: EdgeInsets.only(
            top: h(25), bottom: h(10), left: w(12), right: w(12)),
        decoration: BoxDecoration(
            border: Border(
                bottom:
                    BorderSide(width: w(1), color: MyColours.color_DBDBDB))),
        child: Column(
          children: [
            Row(
              children: [
                InkWell(
                    onTap: () {
                      setState(() {
                        select = !select;
                      });
                    },
                    child: Row(
                      children: [
                        Image.asset(
                          Utils.getImgPath(
                              select ? 'f_select' : 'f_select_not'),
                          width: w(24),
                        ),
                        HEmptyView(24),
                        Text(
                          '1299套餐',
                          style: TextStyle(
                              color: select
                                  ? MyColours.color_515151
                                  : MyColours.color_999999,
                              fontSize: font(16),
                              fontWeight: FontWeight.bold),
                        )
                      ],
                    )),
                Spacer(),
                RoundButton(
                  text: '查看菜单',
                  radius: r(7),
                  width: w(48),
                  height: h(18),
                  fontSize: 20,
                  textColor: MyColours.color_F6F6F6,
                  isBold: false,
                  gradientStart: MyColours.color_438E93,
                  gradientEnd: MyColours.color_438E93,
                  onPressed: () {
                    // NavigatorUtil.goFeastSetmealPage(context);
                  },
                ),
              ],
            ),
            select
                ? Column(
                    children: [
                      VEmptyView(42),
                      Row(
                        children: [
                          Text(
                            '原价:1299元',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          Spacer(),
                          Text(
                            '议价:',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          _textfield('1299', null, null, width: w(126)),
                          Text(
                            ' 元',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                        ],
                      ),
                      VEmptyView(42),
                      Row(
                        children: [
                          Text(
                            '每桌:',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          _textfield('3', null, null, width: w(45)),
                          Text(
                            ' 人',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          Spacer(),
                          Text(
                            '保证:',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          _textfield('3', null, null, width: w(45)),
                          Text(
                            ' 桌',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          Spacer(),
                          Text(
                            '备用:',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                          _textfield('3', null, null, width: w(45)),
                          Text(
                            ' 桌',
                            style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: font(14),
                            ),
                          ),
                        ],
                      ),
                    ],
                  )
                : SizedBox()
          ],
        ));
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        backgroundColor: MyColours.color_ffffff,
        appBar: SystemAppBar(
          '选择套餐',
          needWhite: true,
          bgColor: MyColours.color_438E93,
          titleColor: MyColours.color_F6F6F6,
          onTap: () {
            Navigator.pop(context);
          },
        ),
        body: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: [
            Expanded(
                child: ListView.builder(
              shrinkWrap: true,
              itemCount: 10,
              itemBuilder: (BuildContext context, int index) {
                return buildListItem(context, index, true);
              },
            )),
            Row(
              children: [
                Expanded(
                    child: _callButton(
                        onPress: () {
                          Navigator.pop(context);
                        },
                        content: '返回',
                        hasLeftBorder: true,
                        isSelect: false)),
                Expanded(
                    child: _callButton(
                        onPress: () {},
                        content: '保存并返回',
                        hasLeftBorder: true,
                        isSelect: true))
              ],
            )
          ],
        ));
  }
}