Commit 71a7a8ce1d6525c49981b6dddf70033752e27917

Authored by wdn127929
1 parent 7fa3544b

店员展示,店员详情UI

... ... @@ -11,14 +11,14 @@ if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = "302"
def flutterVersionCode = "303"
if (flutterVersionCode == null) {
flutterVersionCode = '302'
flutterVersionCode = '303'
}
def flutterVersionName = "3.0.2"
def flutterVersionName = "3.0.3"
if (flutterVersionName == null) {
flutterVersionName = '3.0.2'
flutterVersionName = '3.0.3'
}
apply plugin: 'com.android.application'
... ...
import 'package:json_annotation/json_annotation.dart';
part 'personnel_manage_model.g.dart';
@JsonSerializable()
class PersonnelManageModel extends Object {
@JsonKey(name: 'ret')
int ret;
@JsonKey(name: 'data')
PersonnelManageModelData data;
@JsonKey(name: 'msg')
String msg;
PersonnelManageModel(
this.ret,
this.data,
this.msg,
);
factory PersonnelManageModel.fromJson(Map<String, dynamic> srcJson) =>
_$PersonnelManageModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$PersonnelManageModelToJson(this);
}
@JsonSerializable()
class PersonnelManageModelData extends Object {
@JsonKey(name: 'admin')
Admin admin;
@JsonKey(name: 'shopowner')
Shopowner shopowner;
@JsonKey(name: 'cashier')
Cashier cashier;
@JsonKey(name: 'waiter')
Waiter waiter;
@JsonKey(name: 'manager')
Manager manager;
PersonnelManageModelData(
this.admin,
this.shopowner,
this.cashier,
this.waiter,
this.manager,
);
factory PersonnelManageModelData.fromJson(Map<String, dynamic> srcJson) =>
_$PersonnelManageModelDataFromJson(srcJson);
Map<String, dynamic> toJson() => _$PersonnelManageModelDataToJson(this);
}
@JsonSerializable()
class Admin extends Object {
@JsonKey(name: 'listdata')
List<PersonnelManageSunModel> listdata;
@JsonKey(name: 'role_id')
String roleId;
Admin(
this.listdata,
this.roleId,
);
factory Admin.fromJson(Map<String, dynamic> srcJson) =>
_$AdminFromJson(srcJson);
Map<String, dynamic> toJson() => _$AdminToJson(this);
}
@JsonSerializable()
class PersonnelManageSunModel extends Object {
@JsonKey(name: 'id')
String id;
@JsonKey(name: 'openid')
String openid;
@JsonKey(name: 'user_name')
String userName;
@JsonKey(name: 'is_first')
String isFirst;
@JsonKey(name: 'role_id')
String roleId;
@JsonKey(name: 'phone')
String phone;
@JsonKey(name: 'code')
String code;
@JsonKey(name: 'account')
String account;
@JsonKey(name: 'is_on_call')
String isOnCall;
@JsonKey(name: 'headimgurl')
String headimgurl;
PersonnelManageSunModel(
this.id,
this.openid,
this.userName,
this.isFirst,
this.roleId,
this.phone,
this.code,
this.account,
this.isOnCall,
this.headimgurl,
);
factory PersonnelManageSunModel.fromJson(Map<String, dynamic> srcJson) =>
_$PersonnelManageSunModelFromJson(srcJson);
Map<String, dynamic> toJson() => _$PersonnelManageSunModelToJson(this);
}
@JsonSerializable()
class Shopowner extends Object {
@JsonKey(name: 'listdata')
List<PersonnelManageSunModel> listdata;
@JsonKey(name: 'role_id')
String roleId;
Shopowner(
this.listdata,
this.roleId,
);
factory Shopowner.fromJson(Map<String, dynamic> srcJson) =>
_$ShopownerFromJson(srcJson);
Map<String, dynamic> toJson() => _$ShopownerToJson(this);
}
@JsonSerializable()
class Cashier extends Object {
@JsonKey(name: 'listdata')
List<PersonnelManageSunModel> listdata;
@JsonKey(name: 'role_id')
String roleId;
Cashier(
this.listdata,
this.roleId,
);
factory Cashier.fromJson(Map<String, dynamic> srcJson) =>
_$CashierFromJson(srcJson);
Map<String, dynamic> toJson() => _$CashierToJson(this);
}
@JsonSerializable()
class Waiter extends Object {
@JsonKey(name: 'listdata')
List<PersonnelManageSunModel> listdata;
@JsonKey(name: 'role_id')
String roleId;
Waiter(
this.listdata,
this.roleId,
);
factory Waiter.fromJson(Map<String, dynamic> srcJson) =>
_$WaiterFromJson(srcJson);
Map<String, dynamic> toJson() => _$WaiterToJson(this);
}
@JsonSerializable()
class Manager extends Object {
@JsonKey(name: 'listdata')
List<PersonnelManageSunModel> listdata;
@JsonKey(name: 'role_id')
String roleId;
Manager(
this.listdata,
this.roleId,
);
factory Manager.fromJson(Map<String, dynamic> srcJson) =>
_$ManagerFromJson(srcJson);
Map<String, dynamic> toJson() => _$ManagerToJson(this);
}
... ...
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'personnel_manage_model.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
PersonnelManageModel _$PersonnelManageModelFromJson(Map<String, dynamic> json) {
return PersonnelManageModel(
json['ret'] as int,
json['data'] == null
? null
: PersonnelManageModelData.fromJson(json['data'] as Map<String, dynamic>),
json['msg'] as String,
);
}
Map<String, dynamic> _$PersonnelManageModelToJson(
PersonnelManageModel instance) =>
<String, dynamic>{
'ret': instance.ret,
'data': instance.data,
'msg': instance.msg,
};
PersonnelManageModelData _$PersonnelManageModelDataFromJson(Map<String, dynamic> json) {
return PersonnelManageModelData(
json['admin'] == null
? null
: Admin.fromJson(json['admin'] as Map<String, dynamic>),
json['shopowner'] == null
? null
: Shopowner.fromJson(json['shopowner'] as Map<String, dynamic>),
json['cashier'] == null
? null
: Cashier.fromJson(json['cashier'] as Map<String, dynamic>),
json['waiter'] == null
? null
: Waiter.fromJson(json['waiter'] as Map<String, dynamic>),
json['manager'] == null
? null
: Manager.fromJson(json['manager'] as Map<String, dynamic>),
);
}
Map<String, dynamic> _$PersonnelManageModelDataToJson(PersonnelManageModelData instance) => <String, dynamic>{
'admin': instance.admin,
'shopowner': instance.shopowner,
'cashier': instance.cashier,
'waiter': instance.waiter,
'manager': instance.manager,
};
Admin _$AdminFromJson(Map<String, dynamic> json) {
return Admin(
(json['listdata'] as List)
?.map((e) => e == null
? null
: PersonnelManageSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['role_id'] as String,
);
}
Map<String, dynamic> _$AdminToJson(Admin instance) => <String, dynamic>{
'listdata': instance.listdata,
'role_id': instance.roleId,
};
PersonnelManageSunModel _$PersonnelManageSunModelFromJson(
Map<String, dynamic> json) {
return PersonnelManageSunModel(
json['id'] as String,
json['openid'] as String,
json['user_name'] as String,
json['is_first'] as String,
json['role_id'] as String,
json['phone'] as String,
json['code'] as String,
json['account'] as String,
json['is_on_call'] as String,
json['headimgurl'] as String,
);
}
Map<String, dynamic> _$PersonnelManageSunModelToJson(
PersonnelManageSunModel instance) =>
<String, dynamic>{
'id': instance.id,
'openid': instance.openid,
'user_name': instance.userName,
'is_first': instance.isFirst,
'role_id': instance.roleId,
'phone': instance.phone,
'code': instance.code,
'account': instance.account,
'is_on_call': instance.isOnCall,
'headimgurl': instance.headimgurl,
};
Shopowner _$ShopownerFromJson(Map<String, dynamic> json) {
return Shopowner(
(json['listdata'] as List)
?.map((e) => e == null
? null
: PersonnelManageSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['role_id'] as String,
);
}
Map<String, dynamic> _$ShopownerToJson(Shopowner instance) => <String, dynamic>{
'listdata': instance.listdata,
'role_id': instance.roleId,
};
Cashier _$CashierFromJson(Map<String, dynamic> json) {
return Cashier(
(json['listdata'] as List)
?.map((e) => e == null
? null
: PersonnelManageSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['role_id'] as String,
);
}
Map<String, dynamic> _$CashierToJson(Cashier instance) => <String, dynamic>{
'listdata': instance.listdata,
'role_id': instance.roleId,
};
Waiter _$WaiterFromJson(Map<String, dynamic> json) {
return Waiter(
(json['listdata'] as List)
?.map((e) => e == null
? null
: PersonnelManageSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['role_id'] as String,
);
}
Map<String, dynamic> _$WaiterToJson(Waiter instance) => <String, dynamic>{
'listdata': instance.listdata,
'role_id': instance.roleId,
};
Manager _$ManagerFromJson(Map<String, dynamic> json) {
return Manager(
(json['listdata'] as List)
?.map((e) => e == null
? null
: PersonnelManageSunModel.fromJson(e as Map<String, dynamic>))
?.toList(),
json['role_id'] as String,
);
}
Map<String, dynamic> _$ManagerToJson(Manager instance) => <String, dynamic>{
'listdata': instance.listdata,
'role_id': instance.roleId,
};
... ...
... ... @@ -152,5 +152,7 @@ class HttpUrl {
"?service=App.Cookbook.GetSpecBySellerid"; //获取商家计价单位
static const String get_cookbook_by_id =
"?service=App.Cookbook.GetCookbookById"; // 获取单个菜品信息
static const String get_auth_user_lists =
"?service=App.Seller.GetAuthUserLists"; // 店员列表
}
... ...
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/personnel_manage_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/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/round_button.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:one_key/widgets/v_empty_view.dart';
import 'package:provider/provider.dart';
class PersonnelDetailPage extends StatefulWidget {
final PersonnelManageSunModel model;
final String position;
PersonnelDetailPage({Key key, this.model, this.position}) : super(key: key);
@override
_PersonnelDetailPageState createState() => _PersonnelDetailPageState();
}
class _PersonnelDetailPageState extends State<PersonnelDetailPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('店员详情'),
body: SingleChildScrollView(
child: Column(
children: [
Container(
margin: EdgeInsets.all(ScreenUtil().setWidth(40)),
// decoration: BoxDecoration(
// border: Border.all(color: Color.fromRGBO(235, 234, 239, 1)),
// borderRadius: BorderRadius.circular(ScreenUtil().setWidth(10)),
// ),
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
VEmptyView(40),
widget.model.headimgurl != null &&
widget.model.headimgurl != 'null'
? CachedNetworkImage(
imageUrl: widget.model.headimgurl,
fit: BoxFit.cover,
width: ScreenUtil().setWidth(38 * 2),
height: ScreenUtil().setWidth(38 * 2),
)
: Image.asset(
Utils.getImgPath('touxiang'),
fit: BoxFit.cover,
width: ScreenUtil().setWidth(38 * 2),
height: ScreenUtil().setWidth(38 * 2),
),
VEmptyView(30),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
widget.model.userName != null &&
widget.model.userName != 'null'
? widget.model.userName
: '暂未设置名称',
style: TextStyle(
fontSize: ScreenUtil().setWidth(34),
color: MyColours.color_333333),
),
HEmptyView(20),
Image.asset(
Utils.getImgPath('yd_bianji'),
width: ScreenUtil().setWidth(20),
),
],
),
VEmptyView(30),
Text(
widget.model.phone != null &&
widget.model.userName != 'null'
? widget.model.phone
: '',
style: TextStyle(
fontSize: ScreenUtil().setWidth(28),
color: MyColours.color_199095),
),
VEmptyView(30),
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
Provider.of<UserModel>(context, listen: false)
.user
.sellername,
style: TextStyle(
fontSize: ScreenUtil().setWidth(30),
color: MyColours.color_333333),
),
HEmptyView(20),
Text(
widget.position,
style: TextStyle(
fontSize: ScreenUtil().setWidth(28),
color: MyColours.color_199095),
),
],
),
// MyDivider(
// double.infinity,
// ScreenUtil().setWidth(10),
// color: Color.fromRGBO(235, 234, 239, 1),
// ),
VEmptyView(60),
Padding(
padding: EdgeInsets.symmetric(
vertical: ScreenUtil().setWidth(20)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
RoundButton(
text: '移除店员',
fontSize: 30,
isBold: false,
height: ScreenUtil().setWidth(80),
// width: double.infinity,
width: (ScreenUtil.screenWidthDp -
ScreenUtil().setWidth(140)) /
2,
radius: ScreenUtil().setWidth(10),
),
RoundButton(
text: '查看初始密码',
fontSize: 30,
isBold: false,
height: ScreenUtil().setWidth(80),
// width: double.infinity,
width: (ScreenUtil.screenWidthDp -
ScreenUtil().setWidth(140)) /
2,
radius: ScreenUtil().setWidth(10),
),
],
),
),
Padding(
padding: EdgeInsets.only(bottom: ScreenUtil().setWidth(60)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
RoundButton(
text: '设为接单人',
fontSize: 30,
isBold: false,
height: ScreenUtil().setWidth(80),
// width: double.infinity,
width: (ScreenUtil.screenWidthDp -
ScreenUtil().setWidth(140)) /
2,
radius: ScreenUtil().setWidth(10),
),
RoundButton(
text: '绑定微信',
fontSize: 30,
isBold: false,
height: ScreenUtil().setWidth(80),
// width: double.infinity,
width: (ScreenUtil.screenWidthDp -
ScreenUtil().setWidth(140)) /
2,
radius: ScreenUtil().setWidth(10),
),
],
),
),
],
),
)
],
),
),
);
}
}
... ...
import 'package:cached_network_image/cached_network_image.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/screenutil.dart';
import 'package:one_key/models/personnel_manage_model.dart';
import 'package:one_key/provider/personnel_provider.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.dart';
import 'package:one_key/route/navigator_util.dart';
import 'package:one_key/utils/event_bus.dart';
import 'package:one_key/utils/utils.dart';
import 'package:one_key/widgets/MyDivider.dart';
import 'package:one_key/widgets/h_empty_view.dart';
import 'package:one_key/widgets/system_app_bar.dart';
import 'package:provider/provider.dart';
class PersonnelManagePage extends StatefulWidget {
PersonnelManagePage({Key key}) : super(key: key);
@override
_PersonnelManagePageState createState() => _PersonnelManagePageState();
}
class _PersonnelManagePageState extends State<PersonnelManagePage> {
PersonnelProvider personnelProvider;
ScrollController _scrollController = ScrollController();
List<String> titleList = [];
@override
void initState() {
// TODO: implement initState
super.initState();
titleList = ['管理员', '店长', '客户经理', '收银员', '服务员'];
WidgetsBinding.instance.addPostFrameCallback((timeStamp) {
_getAuthUserLists(showLoading: false);
});
}
//获取员工信息列表
_getAuthUserLists({bool showLoading = true}) async {
Map<String, String> params = {
"sellerid": Provider.of<UserModel>(context, listen: false).user.sellerid,
};
await personnelProvider.getAuthUserLists(context, params,
showLoading: showLoading);
}
@override
Widget build(BuildContext context) {
personnelProvider = Provider.of<PersonnelProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar(
'员工与职级管理',
onTap: () {
EventBus().emit('changeStatusColor');
Navigator.of(context).pop();
},
),
body: WillPopScope(
onWillPop: () {
EventBus().emit('changeStatusColor');
Navigator.of(context).pop();
},
child: ListView.builder(
itemCount: titleList.length,
shrinkWrap: true,
controller: _scrollController,
itemBuilder: (BuildContext context, int index) {
String title = titleList[index];
List<PersonnelManageSunModel> data = [];
if (personnelProvider.dataMap != null) {
if (title == '管理员') {
data = personnelProvider.dataMap.admin.listdata;
} else if (title == '店长') {
data = personnelProvider.dataMap.shopowner.listdata;
} else if (title == '客户经理') {
data = personnelProvider.dataMap.manager.listdata;
} else if (title == '收银员') {
data = personnelProvider.dataMap.cashier.listdata;
} else if (title == '服务员') {
data = personnelProvider.dataMap.waiter.listdata;
}
}
return Column(
children: [
Padding(
padding: EdgeInsets.symmetric(
horizontal: ScreenUtil().setWidth(40),
vertical: ScreenUtil().setWidth(40)),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
title == '管理员'
? '${title}'
: '${title} (${data.length}人)',
style: TextStyle(
fontSize: ScreenUtil().setWidth(28),
color: MyColours.color_333333),
),
InkWell(
onTap: () {},
child: Text(
'添加',
style: TextStyle(
fontSize: ScreenUtil().setWidth(30),
color: MyColours.color_199095),
),
)
],
)),
MyDivider(
double.infinity,
ScreenUtil().setWidth(2),
color: MyColours.color_f3f3f3,
),
ListView.builder(
physics: NeverScrollableScrollPhysics(),
itemCount: data.length,
shrinkWrap: true,
controller: _scrollController,
itemBuilder: (BuildContext context, int index) {
PersonnelManageSunModel model = data[index];
return InkWell(
onTap: () {
NavigatorUtil.goPersonnelDetailPage(context,
model: model, position: title);
},
child: Stack(children: [
Column(children: [
Padding(
padding: EdgeInsets.symmetric(
vertical: ScreenUtil().setWidth(20),
horizontal:
ScreenUtil().setWidth(40)),
child: Row(
children: [
ClipRRect(
borderRadius:
BorderRadius.circular(
ScreenUtil()
.setWidth(38)),
child: model.headimgurl !=
null &&
model.headimgurl !=
'null'
? CachedNetworkImage(
imageUrl:
model.headimgurl,
fit: BoxFit.cover,
width: ScreenUtil()
.setWidth(38 * 2),
height: ScreenUtil()
.setWidth(38 * 2),
)
: Image.asset(
Utils.getImgPath(
'touxiang'),
fit: BoxFit.cover,
width: ScreenUtil()
.setWidth(38 * 2),
height: ScreenUtil()
.setWidth(38 * 2),
)),
HEmptyView(40),
Expanded(
child: Text(
model.userName != null &&
model.userName != 'null'
? model.userName
: '暂未设置名称',
style: TextStyle(
fontSize:
ScreenUtil().setWidth(28),
color:
MyColours.color_333333),
)),
Spacer(),
Text(
'工号:${model.account}',
style: TextStyle(
fontSize:
ScreenUtil().setWidth(28),
color:
MyColours.color_999999),
),
HEmptyView(20),
Image.asset(
"assets/arr_right_gray.png",
width: ScreenUtil().setWidth(14),
height: ScreenUtil().setWidth(22),
)
],
)),
MyDivider(
double.infinity,
ScreenUtil().setWidth(2),
color: MyColours.color_f3f3f3,
)
]),
Provider.of<UserModel>(context, listen: false)
.user
.account ==
model.account
? Positioned(
child: Container(
width: ScreenUtil().setWidth(50),
height: ScreenUtil().setWidth(28),
alignment: Alignment.center,
decoration: BoxDecoration(
color: MyColours.color_d93535,
borderRadius: BorderRadius.only(
topRight: Radius.circular(
ScreenUtil()
.setWidth(16)),
bottomRight: Radius.circular(
ScreenUtil()
.setWidth(16)))),
child: Text(
'Call',
style: TextStyle(
color: MyColours.color_ffffff,
fontSize:
ScreenUtil().setSp(18)),
),
))
: SizedBox()
]));
}),
MyDivider(
double.infinity,
ScreenUtil().setWidth(20),
color: Color.fromRGBO(235, 234, 239, 1),
),
],
);
})));
}
}
... ...
... ... @@ -338,28 +338,38 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
smsInfoData: smsInfoData);
},
),
MyDivider(
MyDivider(
double.infinity,
ScreenUtil().setHeight(1),
color: MyColours.color_f3f3f3,
),
MyItem(
title: "菜单管理",
title: "员工管理",
content: "",
callback: () {
NavigatorUtil.goMenuManagePage(context);
NavigatorUtil.goPersonnelManagePage(context);
},
),
MyDivider(
double.infinity,
ScreenUtil().setHeight(1),
color: MyColours.color_f3f3f3,
),
MyItem(
title: "菜单管理",
content: "",
callback: () {
NavigatorUtil.goMenuManagePage(context);
},
),
MyDivider(
double.infinity,
ScreenUtil().setHeight(1),
color: MyColours.color_f3f3f3,
),
MyItem(
title: "包间类型",
content: "",
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/constant.dart';
import 'package:one_key/models/personnel_manage_model.dart';
import 'package:one_key/net/base_resp.dart';
import 'package:one_key/net/dio_util.dart';
import 'package:one_key/net/http_url.dart';
import 'package:one_key/utils/utils.dart';
/**
* 员工管理
*/
class PersonnelProvider extends ChangeNotifier {
PersonnelManageModelData dataMap;
/// 获取店员列表
getAuthUserLists(BuildContext context, Map<String, String> params,
{showLoading = false}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_auth_user_lists,
data: params, showLoading: showLoading)
.catchError((error) {
print(error.toString());
});
if (baseResp != null && baseResp.code == Constant.status_success) {
Map data = baseResp.data;
Map<String, dynamic> tempData = {};
data.forEach((key, value) {
String keyTemp = key.split('_')[0];
String role_id = key.split('_')[1];
tempData[keyTemp] = {'listdata': value, 'role_id': role_id};
});
baseResp.responseData['data'] = tempData;
dataMap = PersonnelManageModel.fromJson(baseResp.responseData).data;
} else {
Utils.showToast(baseResp.msg ?? "");
}
notifyListeners();
}
}
... ...
... ... @@ -5,6 +5,7 @@ import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/models/notebook.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/personnel_manage_model.dart';
import 'package:one_key/models/sms_info.dart';
import 'package:one_key/models/statics_model.dart';
import 'package:one_key/models/table_list.dart';
... ... @@ -421,4 +422,22 @@ class NavigatorUtil {
context, "${Routes.menu_add_dishes_page}?isNew=$isNew&idstr=${idstr}",
replace: replace);
}
/// 员工管理页面
static Future<dynamic> goPersonnelManagePage(BuildContext context,
{replace = false, bool isNew = true, String idstr}) {
return _navigateTo(context, "${Routes.personnel_manage_page}",
replace: replace);
}
/// 员工管理页面
static Future<dynamic> goPersonnelDetailPage(BuildContext context,
{replace = false,
bool isNew = true,
PersonnelManageSunModel model,
String position}) {
return _navigateTo(context,
"${Routes.personnel_detail_page}?model=${FluroConvertUtils.object2string(model)}&position=${Uri.encodeComponent(position)}",
replace: replace);
}
}
... ...
... ... @@ -6,6 +6,7 @@ import 'package:one_key/models/cookbook_model.dart';
import 'package:one_key/models/coupon_model.dart';
import 'package:one_key/models/integral_model.dart';
import 'package:one_key/models/notebook_detail.dart';
import 'package:one_key/models/personnel_manage_model.dart';
import 'package:one_key/models/sms_info.dart';
import 'package:one_key/models/statics_model.dart';
import 'package:one_key/models/table_list.dart';
... ... @@ -35,6 +36,8 @@ import 'package:one_key/pages/detail/handle_online_page.dart';
import 'package:one_key/pages/detail/notebook_detail_page.dart';
import 'package:one_key/pages/login/web_page.dart';
import 'package:one_key/pages/message/message_order_menu.dart';
import 'package:one_key/pages/my/%20%20personnel_type/personnel_detail_page.dart';
import 'package:one_key/pages/my/%20%20personnel_type/personnel_manage_page.dart';
import 'package:one_key/pages/my/base_info.dart';
import 'package:one_key/pages/my/book_time_set.dart';
import 'package:one_key/pages/my/contant_page.dart';
... ... @@ -71,6 +74,7 @@ import 'package:one_key/provider/notebook_detail_change_model.dart';
import 'package:one_key/provider/notebook_detail_model.dart';
import 'package:one_key/provider/order_food_provider.dart';
import 'package:one_key/provider/other_login_provider.dart';
import 'package:one_key/provider/personnel_provider.dart';
import 'package:one_key/provider/remark_manager_model.dart';
import 'package:one_key/provider/sms_recharge_provider.dart';
import 'package:one_key/provider/statistics_provider.dart';
... ... @@ -659,3 +663,22 @@ var menuAddDishesPageHandle = new Handler(
// return ChangeNotifierProvider<UploadImageProvider>(
// create: (_) => UploadImageProvider(), child: EnterStoreFrontPhotoPage());
});
///店员管理
var personnelManagePageHandle = new Handler(
handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
return ChangeNotifierProvider<PersonnelProvider>(
create: (_) => PersonnelProvider(), child: PersonnelManagePage());
});
///店员详情页面
var personnelDetailPageHandle = new Handler(
handlerFunc: (BuildContext context, Map<dynamic, List<Object>> params) {
PersonnelManageSunModel data = PersonnelManageSunModel.fromJson(json
.decode(FluroConvertUtils.fluroCnParamsDecode(params["model"].first)));
String position = params["position"].first;
return ChangeNotifierProvider<PersonnelProvider>(
create: (_) => PersonnelProvider(),
child: PersonnelDetailPage(model: data, position: position));
});
... ...
... ... @@ -58,6 +58,9 @@ class Routes {
static String menu_manage_page = "/menu_manage_page"; //菜单管理页面
static String menu_category_page = "/menu_category_page"; //菜单分类管理
static String menu_add_dishes_page = "/menu_add_dishes_page"; //添加菜品页面
static String personnel_manage_page = "/personnel_manage_page"; //店员管理页面
static String personnel_detail_page = "/personnel_detail_page"; //店员详情页面
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -123,5 +126,10 @@ class Routes {
router.define(menu_manage_page, handler: menuManagePageHandle);
router.define(menu_category_page, handler: menuCategoryPageHandle);
router.define(menu_add_dishes_page, handler: menuAddDishesPageHandle);
router.define(personnel_manage_page, handler: personnelManagePageHandle);
router.define(personnel_detail_page, handler: personnelDetailPageHandle);
}
}
... ...