Commit e18fde029630d6f3da7982636b65131545427ebd

Authored by wdn127929
1 parent 84d5981d

新增创建区域

import 'package:json_annotation/json_annotation.dart';
part 'area_model.g.dart';
@JsonSerializable()
class AreaModel extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
List<AreaSunModel> data;
@JsonKey(name: 'msg')
String msg;
AreaModel(this.ret,this.data,this.msg,);
factory AreaModel.fromJson(Map<String, dynamic> srcJson) => _$AreaModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$AreaModelToJson(this);
}
@JsonSerializable()
class AreaSunModel extends Object {
@JsonKey(name: 'id')
String id;
@JsonKey(name: 'sellerid')
String sellerid;
@JsonKey(name: 'name')
String name;
@JsonKey(name: 'order_o')
String orderO;
@JsonKey(name: 'status')
String status;
@JsonKey(name: 'cdate')
String cdate;
AreaSunModel(this.id,this.sellerid,this.name,this.orderO,this.status,this.cdate,);
factory AreaSunModel.fromJson(Map<String, dynamic> srcJson) => _$AreaSunModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$AreaSunModelToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'area_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
AreaModel _$AreaModelFromJson(Map<String, dynamic> json) {
return AreaModel(
json['ret'] as int,
(json['data'][0] as List)
?.map((e) =>
e == null ? null : AreaSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['msg'] as String,
);
}
Map<String, dynamic> _$AreaModelToJson(AreaModel instance) => <String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg,
};
AreaSunModel _$AreaSunModelFromJson(Map<String, dynamic> json) {
return AreaSunModel(
json['id'] as String,
json['sellerid'] as String,
json['name'] as String,
json['order_o'] as String,
json['status'] as String,
json['cdate'] as String,
);
}
Map<String, dynamic> _$AreaSunModelToJson(AreaSunModel instance) =>
<String, dynamic>{
'id': instance.id,
'sellerid': instance.sellerid,
'name': instance.name,
'order_o': instance.orderO,
'status': instance.status,
'cdate': instance.cdate,
};
... ...
... ... @@ -101,4 +101,9 @@ class HttpUrl {
"?service=App.User.CheckbindPhone"; //APP微信登录后检测是否绑定过手机号
static const String get_integral_list =
"?service=App.Activity.GetIntegralList"; //获取客户经理积分列表
static const String add_table_area =
"?service=App.Tables.AddTableRegion"; // 添加商家桌位区域
static const String get_area_by_sellerid =
"?service=App.Tables.GetRegionBySellerid"; // 获取区域列表
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/widgets/h_empty_view.dart';
class AreaItemTable extends StatefulWidget {
final String currentArea; //当前选中区域名称
final Area area;
final ValueChanged selectCallback;
AreaItemTable(this.area, this.currentArea, this.selectCallback);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return new AreaItemTableState();
}
}
class AreaItemTableState extends State<AreaItemTable> {
@override
Widget build(BuildContext context) {
// TODO: implement build
Area area = widget.area;
bool isSelected = area.name == widget.currentArea;
return GestureDetector(
onTap: () {
if (widget.selectCallback != null) {
widget.selectCallback(widget.area);
}
},
child: Stack(
children: <Widget>[
Container(
// width: ScreenUtil().setWidth(189),
height: ScreenUtil().setWidth(50),
margin: EdgeInsets.only(right: ScreenUtil().setWidth(40)),
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(40)),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30)),
color: isSelected
? MyColours.color_199095
: MyColours.color_ffffff,
border: Border.all(
color: MyColours.color_199095,
width: ScreenUtil().setWidth(2))),
child: Text(
area.name,
style: TextStyle(
color: isSelected
? MyColours.color_ffffff
: MyColours.color_199095,
fontSize: ScreenUtil().setSp(32),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal),
),
),
Positioned(
left: 0,
top: 0,
child: Container(
width: ScreenUtil().setWidth(73),
height: ScreenUtil().setHeight(37),
alignment: Alignment.center,
decoration: BoxDecoration(
color: area.count <= 0
? MyColours.color_999999
: MyColours.color_63a6d1,
borderRadius: BorderRadius.only(
topRight: Radius.circular(ScreenUtil().setWidth(8)),
bottomRight: Radius.circular(ScreenUtil().setWidth(8)))),
child: Text(
area.count == 0
? "满座"
: area.count == -1
? '无'
: "余${area.count}",
style: TextStyle(
color: MyColours.color_ffffff,
fontSize: ScreenUtil().setSp(26),
decoration: TextDecoration.none,
fontWeight: FontWeight.normal)),
),
),
],
),
);
}
}
... ...
import 'dart:async';
import 'package:common_utils/common_utils.dart';
import 'package:dotted_border/dotted_border.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/tableOuter.dart';
import 'package:one_key/pages/table/area_item_table.dart';
import 'package:one_key/provider/table_manager_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/utils/dialog_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/app_bar.dart';
import 'package:one_key/widgets/area_item.dart';
... ... @@ -17,8 +23,12 @@ import 'package:one_key/widgets/page_exception.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/models/table.dart' as t;
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
import 'dart:convert' as convert;
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
const scrollDuration = Duration(microseconds: 500);
class TableManagerPage extends StatefulWidget {
@override
... ... @@ -30,6 +40,15 @@ class TableManagerPage extends StatefulWidget {
class TableManagerPageState extends State<TableManagerPage> {
TableManagerModel tableManagerModel;
final ItemScrollController itemScrollController = ItemScrollController();
bool isTap = false;
int min;
int max;
int _selectIndex;
ScrollController _areaController = ScrollController();
final ItemPositionsListener itemPositionsListener =
ItemPositionsListener.create();
@override
void initState() {
... ... @@ -42,10 +61,159 @@ class TableManagerPageState extends State<TableManagerPage> {
EventBus().on("refresh_tablemanager", (arg) {
//订座-完成预订 刷新管理桌位
tableManagerModel.getReserveList(context);
print(tableManagerModel);
});
});
}
Widget list(List data) => ScrollablePositionedList.builder(
itemCount: data.length,
itemBuilder: (context, index) => item(index),
itemScrollController: itemScrollController,
itemPositionsListener: itemPositionsListener,
reverse: false,
scrollDirection: Axis.vertical,
);
void scrollTo(int index) => itemScrollController.scrollTo(
index: index,
duration: scrollDuration,
curve: Curves.easeInOutCubic,
alignment: 0);
void jumpTo(int index) =>
itemScrollController.jumpTo(index: index, alignment: 0);
/// Generate item number [i].
Widget item(int i) {
int heightSum;
int length =
tableManagerModel.areaTableMap[tableManagerModel.areas[i].name].length;
if (length % 4 == 0) {
heightSum = (length / 4).floor();
} else {
heightSum = (length / 4).floor() + 1;
}
return Container(
height: ScreenUtil().setWidth(185) * heightSum +
heightSum * 10 +
ScreenUtil().setWidth(60 * 2),
child: Column(
children: [
Container(
alignment: Alignment.center,
height: ScreenUtil().setWidth(30 * 2),
child: Text(tableManagerModel.areas[i].name,
style: TextStyle(
fontSize: ScreenUtil().setWidth(30),
color: MyColours.color_666666)),
),
Container(
constraints: BoxConstraints(
minHeight: ScreenUtil().setWidth(185) * heightSum),
height: ScreenUtil().setWidth(200) * heightSum + heightSum * 10,
child: GridView.builder(
physics: NeverScrollableScrollPhysics(),
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 4,
childAspectRatio: 8 / 9,
),
itemBuilder: (context, index) {
return Selector<TableManagerModel, t.Table>(
shouldRebuild: (pre, next) => true,
selector: (context, model) => model.currentTables[index],
builder: (context, table, _) {
return TableItem(table, onSelected: (table) {
if ((table as t.Table).selected) {
tableManagerModel.selectTables.add(table);
} else {
tableManagerModel.selectTables
.removeWhere((t) => t.id == table.id);
}
DialogUtil.showTableManagerDialog(context, table)
.then((value) {
if (value != null) {
switch (value) {
case 1: //查看详情
NavigatorUtil.goNotebookDetailPage(context,
tableManagerModel.tableMap[table.id].id);
break;
case 2: //订座
NavigatorUtil.goNoteBookChangePage(
context,
NotebookDetail.fromTableManager(
tableManagerModel.getCurrDdateStr(),
tableManagerModel.currTimeIndex
.toString(),
table),
"");
break;
case 3: //停用,启用桌位
Map<String, String> params = {
"id": (table as t.Table).id,
"status": (table as t.Table).enable == "1"
? "0"
: "1"
};
tableManagerModel
.setSwitchStatus(context, params)
.then((value) {
if (value != null) {
(table as t.Table).enable = ((int.parse(
(table as t.Table)
.enable) +
1) %
2)
.toString();
if ((table as t.Table).enable == "1") {
for (Area area
in tableManagerModel.areas) {
if (area.name ==
tableManagerModel.currentArea) {
if (table.sign != '5' &&
table.sign != '1') {
//已预订
area.count++;
}
break;
}
}
} else {
for (Area area
in tableManagerModel.areas) {
if (area.name ==
tableManagerModel.currentArea) {
if (table.sign != '5' &&
table.sign != '1') {
//已预订
area.count--;
}
break;
}
}
}
tableManagerModel.notifyListeners();
}
});
break;
}
}
});
},
canSelected: false,
fromPage: 'table_manage',
tableMap: tableManagerModel.tableMap,
rid: "");
},
);
},
itemCount: tableManagerModel
.areaTableMap[tableManagerModel.areas[i].name].length,
)),
],
));
}
@override
Widget build(BuildContext context) {
return Consumer<TableManagerModel>(
... ... @@ -171,11 +339,6 @@ class TableManagerPageState extends State<TableManagerPage> {
],
),
),
Container(
height: ScreenUtil().setWidth(20),
width: double.infinity,
color: MyColours.color_f5f5f5,
),
Expanded(
child: Consumer<TableManagerModel>(
builder: (context, model, child) {
... ... @@ -196,178 +359,317 @@ class TableManagerPageState extends State<TableManagerPage> {
} else {
return Container(
color: MyColours.color_ffffff,
child: Row(
children: <Widget>[
Container(
width: ScreenUtil().setWidth(170),
height: double.infinity,
color: MyColours.color_f1f1f1,
child: ListView.builder(
itemBuilder: (context, index) {
return Selector<TableManagerModel, Area>(
selector: (context, model) =>
model.areas[index],
builder: (context, area, _) {
return AreaItem(
area, tableManagerModel.currentArea,
(area) {
setState(() {
tableManagerModel.currentArea =
(area as Area).name;
tableManagerModel.currentTables =
tableManagerModel.areaTableMap[
tableManagerModel.currentArea];
});
});
},
);
},
itemExtent: ScreenUtil().setHeight(207),
itemCount: tableManagerModel.areas.length,
),
),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(
vertical: ScreenUtil().setHeight(10),
horizontal: ScreenUtil().setWidth(9)),
child: Column(
children: [
Expanded(
child: GridView.builder(
gridDelegate:
SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3,
childAspectRatio: 8 / 9),
itemBuilder: (context, index) {
return Selector<TableManagerModel,
t.Table>(
shouldRebuild: (pre, next) => true,
selector: (context, model) =>
model.currentTables[index],
builder: (context, table, _) {
return TableItem(table,
onSelected: (table) {
if ((table as t.Table).selected) {
tableManagerModel.selectTables
.add(table);
} else {
tableManagerModel.selectTables
.removeWhere((t) =>
t.id == table.id);
child: Column(children: <Widget>[
VEmptyView(20),
ValueListenableBuilder<Iterable<ItemPosition>>(
valueListenable:
itemPositionsListener.itemPositions,
builder: (context, positions, child) {
if (positions.isNotEmpty) {
// max = positions
// .where((ItemPosition position) =>
// position.itemLeadingEdge < 1)
// .reduce((ItemPosition max,
// ItemPosition position) =>
// position.itemLeadingEdge >
// max.itemLeadingEdge
// ? position
// : max)
// .index;
min = positions
.where((ItemPosition position) =>
position.itemTrailingEdge > 0)
.reduce((ItemPosition min,
ItemPosition position) =>
position.itemTrailingEdge <
min.itemTrailingEdge
? position
: min)
.index;
if (isTap) {
if (min >= _selectIndex) {
_selectIndex = min;
} else {
_selectIndex = _selectIndex;
}
isTap = false;
} else {
_selectIndex = min;
}
tableManagerModel.currentArea =
tableManagerModel.areas[_selectIndex].name;
}
return Container(
height: ScreenUtil().setWidth(50),
color: MyColours.color_ffffff,
margin: EdgeInsets.only(
bottom: ScreenUtil().setWidth(20)),
child: ListView.builder(
controller: _areaController,
scrollDirection: Axis.horizontal,
itemBuilder: (context, index) {
if (index ==
tableManagerModel.areas.length ||
tableManagerModel.areas.length == 0) {
return InkWell(
onTap: () async {
//添加区域弹框
await DialogUtil
.openCreateAreaDialog(context,
onTap: (value) async {
print(value);
//添加区域
bool success =
await tableManagerModel
.addTableAreas(
context, value);
print(success);
if (success) {
Utils.showToast('添加成功!');
TableOuter tableOuter =
TableOuter();
tableOuter.name = value;
tableOuter.list = [];
tableManagerModel.tableOuterList
.add(tableOuter);
tableManagerModel.initData();
Timer(
Duration(milliseconds: 500),
() => _areaController
.jumpTo(_areaController
.position
.maxScrollExtent));
// await tableManagerModel
// .getTableList(context);
// await tableManagerModel
// .initData();
}
DialogUtil.showTableManagerDialog(
context, table)
.then((value) {
if (value != null) {
switch (value) {
case 1: //查看详情
NavigatorUtil
.goNotebookDetailPage(
context,
tableManagerModel
.tableMap[
table.id]
.id);
break;
case 2: //订座
NavigatorUtil.goNoteBookChangePage(
context,
NotebookDetail.fromTableManager(
tableManagerModel
.getCurrDdateStr(),
tableManagerModel
.currTimeIndex
.toString(),
table),
"");
break;
case 3: //停用,启用桌位
Map<String, String>
params = {
"id": (table as t.Table)
.id,
"status": (table as t
.Table)
.enable ==
"1"
? "0"
: "1"
};
tableManagerModel
.setSwitchStatus(
context, params)
.then((value) {
if (value != null) {
(table as t.Table)
.enable =
((int.parse((table as t.Table)
.enable) +
1) %
2)
.toString();
if ((table as t.Table)
.enable ==
"1") {
for (Area area
in tableManagerModel
.areas) {
if (area.name ==
tableManagerModel
.currentArea) {
if (table.sign !=
'5' &&
table.sign !=
'1') {
//已预订
area.count++;
}
break;
}
}
} else {
for (Area area
in tableManagerModel
.areas) {
if (area.name ==
tableManagerModel
.currentArea) {
if (table.sign !=
'5' &&
table.sign !=
'1') {
//已预订
area.count--;
}
break;
}
}
}
tableManagerModel
.notifyListeners();
}
});
break;
}
}
});
},
canSelected: false,
fromPage: 'table_manage',
tableMap:
tableManagerModel.tableMap,
rid: "");
});
},
);
},
itemCount: tableManagerModel
.currentTables.length,
)),
],
)),
)
],
),
child: DottedBorder(
dashPattern: [5, 5, 5, 5],
borderType: BorderType.RRect,
radius: Radius.circular(
ScreenUtil().setWidth(30)),
// padding: EdgeInsets.all(ScreenUtil().setWidth(70)),
color: MyColours.color_199095,
strokeWidth:
ScreenUtil().setWidth(2),
child: ClipRRect(
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil()
.setWidth(30))),
child: Container(
height: ScreenUtil()
.setWidth(50 * 2),
width: ScreenUtil()
.setWidth(60 * 2),
child: Column(
mainAxisAlignment:
MainAxisAlignment.center,
children: [
Image.asset(
Utils.getImgPath(
'add_store'),
width: ScreenUtil()
.setWidth(22)),
],
),
),
),
));
} else {
return Selector<TableManagerModel, Area>(
selector: (context, model) =>
model.areas[index],
builder: (context, area, _) {
return AreaItemTable(area,
tableManagerModel.currentArea,
(area) {
isTap = true;
scrollTo(index);
// setState(() {
tableManagerModel.currentArea =
tableManagerModel
.areas[index].name;
tableManagerModel.currentTables =
tableManagerModel.areaTableMap[
tableManagerModel
.currentArea];
_selectIndex = index;
// });
// setState(() {
// tableManagerModel.currentArea =
// (area as Area).name;
// tableManagerModel.currentTables =
// tableManagerModel.areaTableMap[
// tableManagerModel
// .currentArea];
// });
});
},
);
}
},
// itemExtent: ScreenUtil().setHeight(207),
itemCount: tableManagerModel.areas.length + 1,
),
);
}),
Expanded(
child: Container(
color: MyColours.color_ffffff,
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40)),
width: double.infinity,
child: list(tableManagerModel.areas)),
),
// Expanded(
// child: Container(
// color: MyColours.color_e5e5e5,
// padding: EdgeInsets.symmetric(
// vertical: ScreenUtil().setHeight(10),
// horizontal: ScreenUtil().setWidth(9)),
// child: Column(
// children: [
// Expanded(
// child: GridView.builder(
// gridDelegate:
// SliverGridDelegateWithFixedCrossAxisCount(
// crossAxisCount: 3,
// childAspectRatio: 8 / 9),
// itemBuilder: (context, index) {
// return Selector<TableManagerModel,
// t.Table>(
// shouldRebuild: (pre, next) => true,
// selector: (context, model) =>
// model.currentTables[index],
// builder: (context, table, _) {
// return TableItem(table,
// onSelected: (table) {
// if ((table as t.Table).selected) {
// tableManagerModel.selectTables
// .add(table);
// } else {
// tableManagerModel.selectTables
// .removeWhere((t) =>
// t.id == table.id);
// }
// DialogUtil.showTableManagerDialog(
// context, table)
// .then((value) {
// if (value != null) {
// switch (value) {
// case 1: //查看详情
// NavigatorUtil
// .goNotebookDetailPage(
// context,
// tableManagerModel
// .tableMap[
// table.id]
// .id);
// break;
// case 2: //订座
// NavigatorUtil.goNoteBookChangePage(
// context,
// NotebookDetail.fromTableManager(
// tableManagerModel
// .getCurrDdateStr(),
// tableManagerModel
// .currTimeIndex
// .toString(),
// table),
// "");
// break;
// case 3: //停用,启用桌位
// Map<String, String>
// params = {
// "id": (table as t.Table)
// .id,
// "status": (table as t
// .Table)
// .enable ==
// "1"
// ? "0"
// : "1"
// };
// tableManagerModel
// .setSwitchStatus(
// context, params)
// .then((value) {
// if (value != null) {
// (table as t.Table)
// .enable =
// ((int.parse((table as t.Table)
// .enable) +
// 1) %
// 2)
// .toString();
// if ((table as t.Table)
// .enable ==
// "1") {
// for (Area area
// in tableManagerModel
// .areas) {
// if (area.name ==
// tableManagerModel
// .currentArea) {
// if (table.sign !=
// '5' &&
// table.sign !=
// '1') {
// //已预订
// area.count++;
// }
// break;
// }
// }
// } else {
// for (Area area
// in tableManagerModel
// .areas) {
// if (area.name ==
// tableManagerModel
// .currentArea) {
// if (table.sign !=
// '5' &&
// table.sign !=
// '1') {
// //已预订
// area.count--;
// }
// break;
// }
// }
// }
// tableManagerModel
// .notifyListeners();
// }
// });
// break;
// }
// }
// });
// },
// canSelected: false,
// fromPage: 'table_manage',
// tableMap:
// tableManagerModel.tableMap,
// rid: "");
// },
// );
// },
// itemCount: tableManagerModel
// .currentTables.length,
// )),
// ],
// )),
// )
// ],
]),
);
}
},
... ...
... ... @@ -4,6 +4,7 @@ import 'package:one_key/constant/constant.dart';
import 'package:one_key/constant/error.dart';
import 'package:one_key/constant/state.dart';
import 'package:one_key/models/area.dart';
import 'package:one_key/models/area_model.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/tableOuter.dart';
import 'package:one_key/net/base_resp.dart';
... ... @@ -273,6 +274,27 @@ class TableManagerModel with ChangeNotifier {
return tableOuter;
}).toList();
}
List<AreaSunModel> areaSunModelList = await getRegionBySellerid(context);
List<String> tempTableName = [];
List<String> tempAreaName = [];
for (TableOuter itemTable in tableOuterList) {
tempTableName.add(itemTable.name);
}
for (AreaSunModel itemArea in areaSunModelList) {
tempAreaName.add(itemArea.name);
}
if (tempAreaName.length > tempTableName.length) {
for (var itemT in tempTableName) {
tempAreaName.removeWhere((element) => element == itemT);
}
for (var item in tempAreaName) {
TableOuter tableOuter = TableOuter();
tableOuter.name = item;
tableOuter.list = [];
tableOuterList.add(tableOuter);
}
}
return tableOuterList;
}
... ... @@ -398,7 +420,7 @@ class TableManagerModel with ChangeNotifier {
areaTableMap["${outer.name}"] = outer.list;
Area area = Area();
area.name = outer.name;
area.count = count;
area.count = outer.list.length == 0 ? -1 : count;
areas.add(area);
}
if (areaTableMap.isNotEmpty) {
... ... @@ -450,4 +472,61 @@ class TableManagerModel with ChangeNotifier {
Utils.showToast(baseResp.msg);
}
}
//添加商家桌位区域
Future<bool> addTableAreas(BuildContext context, String name) async {
Map<String, String> params = {
"sellerid": userModel.user.sellerid,
"name": name
};
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.add_table_area,
data: params, showLoading: true)
.catchError((error) {
print(error.toString());
// if (error is MyError) {
// switch (error.type) {
// case 1:
// pageState = PageState.ConnectivityError;
// break;
// case 2:
// pageState = PageState.ConnectivityTimeOut;
// break;
// default:
// pageState = PageState.ConnectivityError;
// break;
// }
// }
// notifyListeners();
return false;
});
if (baseResp.code == Constant.status_success) {
if (baseResp.responseData['data'] != null &&
baseResp.responseData['data'].length > 0) {
return true;
} else {
Utils.showToast(baseResp.msg ?? '新增区域失败!');
}
}
return false;
}
//获取区域数据
Future<List<AreaSunModel>> getRegionBySellerid(BuildContext context) async {
Map<String, String> params = {"sellerid": userModel.user.sellerid};
BaseResp<List> baseResp = await DioUtil()
.request<List>(context, Method.get, HttpUrl.get_area_by_sellerid,
data: params, showLoading: false)
.catchError((error) {
print(error.toString());
});
List<AreaSunModel> areaSunModelList;
if (baseResp.code == Constant.status_success) {
if (baseResp.data.length > 0) {
areaSunModelList = AreaModel.fromJson(baseResp.responseData).data;
}
}
return areaSunModelList;
}
}
... ...
... ... @@ -15,6 +15,7 @@ import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/common_button.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/table_item.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
... ... @@ -25,6 +26,132 @@ import 'package:url_launcher/url_launcher.dart';
typedef CustomCallBack = void Function(Object object);
class DialogUtil {
static Future openCreateAreaDialog(BuildContext context,
{CustomCallBack onTap}) async {
TextEditingController controller = TextEditingController();
final action = await showDialog(
context: context,
barrierDismissible: false,
builder: (BuildContext context) {
return Center(
child: Container(
padding:
EdgeInsets.symmetric(horizontal: ScreenUtil().setWidth(72)),
height: ScreenUtil().setWidth(380),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(ScreenUtil().setWidth(30))),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(
Radius.circular(ScreenUtil().setWidth(30)))), //设置圆角
child: Column(
children: [
VEmptyView(40),
Container(
// height: ScreenUtil().setWidth(48),
alignment: Alignment.center,
child: Text('新建区域',
style: TextStyle(
fontSize: ScreenUtil().setSp(36),
color: MyColours.color_199095)),
),
Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40)),
child: Row(
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
'区域名称',
style: TextStyle(
fontSize: ScreenUtil().setSp(30),
color: MyColours.color_199095),
),
HEmptyView(10),
Expanded(
child: TextField(
controller: controller,
maxLines: 1,
// //光标颜色
// cursorColor:
// widget.isSelect ? Colors.white : MyColours.color_199095,
//输入文本的样式
style: TextStyle(
fontSize: ScreenUtil().setSp(26),
),
decoration: InputDecoration(
contentPadding: EdgeInsets.only(
top: 15, bottom: -15), //设置文字内容与边框距离
enabledBorder: UnderlineInputBorder(
borderSide:
BorderSide(color: MyColours.color_d8d8d8),
),
focusedBorder: UnderlineInputBorder(
borderSide:
BorderSide(color: MyColours.color_d8d8d8),
),
hintText: '点击输入区域名称',
hintStyle: TextStyle(
color: MyColours.color_999999,
fontSize: ScreenUtil().setSp(26),
),
),
onChanged: (value) {},
onEditingComplete: () {
FocusScope.of(context)
.requestFocus(FocusNode()); //点击空白处隐藏键盘
},
keyboardType: TextInputType.text,
),
)
],
),
),
VEmptyView(60),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
RoundButton(
text: '取消',
width: ScreenUtil().setWidth(120),
height: ScreenUtil().setWidth(84),
gradientStart: MyColours.color_ffffff,
gradientEnd: MyColours.color_ffffff,
textColor: MyColours.color_199095,
borderColor: MyColours.color_199095,
isBold: false,
radius: ScreenUtil().setWidth(20),
onPressed: () {
Navigator.pop(context);
},
),
HEmptyView(40),
RoundButton(
text: '保存',
width: ScreenUtil().setWidth(120),
height: ScreenUtil().setWidth(84),
isBold: false,
radius: ScreenUtil().setWidth(20),
onPressed: () {
if (controller.text.trim() == '') {
Utils.showToast('请输入区域名称!');
return;
}
onTap(controller.text);
Navigator.pop(context, controller.text);
})
],
)
],
),
),
),
);
},
);
}
//跳转拨打电话页面
static goPhone(String phoneNum) async {
String url = "tel:$phoneNum";
... ...