sms_page.dart 4.11 KB
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/provider/SmsModel.dart';
import 'package:one_key/provider/contact_model.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'package:flutter/services.dart';

class SmsPage extends StatefulWidget{

  final String rid;//预订订单id

  SmsPage(this.rid);

  @override
  State<StatefulWidget> createState() {
    // TODO: implement createState
    return new SmsPageState();
  }

}

class SmsPageState extends State<SmsPage>{

  SmsModel smsModel=new SmsModel();

  UserModel userModel;

  String smsContent="";//短信内容

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    userModel=Provider.of<UserModel>(context,listen: false);
    WidgetsBinding.instance.addPostFrameCallback((_){
      _getSmsContent();
      Future.delayed(Duration(milliseconds: 300),(){
        ContactModel.getInstance().uploadLocalContact(context);
      });
    });
  }

  //获取短信内容
  _getSmsContent() async {
    Map<String,String> params={
      "rid":widget.rid,
      "sid":userModel.user.sellerid
    };
    String sms=await smsModel.getSmsContent(context, params);
    setState(() {
      smsContent=sms;
    });
  }

  //发送短信
  _sendSms(){
    Map<String,String> params={
      "rid":widget.rid,
      "sid":userModel.user.sellerid
    };
    smsModel.sendSms(context, params);
  }

  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return SafeArea(
      child: DefaultTextStyle(style: TextStyle(decoration: TextDecoration.none), child: Container(
        color: MyColours.color_ffffff,
        child: Column(
          children: <Widget>[
            MyAppBar("发短信"),
            Container(
              alignment: Alignment.centerLeft,
              margin: EdgeInsets.only(top: ScreenUtil().setHeight(30),left: ScreenUtil().setWidth(38)),
              child: Text("已自动生成短信通知,可直接发送",style: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(28)),),
            ),
            Container(
              width: ScreenUtil().setWidth(673),
              margin: EdgeInsets.only(left:ScreenUtil().setWidth(38), right:ScreenUtil().setWidth(38), top:ScreenUtil().setWidth(38)),
              padding: EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(23),vertical: ScreenUtil().setHeight(36)),
              decoration: BoxDecoration(
                border: Border.all(color: MyColours.color_dbe3e3,width: ScreenUtil().setWidth(2)),
                borderRadius: BorderRadius.all(Radius.circular(ScreenUtil().setWidth(8))),
              ),
              child: Text(smsContent,style: TextStyle(color: MyColours.color_353535,fontSize: ScreenUtil().setSp(30),))
            ),
            Container(
              margin: EdgeInsets.only(top: ScreenUtil().setHeight(143)),
              child: Column(
                children: <Widget>[
                  CommonButton(
                    width: 672,
                    height: 76,
                    fontSize: 34,
                    content: "直接发送",
                    state: 1,
                    onPress: (){
                      _sendSms();
                    },
                  ),
                  VEmptyView(20),
                  CommonButton(
                    width: 672,
                    height: 76,
                    fontSize: 34,
                    content: "复制短信",
                    state: 0,
                    onPress: () async {
                      await Clipboard.setData(ClipboardData(text: smsContent));
                      Utils.showToast("复制成功!");
                    },
                  )
                ],
              ),
            )
          ],
        ),
      )),
    );
  }

}