123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 |
- import 'package:flutter/cupertino.dart';
- import 'package:flutter/material.dart';
- import 'package:liftmanager/internal/account/provider/user_provider.dart';
- import 'package:liftmanager/net/api_service.dart';
- import 'package:liftmanager/utils/image_utils.dart';
- import 'package:liftmanager/widgets/app_bar.dart';
- import 'package:provider/provider.dart';
- import 'package:liftmanager/widgets/bbs_content.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:liftmanager/widgets/text_field_item.dart';
- import 'package:liftmanager/utils/toast.dart';
- import 'package:liftmanager/internal/wode/wode_router.dart';
- import 'package:liftmanager/routers/fluro_navigator.dart';
- import 'package:liftmanager/utils/theme_utils.dart';
- class BaoPrice extends StatefulWidget {
- BaoPrice(this.id,this.travelCost,this.serviceCost);
- final String id;
- final String travelCost;
- final String serviceCost;
- @override
- State<StatefulWidget> createState() {
- return BaoPriceState();
- }
- }
- class BaoPriceState extends State<BaoPrice> with AutomaticKeepAliveClientMixin {
- UserProvider provider = UserProvider();
- TextEditingController _techService = TextEditingController();
- TextEditingController _travelExpenses = TextEditingController();
- double totalPrice = 0.0;
- int indexNow = 0;
- @override
- void initState() {
- super.initState();
- _techService.text = widget.serviceCost;
- _travelExpenses.text = widget.travelCost;
- changeTotalPrice();
- }
- changeTotalPrice() {
- print(_techService.text);
- print(_travelExpenses.text);
- double techPrice = _techService.text == '' ? 0 : double.parse(_techService.text);
- double travelPrice =
- _travelExpenses.text == '' ? 0 : double.parse(_travelExpenses.text);
- totalPrice = techPrice + travelPrice;
- setState(() {});
- }
- void confirmQuote() {
- if (_techService.text == '') {
- toasts("请输入技术服务费");
- return;
- }
- if (_travelExpenses.text == '') {
- toasts("请输入差旅费");
- return;
- }
- NewApiService().quote({
- "id": widget.id,
- "travelCost": double.parse(_travelExpenses.text),
- "serviceCost": double.parse(_techService.text)
- }, onSuccess: (res) {
- toasts("报价成功");
- NavigatorUtils.push(context, "${WodeRouter.orderPageMaster}?checkType=0");
- setState(() {});
- }, onError: (code, msg) {
- toasts(msg);
- });
- }
- @override
- void dispose() {
- // provider.dispose();
- super.dispose();
- }
- FocusNode blankNode = FocusNode();
-
- @override
- Widget build(BuildContext context) {
- double width = MediaQuery.of(context).size.width;
- return
- // Center(child:new Text("个人中心"));
- ChangeNotifierProvider<UserProvider>(
- create: (_) => provider,
- child: Scaffold(
- resizeToAvoidBottomPadding: false,
- appBar: MyAppBar(
- centerTitle: "订单报价",
- ),
- body: GestureDetector(
- onTap: () {
- // 点击空白页面关闭键盘
- FocusScope.of(context).requestFocus(blankNode);
- },
- child: Consumer<UserProvider>(
- builder: (_, provider, __) {
- return Stack(
- children: <Widget>[
- ListView(padding: EdgeInsets.all(0.0), children: <Widget>[
- TextFieldItem(
- title: "技术服务费",
- content: "",
- controller: _techService,
- keyboardType: TextInputType.numberWithOptions(decimal: true),
- hintText: "请输入金额",
- onChanged: (res) {
- changeTotalPrice();
- },
- ),
- TextFieldItem(
- title: "差旅费",
- content: "",
- keyboardType: TextInputType.numberWithOptions(decimal: true),
- controller: _travelExpenses,
- hintText: "请输入金额",
- onChanged: (res) {
- changeTotalPrice();
- },
- ),
- Heng(
- left: "报价合计",
- right: "¥" + totalPrice.toStringAsFixed(2).toString(),
- leftColor: 0xff666666,
- rightColor: 0xffff0000,
- ),
- SizedBox(height: ScreenUtil().setWidth(80))
- ]),
- Positioned(
- bottom: 0,
- left: 0,
- child: Container(
- width: width,
- padding: EdgeInsets.only(
- top: ScreenUtil().setWidth(15),
- bottom: ScreenUtil().setWidth(15),
- left: ScreenUtil().setWidth(25),
- right: ScreenUtil().setWidth(25),
- ),
- color: ThemeUtils.getDialogTextFieldColor(context),
- child: Container(
- height: ScreenUtil().setWidth(44),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.circular(
- ScreenUtil().setWidth(22),
- ),
- gradient: const LinearGradient(
- colors: [Color(0xFF00D9FF), Color(0xFF0287FF)]),
- ),
- child: FlatButton(
- // padding: EdgeInsets.all(15.0),
- child: Text("确认报价"),
- textColor: Colors.white,
- // textColor: Colors.white,
- onPressed: () {
- confirmQuote();
- },
- ),
- ),
- ),
- )
- ],
- );
- },
- ),
- ),
- ),
- );
- }
- @override
- bool get wantKeepAlive => true;
- }
|