|
|
@@ -0,0 +1,313 @@
|
|
|
+import 'package:flutter/material.dart';
|
|
|
+import 'package:flutter_screenutil/flutter_screenutil.dart';
|
|
|
+
|
|
|
+class OrderDetailPage extends StatefulWidget {
|
|
|
+ final int orderId;
|
|
|
+
|
|
|
+ OrderDetailPage({
|
|
|
+ Key key,
|
|
|
+ @required this.orderId
|
|
|
+ }): super(key: key);
|
|
|
+
|
|
|
+ _OrderDetailPageState createState() => _OrderDetailPageState();
|
|
|
+}
|
|
|
+
|
|
|
+class _OrderDetailPageState extends State < OrderDetailPage > {
|
|
|
+
|
|
|
+ final Map < Object,
|
|
|
+ String > sendInfo = {
|
|
|
+ "icon": 'lib/images/icon_send.png',
|
|
|
+ "title": "发件信息",
|
|
|
+ "phone": "010-8788 6890",
|
|
|
+ "code": "345678",
|
|
|
+ "name": "朝阳门大阳汽贸",
|
|
|
+ "address": "北京市朝阳区",
|
|
|
+ "addressDetail": "朝阳门外大街28号"
|
|
|
+ };
|
|
|
+
|
|
|
+ final Map < Object,
|
|
|
+ String > getInfo = {
|
|
|
+ "icon": 'lib/images/icon_shoujian.png',
|
|
|
+ "title": "收件信息",
|
|
|
+ "name": "香河汽修厂",
|
|
|
+ "phone": "010-6734 3426",
|
|
|
+ "address": "河北省廊坊市",
|
|
|
+ "addressDetail": "香河县东大街29号院18栋3单元206"
|
|
|
+ };
|
|
|
+
|
|
|
+ @override
|
|
|
+ void initState() {
|
|
|
+ super.initState();
|
|
|
+ //print(sendInfo.title);
|
|
|
+ }
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return Scaffold(
|
|
|
+ appBar: AppBar(
|
|
|
+ title: Text("订单详情", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(36)), ),
|
|
|
+ centerTitle: true,
|
|
|
+ backgroundColor: Color.fromRGBO(64, 98, 254, 1),
|
|
|
+ ),
|
|
|
+ body: Container(
|
|
|
+ padding: EdgeInsets.fromLTRB(0, ScreenUtil.getInstance().setHeight(20), 0, ScreenUtil.getInstance().setHeight(20)),
|
|
|
+ color: Color.fromRGBO(246, 246, 254, 1),
|
|
|
+ child: ListView(
|
|
|
+ children: < Widget > [
|
|
|
+ _sendInfo(sendInfo),
|
|
|
+ _getInfo(getInfo),
|
|
|
+ ItemInfoWidget(),
|
|
|
+ submitBtn()
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ //resizeToAvoidBottomPadding: false //键盘弹出,页面不跟随向上滑动,防止出现溢出错误
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _sendInfo(Map str) {
|
|
|
+ return Container(
|
|
|
+ color: Colors.white,
|
|
|
+ margin: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
|
|
|
+ child: Column(
|
|
|
+ children: < Widget > [
|
|
|
+ titleWidget(str['icon'], str['title']),
|
|
|
+ underLine(),
|
|
|
+ contentWiget('电话', str['phone']),
|
|
|
+ contentWiget('企业编码', str['code']),
|
|
|
+ contentWiget('企业名称', str['name']),
|
|
|
+ contentWiget('城市/区域', str['address']),
|
|
|
+ lastContentWiget('详细地址', str['addressDetail'])
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _getInfo(Map str) {
|
|
|
+ return Container(
|
|
|
+ color: Colors.white,
|
|
|
+ margin: EdgeInsets.only(bottom: ScreenUtil.getInstance().setHeight(20)),
|
|
|
+ child: Column(
|
|
|
+ children: < Widget > [
|
|
|
+ titleWidget(str['icon'], str['title']),
|
|
|
+ underLine(),
|
|
|
+ contentWiget('企业名称', str['name']),
|
|
|
+ contentWiget('电话', str['phone']),
|
|
|
+ contentWiget('城市/区域', str['address']),
|
|
|
+ lastContentWiget('详细地址', str['addressDetail'])
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+class ItemInfoWidget extends StatefulWidget {
|
|
|
+
|
|
|
+ ItemInfoWidget({
|
|
|
+ Key key
|
|
|
+ }): super(key: key);
|
|
|
+
|
|
|
+ _ItemInfoWidgetState createState() => _ItemInfoWidgetState();
|
|
|
+}
|
|
|
+
|
|
|
+class _ItemInfoWidgetState extends State < ItemInfoWidget > {
|
|
|
+
|
|
|
+ Map < String,
|
|
|
+ String > _itemInfo = {
|
|
|
+ "icon": "lib/images/icon_huowu.png",
|
|
|
+ "title": "货物信息",
|
|
|
+ "itemName": "汽车轮胎",
|
|
|
+ "itemNo": "4",
|
|
|
+ "expressPrice": "15",
|
|
|
+ "collectionPrice": "15800",
|
|
|
+ "supportPrice": "5000",
|
|
|
+ "weight": "600",
|
|
|
+ "itemDesc": "轮胎请核对数量轮胎请"
|
|
|
+ };
|
|
|
+
|
|
|
+ @override
|
|
|
+ Widget build(BuildContext context) {
|
|
|
+ return Container(
|
|
|
+ child: Container(
|
|
|
+ color: Colors.white,
|
|
|
+ child: Column(
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.start,
|
|
|
+ children: < Widget > [
|
|
|
+ titleWidget(_itemInfo['icon'], "货物信息"),
|
|
|
+ underLine(),
|
|
|
+ contentWiget("货物名称", _itemInfo["itemName"]),
|
|
|
+ _inputWidget("数量", _itemInfo["itemNo"]),
|
|
|
+ _inputWidget("运费", _itemInfo["expressPrice"]),
|
|
|
+ _inputWidget("代收", _itemInfo["collectionPrice"]),
|
|
|
+ contentWiget("保价", _itemInfo["supportPrice"]),
|
|
|
+ contentWiget("重量", _itemInfo["weight"]),
|
|
|
+ _descWidget(_itemInfo['itemDesc'])
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _inputWidget(String key, String value) {
|
|
|
+ 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 > [
|
|
|
+ Text(key, style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
|
|
|
+ Container(
|
|
|
+ width: ScreenUtil.getInstance().setWidth(300),
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.end,
|
|
|
+ children: < Widget > [
|
|
|
+ Expanded(
|
|
|
+ //padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(20)),
|
|
|
+ //child: Text(value,style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
|
|
|
+ child: Center(
|
|
|
+ child: TextField(
|
|
|
+ keyboardType: TextInputType.number,
|
|
|
+ textAlign: TextAlign.end,
|
|
|
+ style: TextStyle(
|
|
|
+ fontSize: ScreenUtil.getInstance().setSp(30),
|
|
|
+ color: Color.fromRGBO(136, 136, 136, 1)
|
|
|
+ ),
|
|
|
+ decoration: InputDecoration(
|
|
|
+ border: InputBorder.none,
|
|
|
+ hintText: value,
|
|
|
+ hintStyle: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)),
|
|
|
+ contentPadding: EdgeInsets.fromLTRB(ScreenUtil.getInstance().setWidth(20), 0, 0, 0),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ Icon(Icons.keyboard_arrow_right, color: Color.fromRGBO(199, 199, 204, 1), )
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ Expanded(
|
|
|
+ flex: 0,
|
|
|
+ child: underLine()
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ Widget _descWidget(String str) {
|
|
|
+ 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)), ),
|
|
|
+ );
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+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 contentWiget(String key, String value) {
|
|
|
+ return Padding(
|
|
|
+ padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
|
|
|
+ child: Column(
|
|
|
+ children: < Widget > [
|
|
|
+ Padding(
|
|
|
+ padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(30)),
|
|
|
+ child: SizedBox(
|
|
|
+ height: ScreenUtil.getInstance().setHeight(89),
|
|
|
+ child: Center(
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
+ children: < Widget > [
|
|
|
+ Text('${key}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
|
|
|
+ Text('${value}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ Expanded(
|
|
|
+ flex: 0,
|
|
|
+ child: underLine()
|
|
|
+ )
|
|
|
+ ],
|
|
|
+ )
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+Widget lastContentWiget(String key, String value) {
|
|
|
+ return Padding(
|
|
|
+ padding: EdgeInsets.only(left: ScreenUtil.getInstance().setWidth(30)),
|
|
|
+ child:
|
|
|
+ Padding(
|
|
|
+ padding: EdgeInsets.only(right: ScreenUtil.getInstance().setWidth(30)),
|
|
|
+ child: SizedBox(
|
|
|
+ height: ScreenUtil.getInstance().setHeight(89),
|
|
|
+ child: Center(
|
|
|
+ child: Row(
|
|
|
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
|
|
+ children: < Widget > [
|
|
|
+ Text('${key}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(74, 74, 74, 1)), ),
|
|
|
+ Text('${value}', style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(30), color: Color.fromRGBO(136, 136, 136, 1)), ),
|
|
|
+ ],
|
|
|
+ ),
|
|
|
+ )
|
|
|
+ )
|
|
|
+ ),
|
|
|
+ );
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+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: Text("提交", style: TextStyle(fontSize: ScreenUtil.getInstance().setSp(32), color: Colors.white), ),
|
|
|
+ ),
|
|
|
+ ),
|
|
|
+ onTap: () {
|
|
|
+ print('提交');
|
|
|
+ },
|
|
|
+ );
|
|
|
+}
|