| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067 |
- import 'package:flutter/material.dart';
- import 'package:flutter/services.dart';
- import 'package:flutter_screenutil/flutter_screenutil.dart';
- import 'package:city_pickers/city_pickers.dart';
- import 'package:flutter_picker/flutter_picker.dart';
- import 'dart:async';
- import 'send_express_page/order_detail_page.dart';
- import '../util/util.dart';
- import '../util/api.dart';
- import '../util/models.dart';
- import '../showAlert.dart';
- import '../send_Dialog.dart';
- import '../util/session.dart';
- import '../showLineModal.dart';
- class SendExpressPage extends StatefulWidget {
- final Widget child;
- SendExpressPage({
- Key key,
- this.child
- }): super(key: key);
- _SendExpressPageState createState() => _SendExpressPageState();
- }
- class _SendExpressPageState extends State < SendExpressPage > with AutomaticKeepAliveClientMixin {
- ScrollController _scrollController = ScrollController();
- //组件自用字段-----------------------------
- GlobalKey _sendPhoneKey = GlobalKey();
- GlobalKey _getPhoneKey = GlobalKey();
- double tipWidth = 0;
- double tipHeight = 0;
- double tipPosX = 0;
- double tipPosY = 0;
- bool tipStatus = true;
- bool lineModalStatus = false;
- bool submitStatus = true;
- List < LikePhoneList > likePhoneList = [];
- var timer;
- bool sendPhoneOrGetPhoneTab = true; //区分电话提示层点击时填入发件信息或手机信息的标记
- TextEditingController sendCompanyPhoneController = TextEditingController();
- TextEditingController sendCompanyCodeController = TextEditingController();
- TextEditingController sendCompanyNameController = TextEditingController();
- TextEditingController receiptCompanyPhoneController = TextEditingController();
- TextEditingController receiptCompanyNameController = TextEditingController();
- TextEditingController sendCompanyAddressController = TextEditingController();
- TextEditingController receiptCompanyAddressController = TextEditingController();
- List < dynamic > goodsCateGoryList = [];
- List < dynamic > goodsPackageList = [];
- //请求字段-------------------------
- String lineId = '-1';//收件公司匹配的线路id
- String sendCompanyId = '0'; //寄件公司Id
- String sendCompanyName = ''; //寄件公司名称 不能为空
- String sendCompanyPhone = ''; //寄件公司电话 不能为空
- String sendCompanyCode = ''; //寄件公司编码
- String sendCompanyProvinceName = ''; //寄件公司省名称 不能为空
- String sendCompanyProvinceCode = ''; //寄件公司省编码 不能为空
- String sendCompanyCityName = ''; //寄件公司市名称 不能为空
- String sendCompanyCityCode = ''; //寄件公司市编码 不能为空
- String sendCompanyAreaName = ''; //寄件公司区名称 不能为空
- String sendCompanyAreaCode = ''; //寄件公司区编码 不能为空
- String sendCompanyAddress = ''; //寄件公司详细地址,不能为空
- String receiptCompanyId = '0'; //收件公司id
- String receiptCompanyPhone = ''; //收件公司电话 不能为空
- String receiptCompanyName = ''; //收件公司名称 不能为空
- String receiptCompanyProvinceName = ''; //收件公司省名称 不能为空
- String receiptCompanyProvinceCode = ''; //收件公司省编码 不能为空
- String receiptCompanyCityName = ''; //收件公司市名称 不能为空
- String receiptCompanyCityCode = ''; //收件公市编码 不能为空
- String receiptCompanyAreaName = ''; //收件公区名称 不能为空
- String receiptCompanyAreaCode = ''; //收件公司区编码 不能为空
- String receiptCompanyAddress = ''; //收件公司地址详情 不能为空
- String goods = ''; //商品名称 不能为空
- int goodsQuantity = 1; //商品数量 不能为空
- int goodsPackingId; //商品包装ID
- int goodsCategoryId; //商品类别ID
- int goodsPaymentMethod = 1; //付款方式 1,现付 2 到付
- double goodsWeight = 0.0; //商品重量
- double goodsPriceProtection = 0.0; //商品保价
- double goodsAgencyFund = 0.0; //商品代收款
- double goodsFreight = 0.0; //商品运费 不能为空
- String memo = ''; //备注
- List<CompanyOfLineList> lineList = [];
- String sendPCA = ' '; //Text组件内容必须有空格,否则报null
- String getPCA = ' ';
- String showTextGoodsCategory = ' ';
- String showTextGoodsPackage = ' ';
- String showTextPaymentMehod = '现付';
- @override
- void initState() {
- super.initState();
- goodsCategory().then((resp) {
- if (isNotError(context, resp) && this.mounted) {
- GoodsCategory goodsCategoryObj = GoodsCategory.fromJson(resp.data);
- setState(() {
- goodsCateGoryList = goodsCategoryObj.data;
- showTextGoodsCategory = goodsCateGoryList[0].name;
- goodsCategoryId = goodsCateGoryList[0].id;
- });
- }
- });
- goodsPackage().then((resp) {
- if (isNotError(context, resp) && this.mounted) {
- GoodsPackage goodsPackageObj = GoodsPackage.fromJson(resp.data);
- setState(() {
- goodsPackageList = goodsPackageObj.data;
- showTextGoodsPackage = goodsPackageList[0].name;
- goodsPackingId = goodsPackageList[0].id;
- });
- }
- });
- _scrollController.addListener(() {
- if (!tipStatus) {
- setState(() {
- tipStatus = true;
- });
- }
- //if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent) {}
- });
- sendCompanyPhoneController.addListener(() {
- setState(() {
- sendCompanyPhone = sendCompanyPhoneController.text;
- });
- if (timer != null) {
- timer.cancel();
- }
- if (sendCompanyPhoneController.text.length < 6 || sendCompanyPhoneController.text.length > 11) {
- setState(() {
- tipStatus = true;
- });
- }
- timer = Timer(Duration(milliseconds: 500), () {
- if (sendCompanyPhoneController.text.length >= 6 && sendCompanyPhoneController.text.length < 11) {
- likePhone(sendCompanyPhoneController.text).then((resp) {
- if (isNotError(context, resp) && this.mounted) {
- LikePhone likePhoneObj = LikePhone.fromJson(resp.data);
- likePhoneList = likePhoneObj.data;
- }
- if (likePhoneList.length > 0) {
- sendPhoneOrGetPhoneTab = true;
- RenderObject sendPhoneObj = _sendPhoneKey.currentContext.findRenderObject();
- setState(() {
- tipWidth = sendPhoneObj.paintBounds.size.width;
- tipHeight = sendPhoneObj.paintBounds.size.height;
- tipPosX = sendPhoneObj.getTransformTo(null).getTranslation().x;
- tipPosY = sendPhoneObj.getTransformTo(null).getTranslation().y - ScreenUtil.getInstance().setHeight(90);
- tipStatus = false;
- });
- } else {
- setState(() {
- tipStatus = true;
- });
- }
- });
- }
- });
- });
- receiptCompanyPhoneController.addListener(() {
- setState(() {
- receiptCompanyPhone = receiptCompanyPhoneController.text;
- });
- if (timer != null) {
- timer.cancel();
- }
- if (receiptCompanyPhoneController.text.length < 6 || receiptCompanyPhoneController.text.length > 11) {
- setState(() {
- tipStatus = true;
- });
- }
- timer = Timer(Duration(milliseconds: 500), () {
- if (receiptCompanyPhoneController.text.length >= 6 && receiptCompanyPhoneController.text.length < 11) {
- likePhone(receiptCompanyPhoneController.text).then((resp) {
- if (isNotError(context, resp) && this.mounted) {
- LikePhone likePhoneObj = LikePhone.fromJson(resp.data);
- likePhoneList = likePhoneObj.data;
- }
- if (likePhoneList.length > 0) {
- sendPhoneOrGetPhoneTab = false;
- RenderObject getPhoneKey = _getPhoneKey.currentContext.findRenderObject();
- setState(() {
- tipWidth = getPhoneKey.paintBounds.size.width;
- tipHeight = getPhoneKey.paintBounds.size.height;
- tipPosX = getPhoneKey.getTransformTo(null).getTranslation().x;
- tipPosY = getPhoneKey.getTransformTo(null).getTranslation().y - ScreenUtil.getInstance().setHeight(90);
- tipStatus = false;
- });
- } else {
- setState(() {
- tipStatus = true;
- });
- }
- });
- }
- });
- });
- sendCompanyAddressController.addListener(() {
- setState(() {
- sendCompanyAddress = sendCompanyAddressController.text;
- });
- });
- receiptCompanyAddressController.addListener(() {
- setState(() {
- receiptCompanyAddress = receiptCompanyAddressController.text;
- });
- });
- }
- @override
- bool get wantKeepAlive => true;
- @override
- Widget build(BuildContext context) {
- return Container(
- child: Scaffold(
- appBar: AppBar(
- title: Text('发件', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(36)), ),
- centerTitle: true,
- backgroundColor: Color.fromRGBO(64, 98, 254, 1),
- ),
- body:
- Stack(
- children: < Widget > [
- Container(
- color: Color.fromRGBO(246, 246, 254, 1),
- padding: EdgeInsets.fromLTRB(0, ScreenUtil.getInstance().setHeight(20), 0, ScreenUtil.getInstance().setHeight(20)),
- child: ListView(
- controller: _scrollController,
- children: < Widget > [
- _sendInfo(context),
- _getInfo(context),
- _itemInfoWidget(),
- _submitBtn()
- ],
- ),
- ),
- Positioned(
- top: tipPosY,
- left: tipPosX,
- child: Offstage(
- offstage: tipStatus,
- child: Container(
- width: tipWidth,
- height: ScreenUtil.getInstance().setHeight(450),
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- decoration: BoxDecoration(
- color: Color.fromRGBO(244, 248, 251, 1),
- ),
- child: ListView.builder(
- itemCount: likePhoneList.length,
- itemBuilder: (BuildContext context, int index) {
- return _tipItem(likePhoneList[index]);
- },
- )
- ),
- )
- )
- ],
- ),
- resizeToAvoidBottomPadding: false //键盘弹出,页面不跟随向上滑动,防止出现溢出错误
- ),
- );
- }
- Widget _sendInfo(BuildContext context) {
- return Container(
- color: Colors.white,
- margin: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
- child: Column(
- children: < Widget > [
- _titleWidget('lib/images/icon_send.png', '发件信息'),
- _underLine(),
- _inputWiget('电话', 'sendPhone'),
- _contentWiget('企业编码', 'send', true),
- _contentWiget('企业名称', 'send', true),
- _cityWiget('城市/区域', context, 'send'),
- _lastContentWiget('详细地址', 'send')
- ],
- )
- );
- }
- Widget _getInfo(BuildContext context) {
- return Container(
- color: Colors.white,
- margin: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
- child: Column(
- children: < Widget > [
- _titleWidget('lib/images/icon_shoujian.png', '收件信息'),
- _underLine(),
- _inputWiget('电话', 'getPhone'),
- //_contentWiget('企业编码', 'get', true),
- _contentWiget('企业名称', 'get', true),
- _cityWiget('城市/区域', context, 'get'),
- _lastContentWiget('详细地址', 'get')
- ],
- )
- );
- }
- Widget _itemInfoWidget() {
- return Container(
- child: Container(
- color: Colors.white,
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: < Widget > [
- _titleWidget('lib/images/icon_huowu.png', "货物信息"),
- _underLine(),
- _contentWiget("货物名称", 'goods', true),
- _contentWiget("数量", 'goods'),
- _contentWiget("运费", 'goods'),
- _contentWiget("代收", 'goods'),
- _contentWiget("保价", 'goods'),
- _contentWiget("重量", 'goods'),
- _packageType('包装类型'),
- _packageType('货物类型'),
- _packageType('付款方式'),
- _descWidget()
- ],
- ),
- )
- );
- }
- Widget _titleWidget(String iconUrl, String str) {
- return Container(
- height: ScreenUtil.getInstance().setHeight(90),
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: < Widget > [
- Padding(
- padding: EdgeInsets.only(right: ScreenUtil.getInstance().setHeight(20)),
- child: Image.asset(
- iconUrl,
- width: ScreenUtil.getInstance().setWidth(40),
- height: ScreenUtil.getInstance().setHeight(40),
- )
- ),
- Text(str, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(32)), )
- ],
- ),
- ),
- );
- }
- Widget _underLine() {
- return Container(
- color: Color.fromRGBO(223, 223, 223, 1),
- height: ScreenUtil.getInstance().setHeight(1),
- );
- }
- Widget _inputWiget(String key, String tab) {
- return Padding(
- key: tab == 'sendPhone' ? _sendPhoneKey : _getPhoneKey,
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: Column(
- children: < Widget > [
- SizedBox(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: < Widget > [
- Expanded(
- flex: 0,
- child: Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- ),
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: < Widget > [
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(500),
- child: TextField(
- controller: tab == 'sendPhone' ? sendCompanyPhoneController : receiptCompanyPhoneController,
- keyboardType: TextInputType.number,
- textAlign: TextAlign.end,
- decoration: InputDecoration(
- border: InputBorder.none
- ),
- onEditingComplete: () {
- setState(() {
- FocusScope.of(context).requestFocus(FocusNode());
- tipStatus = true;
- });
- },
- ),
- ),
- Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
- ],
- )
- )
- ],
- ),
- )
- ),
- Expanded(
- flex: 0,
- child: _underLine()
- )
- ],
- )
- );
- }
- Widget _contentWiget(String key, String type, [bool keyboardType = false]) { //false是数字键盘
- return Padding(
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: Column(
- children: < Widget > [
- SizedBox(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: < Widget > [
- Expanded(
- flex: 0,
- child: Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- ),
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: < Widget > [
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(500),
- child: TextField(
- controller: (key == '企业名称') ? (type == 'send' ? sendCompanyNameController : receiptCompanyNameController) : (key == '企业编码' ? sendCompanyCodeController : null),
- keyboardType: keyboardType ? TextInputType.text : TextInputType.number,
- textAlign: TextAlign.end,
- decoration: InputDecoration(
- border: InputBorder.none
- ),
- onChanged: (value) {
- if (type == 'send') {
- if (key == '企业编码') {
- setState(() {
- sendCompanyCode = value;
- });
- } else if (key == '企业名称') {
- setState(() {
- sendCompanyName = value;
- });
- }
- } else if (type == 'get') {
- if (key == '企业编码') {
- setState(() {
- sendCompanyCode = value;
- });
- } else if (key == '企业名称') {
- setState(() {
- receiptCompanyName = value;
- });
- }
- } else {
- if (key == '货物名称') {
- goods = value;
- } else if (key == '数量') {
- goodsQuantity = int.parse(value);
- } else if (key == '运费') {
- goodsFreight = double.parse(value);
- String temp = goodsFreight.toStringAsFixed(1);
- goodsFreight = double.parse(temp);
- } else if (key == '代收') {
- goodsAgencyFund = double.parse(value);
- String temp = goodsAgencyFund.toStringAsFixed(1);
- goodsAgencyFund = double.parse(temp);
- } else if (key == '保价') {
- goodsPriceProtection = double.parse(value);
- String temp = goodsPriceProtection.toStringAsFixed(1);
- goodsPriceProtection = double.parse(temp);
- } else if (key == '重量') {
- goodsWeight = double.parse(value);
- String temp = goodsWeight.toStringAsFixed(1);
- goodsWeight = double.parse(temp);
- }
- }
- },
- ),
- ),
- Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
- ],
- )
- )
- ],
- ),
- )
- ),
- Expanded(
- flex: 0,
- child: _underLine()
- )
- ],
- )
- );
- }
- Widget _cityWiget(String key, BuildContext context, String type) {
- return
- GestureDetector(
- child: Padding(
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: Column(
- children: < Widget > [
- SizedBox(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: < Widget > [
- Expanded(
- flex: 0,
- child: Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- ),
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: < Widget > [
- //Text('${value}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(500),
- child: Text(type == 'send' ? sendPCA : getPCA, textAlign: TextAlign.end, overflow: TextOverflow.ellipsis, )
- ),
- Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
- ],
- )
- )
- ],
- ),
- )
- ),
- Expanded(
- flex: 0,
- child: _underLine()
- )
- ],
- )
- ),
- onTap: () {
- getCity(context).then((resp) {
- if (resp == null) {
- return;
- }
- print(resp.toString());
- setState(() {
- if (type == 'send') {
- sendPCA = resp.provinceName + ' ' + resp.cityName + ' ' + ' ' + resp.areaName;
- sendCompanyProvinceName = resp.provinceName;
- sendCompanyProvinceCode = resp.provinceId;
- sendCompanyCityName = resp.cityName;
- sendCompanyCityCode = resp.cityId;
- sendCompanyAreaName = resp.areaName;
- sendCompanyAreaCode = resp.areaId;
- } else {
- getPCA = resp.provinceName + ' ' + resp.cityName + ' ' + ' ' + resp.areaName;
- receiptCompanyProvinceName = resp.provinceName;
- receiptCompanyProvinceCode = resp.provinceId;
- receiptCompanyCityName = resp.cityName;
- receiptCompanyCityCode = resp.cityId;
- receiptCompanyAreaName = resp.areaName;
- receiptCompanyAreaCode = resp.areaId;
- }
- });
- //print(value);
- });
- },
- );
- }
- Widget _lastContentWiget(String key, String type) {
- return Padding(
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: SizedBox(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: < Widget > [
- Expanded(
- flex: 0,
- child: Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- ),
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: < Widget > [
- //Text('${value}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(500),
- child: TextField(
- controller: type == 'send' ? sendCompanyAddressController : receiptCompanyAddressController,
- textAlign: TextAlign.end,
- decoration: InputDecoration(
- border: InputBorder.none
- ),
- ),
- ),
- Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
- ],
- )
- )
- ],
- ),
- )
- )
- );
- }
- Widget _descWidget() {
- return
- Container(
- padding: EdgeInsets.all(ScreenUtil.getInstance().setWidth(30)),
- //child: Text(str, maxLines: 100, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- child: TextField(
- maxLines: 3,
- decoration: InputDecoration(
- border: InputBorder.none,
- hintText: "请输入备注内容"
- ),
- onChanged: (value) {
- setState(() {
- memo = value;
- });
- },
- ),
- );
- }
- Widget _submitBtn() {
- return GestureDetector(
- child: Container(
- margin: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(50), ScreenUtil.getInstance().setWidth(30), ScreenUtil.getInstance().setWidth(40)),
- height: ScreenUtil.getInstance().setHeight(88),
- decoration: BoxDecoration(
- borderRadius: BorderRadius.all(Radius.circular(4)),
- color: Color.fromRGBO(37, 102, 242, 1),
- ),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.center,
- children: < Widget > [
- Offstage(
- offstage: submitStatus,
- child: SizedBox(
- width: ScreenUtil.getInstance().setWidth(45),
- height: ScreenUtil.getInstance().setHeight(45),
- child: Image.asset('lib/images/loading.gif'),
- ),
- ),
- Text("提交", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(32), color: Colors.white), ),
- ],
- )
- ),
- ),
- onTap: () {
- if (!submitStatus) {
- return;
- }
- String errStr = '';
- print('sendCompanyId---${sendCompanyId}');
- print('sendCompanyName---${sendCompanyName}');
- print('sendCompanyPhone---${sendCompanyPhone}');
- print('sendCompanyCode---${sendCompanyCode}');
- print('sendCompanyProvinceName---${sendCompanyProvinceName}');
- print('sendCompanyProvinceCode---${sendCompanyProvinceCode}');
- print('sendCompanyCityName---${sendCompanyCityName}');
- print('sendCompanyCityCode---${sendCompanyCityCode}');
- print('sendCompanyAreaName---${sendCompanyAreaName}');
- print('sendCompanyAreaCode---${sendCompanyAreaCode}');
- print('sendCompanyAddress---${sendCompanyAddress}');
- print('receiptCompanyId---${receiptCompanyId}');
- print('receiptCompanyPhone---${receiptCompanyPhone}');
- print('receiptCompanyName---${receiptCompanyName}');
- print('receiptCompanyProvinceName---${receiptCompanyProvinceName}');
- print('receiptCompanyProvinceCode---${receiptCompanyProvinceCode}');
- print('receiptCompanyCityName---${receiptCompanyCityName}');
- print('receiptCompanyCityCode---${receiptCompanyCityCode}');
- print('receiptCompanyAreaName---${receiptCompanyAreaName}');
- print('receiptCompanyAreaCode---${receiptCompanyAreaCode}');
- print('receiptCompanyAddress---${receiptCompanyAddress}');
- print('goods---${goods}');
- print('goodsQuantity---${goodsQuantity}');
- print('goodsPackingId---${goodsPackingId}');
- print('goodsCategoryId---${goodsCategoryId}');
- print('goodsPaymentMethod---${goodsPaymentMethod}');
- print('goodsWeight---${goodsWeight}');
- print('goodsPriceProtection---${goodsPriceProtection}');
- print('goodsAgencyFund---${goodsAgencyFund}');
- print('goodsFreight---${goodsFreight}');
- print('memo---${memo}');
- if (sendCompanyPhone == '') {
- errStr = '请填写发件电话';
- }
- if (sendCompanyName == '') {
- errStr = '请填写发件企业名称';
- }
- if (sendCompanyProvinceName == '') {
- errStr = '请填写发件城市/区域';
- }
- if (sendCompanyAddress == '') {
- errStr = '请填写发件详细地址';
- }
- if (receiptCompanyPhone == '') {
- errStr = '请填写收件电话';
- }
- if (receiptCompanyName == '') {
- errStr = '请填写收件企业名称';
- }
- if (receiptCompanyProvinceName == '') {
- errStr = '请填写收件城市/区域';
- }
- if (receiptCompanyAddress == '') {
- errStr = '请填写收件详细地址';
- }
- if (goods == '') {
- errStr = '请填写货物名称';
- }
- if (goodsQuantity == 0) {
- errStr = '请填写货物数量';
- }
- if (int.tryParse(goodsQuantity.toString()) == null) {
- errStr = '货物数量格式错误';
- }
- if (goodsFreight == 0.0) {
- errStr = '请填写运费';
- }
- if (int.tryParse(sendCompanyPhone) == null || int.tryParse(receiptCompanyPhone) == null || sendCompanyPhone.length != 11 || receiptCompanyPhone.length != 11) {
- errStr = '请输入正确的电话';
- }
- if (errStr != '') {
- showError(errStr);
- return;
- }
-
- if(lineList.length==1){
- lineId = lineList[0].lineId.toString();
- }else if(lineList.length>1){
- showLineModal(lineList);
- return;
- }
- submitOrder();
- },
- );
- }
- submitOrder(){
- setState(() {
- submitStatus = false;
- });
- getKey('stationId').then((value) {
- createOrder(
- lineId,
- value,
- sendCompanyId, //寄件公司Id
- sendCompanyName, //寄件公司名称 不能为空
- sendCompanyPhone, //寄件公司电话 不能为空
- sendCompanyCode ?? '', //寄件公司编码
- sendCompanyProvinceName, //寄件公司省名称 不能为空
- sendCompanyProvinceCode, //寄件公司省编码 不能为空
- sendCompanyCityName, //寄件公司市名称 不能为空
- sendCompanyCityCode, //寄件公司市编码 不能为空
- sendCompanyAreaName, //寄件公司区名称 不能为空
- sendCompanyAreaCode, //寄件公司区编码 不能为空
- sendCompanyAddress, //寄件公司详细地址,不能为空
- receiptCompanyId, //收件公司id
- receiptCompanyPhone, //收件公司电话 不能为空
- receiptCompanyName, //收件公司名称 不能为空
- receiptCompanyProvinceName, //收件公司省名称 不能为空
- receiptCompanyProvinceCode, //收件公司省编码 不能为空
- receiptCompanyCityName, //收件公司市名称 不能为空
- receiptCompanyCityCode, //收件公市编码 不能为空
- receiptCompanyAreaName, //收件公区名称 不能为空
- receiptCompanyAreaCode, //收件公司区编码 不能为空
- receiptCompanyAddress, //收件公司地址详情 不能为空
- goods, //商品名称 不能为空
- goodsQuantity, //商品数量 不能为空
- goodsPackingId, //商品包装ID
- goodsCategoryId, //商品类别ID
- goodsPaymentMethod, //付款方式 1,现付 2 到付
- goodsWeight, //商品重量
- goodsPriceProtection * 100, //商品保价,已分为单位
- goodsAgencyFund * 100, //商品代收款,已分为单位
- goodsFreight * 100, //商品运费 不能为空 ,已分为单位
- memo, //备注
- ).then((resp) {
- if (isNotError(context, resp) && this.mounted) {
- setState(() {
- submitStatus = true;
- });
- CreateOrder orderObj = CreateOrder.fromJson(resp.data);
- showDialog < Null > (
- context: context, //BuildContext对象
- barrierDismissible: false,
- builder: (BuildContext context) {
- return SendDialog( //调用对话框
- orderNo: orderObj.orderNo,
- childCallback: (val) {
- if (!val) {
- //跳转
- Navigator.push(context, MaterialPageRoute(builder: (context) {
- return OrderDetail(orderId: orderObj.orderNo, );
- }));
- }
- },
- );
- });
- } else {
- setState(() {
- submitStatus = true;
- });
- }
- });
- });
- }
- showError(String str) {
- showDialog < Null > (
- context: context, //BuildContext对象
- barrierDismissible: false,
- builder: (BuildContext context) {
- return MyAlertDialog( //调用对话框
- text: str, childCallback: (val) {},
- );
- });
- }
- showLineModal(List<CompanyOfLineList> list){
- showDialog < Null > (
- context: context, //BuildContext对象
- barrierDismissible: false,
- builder: (BuildContext context) {
- return ShowLineModal(
- lineList: list, childCallback: (val) {
- lineId = val;
- submitOrder();
- },
- );
- });
- }
- Future getCity(context) async {
- Result result = await CityPickers.showCityPicker(
- context: context,
- );
- return result;
- }
- Widget _tipItem(LikePhoneList obj) {
- return Container(
- child: Column(
- children: < Widget > [
- InkWell(
- child: Container(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.start,
- children: < Widget > [
- Padding(
- padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(50)),
- child: Text(obj.uzerPhone!=null?obj.uzerPhone:obj.companyPhone, style: TextStyle(
- fontSize: ScreenUtil.getInstance().setSp(28),
- color: Color.fromRGBO(74, 74, 74, 1)
- ), )
- ),
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(185),
- child: Text(obj.areaCode,
- textAlign: TextAlign.left,
- style: TextStyle(
- fontSize: ScreenUtil.getInstance().setSp(28),
- color: Color.fromRGBO(155, 155, 155, 1)
- ), ),
- ),
- Text(obj.companyName,
- textAlign: TextAlign.left,
- overflow: TextOverflow.ellipsis,
- style: TextStyle(
- fontSize: ScreenUtil.getInstance().setSp(28),
- color: Color.fromRGBO(155, 155, 155, 1)
- ),
- )
- ],
- ),
- ),
- ),
- onTap: () {
- if (sendPhoneOrGetPhoneTab) {
- sendCompanyPhone = obj.uzerPhone!=null?obj.uzerPhone:obj.companyPhone;
- sendCompanyCode = obj.companyCode;
- sendCompanyName = obj.companyName;
- sendCompanyId = obj.id.toString();
- sendCompanyPhoneController.text = obj.uzerPhone!=null?obj.uzerPhone:obj.companyPhone;
- sendCompanyCodeController.text = obj.companyCode;
- sendCompanyNameController.text = obj.companyName;
- sendPCA = obj.provinceName + ' ' + obj.cityName + ' ' + ' ' + obj.areaName;
- sendCompanyProvinceName = obj.provinceName;
- sendCompanyProvinceCode = obj.provinceCode;
- sendCompanyCityName = obj.cityName;
- sendCompanyCityCode = obj.cityCode;
- sendCompanyAreaName = obj.areaName;
- sendCompanyAreaCode = obj.areaCode;
- sendCompanyAddressController.text = obj.address;
- } else {
- receiptCompanyPhone = obj.uzerPhone!=null?obj.uzerPhone:obj.companyPhone;
- receiptCompanyName = obj.companyName;
- receiptCompanyPhoneController.text = obj.uzerPhone!=null?obj.uzerPhone:obj.companyPhone;
- receiptCompanyNameController.text = obj.companyName;
- receiptCompanyId = obj.id.toString();
- getLineOfCompanyId(receiptCompanyId).then((resp){
- if(isNotError(context, resp) && this.mounted){
- CompanyOfLine obj = CompanyOfLine.fromJson(resp.data);
- setState(() {
- lineList = obj.data;
- });
- }
- });
- getPCA = obj.provinceName + ' ' + obj.cityName + ' ' + ' ' + obj.areaName;
- receiptCompanyProvinceName = obj.provinceName;
- receiptCompanyProvinceCode = obj.provinceCode;
- receiptCompanyCityName = obj.cityName;
- receiptCompanyCityCode = obj.cityCode;
- receiptCompanyAreaName = obj.areaName;
- receiptCompanyAreaCode = obj.areaCode;
- receiptCompanyAddressController.text = obj.address;
- }
- setState(() {
- FocusScope.of(context).requestFocus(FocusNode());
- tipStatus = true;
- });
- },
- ),
- _underLine()
- ],
- ),
- );
- }
- Widget _packageType(String key) {
- return Padding(
- padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
- child: Column(
- children: < Widget > [
- InkWell(
- child: SizedBox(
- height: ScreenUtil.getInstance().setHeight(89),
- child: Center(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: < Widget > [
- Expanded(
- flex: 0,
- child: Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
- ),
- Expanded(
- child: Row(
- mainAxisAlignment: MainAxisAlignment.end,
- children: < Widget > [
- //Text('${value}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
- SizedBox(
- width: ScreenUtil.getInstance().setWidth(500),
- child: Text(key == '包装类型' ? showTextGoodsPackage : key == '商品类型' ? showTextGoodsCategory : showTextPaymentMehod, textAlign: TextAlign.end, )
- ),
- Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
- ],
- )
- )
- ],
- ),
- )
- ),
- onTap: () {
- showPickerModal(context, key);
- },
- ),
- Expanded(
- flex: 0,
- child: _underLine()
- )
- ],
- )
- );
- }
- showPickerModal(BuildContext context, String type) {
- List < dynamic > data = [];
- if (type == '包装类型') {
- for (int i = 0; i < goodsPackageList.length; i++) {
- data.add(goodsPackageList[i].name);
- }
- } else if (type == '商品类型') {
- for (int i = 0; i < goodsCateGoryList.length; i++) {
- data.add(goodsCateGoryList[i].name);
- }
- } else if (type == '付款方式') {
- data = ['现付', '到付'];
- }
- new Picker(
- adapter: PickerDataAdapter < String > (pickerdata: data),
- height: ScreenUtil.getInstance().setHeight(450),
- confirmText: '确定',
- confirmTextStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(64, 98, 254, 1)),
- cancelText: '取消',
- cancelTextStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(153, 153, 153, 1)),
- headercolor: Color.fromRGBO(245, 245, 245, 1),
- itemExtent: ScreenUtil.getInstance().setHeight(80),
- textStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(42, 42, 42, 1)),
- changeToFirst: true,
- hideHeader: false,
- onConfirm: (Picker picker, List value) {
- if (type == '包装类型') {
- setState(() {
- showTextGoodsPackage = goodsPackageList[value[0]].name;
- goodsPackingId = goodsPackageList[value[0]].id;
- });
- } else if (type == '商品类型') {
- showTextGoodsCategory = goodsCateGoryList[value[0]].name;
- goodsCategoryId = goodsCateGoryList[value[0]].id;
- } else if (type == '付款方式') {
- showTextPaymentMehod = data[value[0]];
- if (showTextPaymentMehod == '现付') {
- goodsPaymentMethod = 1;
- } else {
- goodsPaymentMethod = 2;
- }
- }
- }
- ).showModal(this.context); //_scaffoldKey.currentState);
- }
- }
|