Commit 838c246d1afa09c981cdae196d2dc6dc59abdd0d

Authored by wdn127929
1 parent b38710fe

评价管理--部分UI

... ... @@ -61,6 +61,10 @@ class Constant {
'店长',
'客户经理',
],
'评价管理': [
'管理员',
'店长',
],
'创建宴会': ['管理员', '店长', '客户经理', '收银员', '服务员', '前台'],
'编辑宴会': ['管理员', '店长', '客户经理', '收银员', '服务员', '前台'],
'丢单': ['管理员', '店长', '客户经理', '收银员', '服务员', '前台'],
... ...
... ... @@ -454,4 +454,12 @@ class HttpUrl {
static const String wx_send_cancel_sms =
"?service=App.SendSMS.WxSendCancelSms"; // 取消订单发送短信
static const String get_seller_comments =
"?service=App.Customer.GetSellerComments"; // 获取评价列表
static const String get_count_comment_label =
"?service=App.Customer.GetCountCommentLabel"; // 获取标签
static const String set_comment = "?service=App.User.SetComment"; // 用户评论【预订】
}
... ...
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart';
import 'package:one_key/provider/user_model.dart';
import 'package:one_key/res/colors.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';
import '../../../provider/comment_manage_provider.dart';
import '../../../utils/event_bus.dart';
import '../../../utils/screen_util.dart';
import '../../../utils/utils.dart';
/**
* 评价管理
*/
class CommentManageHomePage extends StatefulWidget {
@override
_CommentManageHomePageState createState() => _CommentManageHomePageState();
}
class _CommentManageHomePageState extends State<CommentManageHomePage> {
CommentManageProvider commentManageProvider;
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
_getSellerComments();
});
}
@override
void dispose() {
bus.emit('changeStatusColor');
super.dispose();
}
///我的客户首页
_getSellerComments({bool isShowLoading = true}) async {
Map<String, String> pramas = {
'sid': Provider.of<UserModel>(context, listen: false).user.sellerid,
'scene': '3',
'status': '1'
};
// label
await commentManageProvider.getSellerComments(context, pramas,
isShowLoading: isShowLoading);
}
List<Widget> _labelWidget() {
List<Widget> data = [];
for (int i = 0; i < 10; i++) {
data.add(Container(
padding: EdgeInsets.symmetric(horizontal: w(8), vertical: w(3)),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(r(10)),
color: true ? MyColours.color_33438E93 : MyColours.color_F8F7F3),
child: Text(
'全部',
style: TextStyle(
fontSize: font(14),
color: true ? MyColours.color_438E93 : MyColours.color_515151),
),
));
}
return data;
}
@override
Widget build(BuildContext context) {
commentManageProvider =
Provider.of<CommentManageProvider>(context, listen: true);
return Scaffold(
backgroundColor: MyColours.color_ffffff,
appBar: SystemAppBar('评价管理'),
body: Padding(
padding: EdgeInsets.symmetric(horizontal: w(20)),
child: Column(
children: [
Container(
child: Wrap(
runSpacing: w(10),
spacing: w(10),
children: _labelWidget()),
),
VEmptyView(10),
Expanded(
child: ListView.builder(
itemCount: 10,
shrinkWrap: true,
itemBuilder: (context, index) {
return Container(
margin: EdgeInsets.only(top: w(10)),
decoration: BoxDecoration(
border: Border(
bottom: BorderSide(
width: w(0.5),
color: MyColours.color_DBDBDB))),
child: Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Container(
width: w(50),
height: w(50),
margin: EdgeInsets.only(
left: w(8), right: w(8), top: w(20)),
child: ClipRRect(
borderRadius:
BorderRadius.circular(w(50)),
child: Container(
width: w(50),
height: w(50),
decoration: BoxDecoration(
color: MyColours.color_d9d9d9,
borderRadius:
BorderRadius.circular(r(50))),
))),
HEmptyView(34),
Expanded(
child: Padding(
padding: EdgeInsets.symmetric(
vertical: w(4)),
child: Column(
crossAxisAlignment:
CrossAxisAlignment.start,
children: [
Row(
children: [
Container(
padding:
EdgeInsets.symmetric(
vertical: w(4)),
constraints:
BoxConstraints(
maxWidth: w(120)),
child: Text(
'四处行走的花',
maxLines: 10,
overflow: TextOverflow
.ellipsis,
style: TextStyle(
fontSize: font(14),
fontWeight:
FontWeight.bold,
color: MyColours
.color_515151),
)),
Spacer(),
Container(
width: w(75),
height: w(24),
child: ListView.builder(
itemCount: 5,
shrinkWrap: true,
scrollDirection:
Axis.horizontal,
itemBuilder:
(context, index) {
return Image.asset(
Utils.getImgPath(
'zwzp'),
width: w(15),
);
})),
Container(
padding:
EdgeInsets.symmetric(
vertical: w(4)),
child: Text(
'非常满意',
maxLines: 2,
overflow: TextOverflow
.ellipsis,
style: TextStyle(
fontSize: font(12),
color: MyColours
.color_999999),
)),
],
),
VEmptyView(8),
Container(
padding: EdgeInsets.symmetric(
vertical: w(4)),
child: Text(
'就餐于 2023-8-24 午餐 二楼205',
maxLines: 10,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontSize: font(12),
color: MyColours
.color_999999),
)),
Container(
padding: EdgeInsets.symmetric(
vertical: w(4)),
child: Text(
'发表于 2023-8-25',
maxLines: 10,
overflow:
TextOverflow.ellipsis,
style: TextStyle(
fontSize: font(12),
color: MyColours
.color_999999),
)),
VEmptyView(8),
Container(
padding: EdgeInsets.symmetric(
vertical: w(4)),
child: Text(
'第二次来了,味道还是一如既往的好吃,包间也很干净整洁,',
style: TextStyle(
height: 1.8,
fontSize: font(12),
color: MyColours
.color_515151),
)),
Container(
padding: EdgeInsets.symmetric(
vertical: w(4)),
child: Text(
'#口味佳,服务热情',
style: TextStyle(
height: 1.8,
fontSize: font(12),
color: MyColours
.color_438E93),
)),
VEmptyView(8),
Align(
alignment:
Alignment.centerRight,
child: RoundButton(
text: '回复',
width: w(54),
height: w(24),
gradientStart:
MyColours.color_ffffff,
gradientEnd:
MyColours.color_ffffff,
textColor:
MyColours.color_000000,
fontSize: 24,
borderColor:
MyColours.color_999999,
radius: r(15),
),
),
VEmptyView(26),
]))),
],
),
);
}))
],
)));
}
}
... ...
... ... @@ -1305,7 +1305,29 @@ class MyPageState extends State<MyPage> with WidgetsBindingObserver {
!Utils.getAuthority(
context, '营销中心'))),
InkWell(
onTap: () {}, child: _item('', '空空空空')),
onTap: () {
if (outDay == '0') {
return;
}
if (Utils.getAuthority(
context, '评价管理')) {
NavigatorUtil
.goCommentManageHomePage(
context);
}
},
child: _item(
outDay == '0' ||
!Utils.getAuthority(
context, '评价管理')
? Utils.getImgPath(
'my_comment_un')
: Utils.getImgPath(
'my_comment'),
'评价管理',
isRowLow: outDay == '0' ||
!Utils.getAuthority(
context, '评价管理'))),
InkWell(
onTap: () {}, child: _item('', '空空空空')),
],
... ...
import 'package:flutter/material.dart';
import 'package:one_key/constant/state.dart';
import '../constant/constant.dart';
import '../constant/error.dart';
import '../net/base_resp.dart';
import '../net/dio_util.dart';
import '../net/http_url.dart';
import '../utils/utils.dart';
class CommentManageProvider extends ChangeNotifier {
PageState pageState = PageState.Loading;
///获取评价列表
Future<dynamic> getSellerComments(
BuildContext context, Map<String, String> params,
{isShowLoading = true}) async {
BaseResp<dynamic> baseResp = await DioUtil()
.request<dynamic>(context, Method.get, HttpUrl.get_seller_comments,
data: params, showLoading: isShowLoading)
.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) {
// beFollowData =
// GetBanquetBeFollowModel.fromJson(baseResp.responseData).data;
// if (beFollowData.length == 0) {
// pageState = PageState.Empty;
// } else {
// pageState = PageState.Success;
// }
notifyListeners();
return true;
// } else {
// return false;
// }
} else {
if (baseResp != null) {
Utils.showToast(baseResp.msg ?? "");
}
pageState = PageState.ConnectivityError;
notifyListeners();
return false;
}
}
}
... ...
import 'package:flutter/material.dart';
class MyColours {
static const Color color_F8F7F3 = Color(0xFFF8F7F3);
static const Color color_33438E93 = Color(0x33438E93);
static const Color color_E89243 = Color(0xFFE89243);
static const Color color_3E6F51 = Color(0xFF3E6F51);
... ...
... ... @@ -1497,12 +1497,8 @@ class NavigatorUtil {
///我的------存酒详情
static Future<dynamic> goWineDetailPage(
BuildContext context,
String idstr,
bool isStoreWine, {
replace = false,
bool onlyShow = false
}) {
BuildContext context, String idstr, bool isStoreWine,
{replace = false, bool onlyShow = false}) {
return _navigateTo(context,
"${Routes.wine_detail_page}?idstr=$idstr&isStoreWine=${isStoreWine}&onlyShow=${onlyShow}",
replace: replace);
... ... @@ -1801,4 +1797,13 @@ class NavigatorUtil {
return _navigateTo(context, "${Routes.recharge_setting_page}",
replace: replace);
}
/// 评价管理
static Future<dynamic> goCommentManageHomePage(
BuildContext context, {
replace = false,
}) {
return _navigateTo(context, "${Routes.comment_manage_home_page}",
replace: replace);
}
}
... ...
... ... @@ -182,6 +182,7 @@ import '../pages/feast/feast_set_page.dart';
import '../pages/feast/feast_setmeal_page.dart';
import '../pages/feast/feast_wine_page.dart';
import '../pages/message/message_recharge_info_page.dart';
import '../pages/my/comment_manage/comment_manage_home_page.dart';
import '../pages/my/customer_type/my_customer/my_customer_home_page.dart';
import '../pages/my/customer_type/store_customer/day_order_page.dart';
import '../pages/my/customer_type/store_customer/month_order_page.dart';
... ... @@ -242,6 +243,7 @@ import '../pages/order_advance/order_create_temporary_page.dart';
import '../pages/order_advance/order_edit_list_show_page.dart';
import '../pages/order_advance/order_preview_page.dart';
import '../pages/order_advance/order_share_page.dart';
import '../provider/comment_manage_provider.dart';
import '../provider/feast_model.dart';
import '../provider/marketing_center_provider.dart';
import '../provider/plan_dish_provider.dart';
... ... @@ -2550,12 +2552,13 @@ var wineDetailPageHandle = new Handler(
String idstr = params["idstr"].first;
bool isStoreWine = FluroConvertUtils.string2bool(params["isStoreWine"].first);
bool onlyShow = FluroConvertUtils.string2bool(params["onlyShow"].first);
bool onlyShow = FluroConvertUtils.string2bool(params["onlyShow"].first);
return ChangeNotifierProvider<StoreWineProvider>(
create: (_) => StoreWineProvider(),
child: ChangeNotifierProvider<CustomerProvider>(
create: (_) => CustomerProvider(),
child: WineDetailPage(idstr: idstr, isStoreWine: isStoreWine,onlyShow:onlyShow)));
child: WineDetailPage(
idstr: idstr, isStoreWine: isStoreWine, onlyShow: onlyShow)));
});
///我的----存酒记录
... ... @@ -2997,3 +3000,18 @@ var rechargeSettingPageHandle = new Handler(
return ChangeNotifierProvider<MarketingCenterProvider>(
create: (_) => MarketingCenterProvider(), child: RechargeSettingPage());
});
//评价管理
var commentManageHomePageHandle = new Handler(
handlerFunc: (BuildContext context, Map<String, List<Object>> params) {
// String year = params["year"].first;
// String month = params["month"].first;
// String day = params["day"].first;
// String uid = params["uid"].first;
// DayList daylist = DayList.fromJson(json
// .decode(FluroConvertUtils.fluroCnParamsDecode(params["daylist"].first)));
return ChangeNotifierProvider<CommentManageProvider>(
create: (_) => CommentManageProvider(), child: CommentManageHomePage());
});
... ...
... ... @@ -287,6 +287,7 @@ class Routes {
static String coupon_setting_page = "/coupon_setting_page"; // 优惠券设置页
static String recharge_setting_page = "/recharge_setting_page"; // 充值优惠设置页
static String comment_manage_home_page = "/comment_manage_home_page"; // 评价管理
static void configureRoutes(FluroRouter router) {
router.notFoundHandler = new Handler(
... ... @@ -535,5 +536,7 @@ class Routes {
router.define(coupon_setting_page, handler: couponSettingPageHandle);
router.define(recharge_setting_page, handler: rechargeSettingPageHandle);
router.define(comment_manage_home_page,
handler: commentManageHomePageHandle);
}
}
... ...