feast_invoice_page.dart 12.3 KB
import 'package:common_utils/common_utils.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_picker/Picker.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/widgets/v_empty_view.dart';

import '../../res/colors.dart';
import '../../utils/dialog_util.dart';
import '../../utils/screen_util.dart';
import '../../utils/utils.dart';
import '../../widgets/h_empty_view.dart';
import '../../widgets/system_app_bar.dart';

/**
 * 编辑发票
 */
class FeastInvoicePage extends StatefulWidget {
  FeastInvoicePage({Key key}) : super(key: key);

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

class _FeastInvoicePageState extends State<FeastInvoicePage> {
  @override
  void initState() {
    // TODO: implement initState
    super.initState();

    Utils.changeStatusColor(color: MyColours.color_438E93);

    WidgetsBinding.instance.addPostFrameCallback((_) {});
  }

  ///请输入
  ///输入框
  Widget _textfield(
      String title,
      // TextEditingController editingController,
      // FocusNode focusNode,
      String subTitle,
      {TextInputType inputType = TextInputType.text,
      bool need = false}) {
    return Container(
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Container(
              width: w(92),
              child: RichText(
                  textScaleFactor: 1,
                  overflow: TextOverflow.ellipsis,
                  // textDirection: TextDirection.ltr,

                  text: TextSpan(
                    children: [
                      TextSpan(
                          text: title,
                          style: TextStyle(
                              color: MyColours.color_515151,
                              fontSize: ScreenUtil().setSp(28)),
                          recognizer: TapGestureRecognizer()..onTap = () {}),
                      TextSpan(
                          text: need ? '*' : '',
                          style: TextStyle(
                              color: MyColours.color_E34D59,
                              fontSize: ScreenUtil().setSp(28)),
                          //点击事件
                          recognizer: TapGestureRecognizer()..onTap = () {}),
                    ],
                  ))),
          HEmptyView(48),
          Expanded(
              child: Container(
            decoration: BoxDecoration(
                border: Border(
                    bottom: BorderSide(
                        width: h(1), color: MyColours.color_DBDBDB))),
            child: Row(
              children: [
                Expanded(
                  child: Container(
                      // height: ScreenUtil().setHeight(120),
                      height: ScreenUtil().setWidth(64),
                      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,
                        decoration: InputDecoration(
                          border:
                              OutlineInputBorder(borderSide: BorderSide.none),
                          hintText: '请输入',
                          hintStyle: TextStyle(
                            color: MyColours.color_999999,
                            fontSize: ScreenUtil().setSp(28),
                          ),
                          contentPadding: EdgeInsets.zero,
                        ),
                        onChanged: (value) {},
                        onEditingComplete: () {
                          FocusScope.of(context)
                              .requestFocus(FocusNode()); //点击空白处隐藏键盘
                        },
                        keyboardType: inputType,
                      )),
                ),
                Container(
                  child: Text(
                    subTitle,
                    style: TextStyle(
                        color: MyColours.color_515151,
                        fontSize: ScreenUtil().setSp(28)),
                  ),
                ),
              ],
            ),
          ))
        ],
      ),
    );
  }

  ///请选择
  Widget _selectWidget(String title, String labelShow,
      {GestureTapCallback onTap, bool need = true}) {
    return InkWell(
      onTap: onTap,
      // () {
      //   FocusScope.of(context).requestFocus(FocusNode()); //隐藏键盘
      // DialogUtil.showSelectCusmanDialog(
      //         context,
      //         customerProvider.labelList.map((item) {
      //           return item.label;
      //         }).toList(), (value) {
      //   if (value != null) {
      //     setState(() {
      //       customerProvider.labelSelIndex =
      //           value.first;
      //       labelShow = customerProvider
      //           .labelList[
      //               customerProvider.labelSelIndex]
      //           .label;
      //     });
      //   }
      // },
      //         selecteds:
      //             customerProvider.labelSelIndex == null
      //                 ? []
      //                 : [
      //                     customerProvider.labelSelIndex
      //                   ])
      //     .then((value) {});
      // },
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        crossAxisAlignment: CrossAxisAlignment.center,
        children: [
          Container(
            // color: Colors.red,
            width: ScreenUtil().setWidth(160),
            height: ScreenUtil().setWidth(35),
            child: Text(
              title,
              style: TextStyle(
                  fontSize: ScreenUtil().setSp(28),
                  color: MyColours.color_515151),
            ),
          ),
          HEmptyView(60),
          Expanded(
              child: Container(
                  height: ScreenUtil().setWidth(64),
                  decoration: BoxDecoration(
                      border: Border(
                          bottom: BorderSide(
                              width: ScreenUtil().setWidth(2),
                              color: Color.fromRGBO(220, 220, 220, 1)))),
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceBetween,
                    children: [
                      Expanded(
                          child: Text(
                        labelShow,
                        overflow: TextOverflow.ellipsis,
                        style: TextStyle(
                          color: labelShow == '请选择'
                              ? MyColours.color_999999
                              : MyColours.color_515151,
                          fontSize: ScreenUtil().setSp(28),
                        ),
                      )),
                      HEmptyView(10),
                      Image.asset(
                        Utils.getImgPath('f_arrow_down'),
                        width: ScreenUtil().setWidth(64),
                        // height: ScreenUtil().setWidth(10),
                      ),
                      HEmptyView(16),
                    ],
                  ))),
        ],
      ),
    );
  }

  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 radioBtn(String title, bool select) {
    return InkWell(
        onTap: () {},
        child: Row(
          children: [
            Image.asset(
              Utils.getImgPath(select ? 'select' : 'unselect'),
              width: w(24),
            ),
            HEmptyView(16),
            Text(
              title,
              style: TextStyle(
                  color: MyColours.color_515151,
                  fontWeight: FontWeight.bold,
                  fontSize: ScreenUtil().setSp(32)),
            ),
          ],
        ));
  }

  @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(
          children: [
            Expanded(
                child: SingleChildScrollView(
              child: Padding(
                  padding: EdgeInsets.only(left: w(30), right: w(13)),
                  child: Column(
                    children: [
                      VEmptyView(68),
                      Row(
                        mainAxisAlignment: MainAxisAlignment.spaceBetween,
                        children: [
                          radioBtn('增值税普通发票', true),
                          radioBtn('增值税专用发票', false),
                        ],
                      ),
                      VEmptyView(80),
                      _textfield('开票金额', '元', need: true),
                      VEmptyView(40),
                      _textfield('单位全称', '', need: true),
                      VEmptyView(40),
                      _textfield('纳税人识别号', '', need: true),
                      VEmptyView(40),
                      _textfield('注册地址', ''),
                      VEmptyView(40),
                      _textfield('注册电话', ''),
                      VEmptyView(40),
                      _textfield('开户银行', ''),
                      VEmptyView(40),
                      _textfield('银行账号', ''),
                      VEmptyView(40),
                      _textfield('电子邮箱', ''),
                      VEmptyView(40),
                      _textfield('收件人', ''),
                      VEmptyView(40),
                      _textfield('收件人电话', ''),
                      VEmptyView(40),
                      _textfield('收件地址', ''),
                      VEmptyView(40),
                      _textfield('邮编', ''),
                      VEmptyView(40),
                    ],
                  )),
            )),
            Row(
              children: [
                Expanded(
                    child: _callButton(
                        onPress: () {
                          Navigator.pop(context);
                        },
                        content: '返回',
                        hasLeftBorder: true,
                        isSelect: false)),
                Expanded(
                    child: _callButton(
                        onPress: () {},
                        content: '保存并返回',
                        hasLeftBorder: true,
                        isSelect: true))
              ],
            )
          ],
        ));
  }
}