From 0542533a3917dd1752956735c1abc0bccd164ad5 Mon Sep 17 00:00:00 2001 From: huixiang_app <953969641@qq.com> Date: Fri, 15 Sep 2023 23:30:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=88=97=E8=A1=A8=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=EF=BC=9B=20=E5=BC=B9=E7=AA=97ui=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=EF=BC=9B=20=E4=BC=9A=E5=91=98=E6=8E=A5=E5=8F=A3=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=EF=BC=8C=E7=94=9F=E6=84=8F=E6=80=BB=E8=A7=88=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=AF=B9=E6=8E=A5=EF=BC=8C=E7=83=AD=E9=94=80=E6=A6=9C?= =?UTF-8?q?=E5=8D=95=E6=8E=A5=E5=8F=A3=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/image/2x/icon_new_vip.webp | Bin 0 -> 1114 bytes assets/image/2x/icon_vip_total.webp | Bin 0 -> 1126 bytes assets/image/2x/ion_vip_recharge.webp | Bin 0 -> 1140 bytes assets/image/3x/icon_new_vip.webp | Bin 0 -> 3184 bytes assets/image/3x/icon_vip_total.webp | Bin 0 -> 3124 bytes assets/image/3x/ion_vip_recharge.webp | Bin 0 -> 3000 bytes assets/image/icon_new_vip.webp | Bin 0 -> 758 bytes assets/image/icon_vip_total.webp | Bin 0 -> 760 bytes assets/image/ion_vip_recharge.webp | Bin 0 -> 780 bytes .../home/business_home_page.dart | 25 +++- lib/mine/mine_view/mine_item.dart | 4 +- lib/retrofit/business_api.dart | 16 +- lib/retrofit/business_api.g.dart | 24 ++- lib/retrofit/data/vip_counts_info.dart | 141 ++++++++++++++++++ 14 files changed, 194 insertions(+), 16 deletions(-) create mode 100644 assets/image/2x/icon_new_vip.webp create mode 100644 assets/image/2x/icon_vip_total.webp create mode 100644 assets/image/2x/ion_vip_recharge.webp create mode 100644 assets/image/3x/icon_new_vip.webp create mode 100644 assets/image/3x/icon_vip_total.webp create mode 100644 assets/image/3x/ion_vip_recharge.webp create mode 100644 assets/image/icon_new_vip.webp create mode 100644 assets/image/icon_vip_total.webp create mode 100644 assets/image/ion_vip_recharge.webp create mode 100644 lib/retrofit/data/vip_counts_info.dart diff --git a/assets/image/2x/icon_new_vip.webp b/assets/image/2x/icon_new_vip.webp new file mode 100644 index 0000000000000000000000000000000000000000..e864fc116d2ed7d90c2438ee3920b1e6fc9305b9 GIT binary patch literal 1114 zcmWIYbaM-0VPFV%bqWXzu!!JdU|=u+Vs$X`baoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktlU~DijrKK@2d|J-Hz#GZHAbf#=fh!s;2PAN~O#vt+19VqD z5T-NaFr+dlFnBWLF(fnS0a-@CNHt_I1IDmVG7|%XzWM=9f%%7aD6ganyYfti{ zxf%x-S^>S{$NG}%27_veKxxAQ2E$3Ym#^)~zr8K@_P_Gy@@Hz(AK&3o`gQ(5?rjUV z^K&C}((8dft1_3b@7g~5rWlaTP!P`Bt^@@CySHlXEz?yhD~w&bwqr-G=6>_P>_0Nk z9oyn@L2YxP$RiDDeZ_g3KgKFqP3-+I;A*y0DKY!(ktnt@l5p9 z&+px^v*X>G1uq{j$Pc-Yx%~78U-b*u?2WEmop9AIC%*C7Qgz+-#s7ND^7Ur7z0`ld z_?)#9&yCVt>l06pJG2Cfp4H81z4ND(?NU|1y|;;a&9AqoeLrRWxV!CBU(dFzn{#c< z|9qQ%$&=qAuIgIh73Kgl->C_ImKEd#J`TOTC-`U~J8%B2WxUfL8F{-`T@qNZuU>A4 zz(nJSPr?NU0;(>_8O&sQ(a;tzSlRU3;b>~avx`^iT;y_={%GNspY5|kyoYi1E}7Vs z?M{MIyB)taou2Y%{(rGkHY+XOJv@Hg`z}M@yWPJVN?%|4?(pI4ogb_Q8*_#B%Ny85 z$F2CAruAw@pVG_y^@-2lt^M%oN;6l&MmzPQQY+iot!2EvXLQ!C+jenv_9Z`Q9-GXU z$FCXRkB~U1o+iAL_okfeKjW2`?wEub6d&(=zG&qa83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktlU~DijrKK@2d|J-Hz#GZHAbf#=fh!s;2PAN~O#vt+19VqD z5T-NaFr+dlFnBWLF(fnS0a-@CNHt_I1IDmV0TTm*zWM=9f#Zj^O;pjm+HP=i<{ZIm z+cOO^q)$$K|Bk!q`R6~HTP<>KpP2Y!=au^H^0q9KwpBc5vwF{}XA>jOepmjeRs5fW z!L?r&7p$1CURKqukn`yRmq2~Jm`v`Ma33u-E-8UW#}}#9J3L!_`p$v<#;PmMxF0u} z6LR{6n~MDICki}=`dypb+&H>AU6VM2m3S60GB7mddbceJziPWJ_x85jqyNf-CQp|R-k_yp2Y1_R#H;>WIcIm76z2H%SCsj5#nXa`t>T=P2`2yLEjmvi?pg3BA0O zD|PywibIBCk6-o8bNTu7p zJxe1~J!%seBCfpk__{H@qg7__>gd`BIx7EvZ=a^*uhpmh!|(HldX#gY(wKNAe{_=j(i0{dd~Zqu(UH+_&6Y`SZ{8SHb354U&6nuf6Ok5zV=L z$JoSh_l^kn+3!51OD~kJUMe4bUZl)q<@SJ^0e9}ay|{0_M(8fHsX}Ra7Ct*OZ2tJ1 Sx>5J;)7S5x6Y~{z@d5xign>o? literal 0 HcmV?d00001 diff --git a/assets/image/2x/ion_vip_recharge.webp b/assets/image/2x/ion_vip_recharge.webp new file mode 100644 index 0000000000000000000000000000000000000000..64131bdc3de32c29315ca2fe7eb9a1a935ee5c44 GIT binary patch literal 1140 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 C%~h2E literal 0 HcmV?d00001 diff --git a/assets/image/3x/icon_vip_total.webp b/assets/image/3x/icon_vip_total.webp new file mode 100644 index 0000000000000000000000000000000000000000..c79134cfd56b8686003f52be8dddca7d3dfcb789 GIT binary patch literal 3124 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 literal 0 HcmV?d00001 diff --git a/assets/image/3x/ion_vip_recharge.webp b/assets/image/3x/ion_vip_recharge.webp new file mode 100644 index 0000000000000000000000000000000000000000..3d9f6b2ccd767250b307b5761e1c63243b233579 GIT binary patch literal 3000 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 literal 0 HcmV?d00001 diff --git a/assets/image/icon_vip_total.webp b/assets/image/icon_vip_total.webp new file mode 100644 index 0000000000000000000000000000000000000000..e513436255342785b7afd89028361d03b833e8fb GIT binary patch literal 760 zcmWIYbaVT_#J~{l>J$(bU=hK^z`$St#KK_Y>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93 zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|AfzZ zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-bi3XTwq|}iU!L82^?-y07}UK-IWi7 z=?pmxsSFAXo(y>m$qafxmJu*g4H?XUG3>*{$iSd4e1JtD{@{vSWyf=RAD`B|56;xc zxP9VeZ#~=j=Rbp^9B*&SUGcBJVEK&1+a6uT>~{N}^K<0)FSV}e|GeXKx&2H#AKss9 zwaeb?->P6_7um3{Af20a=ZV{oQ*&H+IXH3zZ%H`5N?>4UIP5VgG_|n&`uk%~~Gk?S7q@^Na+1I-lUcOm1OZJ^-=czE^#Xl`IB7{F&y}3F|ixU7pZ^)?t literal 0 HcmV?d00001 diff --git a/assets/image/ion_vip_recharge.webp b/assets/image/ion_vip_recharge.webp new file mode 100644 index 0000000000000000000000000000000000000000..4f848639d7c8e21ea8918d6041502463714ac781 GIT binary patch literal 780 zcmWIYbaP{2W?%?+bqWXzu!!JdU|=u+Vqq}ybaoCn!3g9sFrEOBEI_H;ypp0IcPE92 z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG% zYz+`Q3BtAkvCB&eN`PttK=2?(*InG6iuTNxN6ZXv`}7BDdI zw=ghlJC6`Ugh@eSQ6ktl79h!#md3#FX*mM}ZzM1xE-)}~MT6yl1P-?;0HtJr?#c(k zbcP&;R0ahGPlh~(WClGT%Lo{$h74xF81@lmWMI%2KENVSzHmXWO6t6mUuM@B_NZOh zmMgvLzx*A|vSJicG~d}6Jd%WTCqlhy)Z>4~;o7Vq~&%oGchh*r3f*3nqbbmQm-MxO_V z6H{(`6?by$6(0Wk?S9;$>iJUyF4ni^-Zo>pWII)#fx+-3C`y&)sd%1qIC)!w@2C6J zKd$RG_88Ba+u7T7Y0p~0z(`~FUKRfn%hq PopularSalesList popularSalesList; List orderTrend = []; List lineChartSample2Data = [ - LineChartSample2Data(0, 100, "2023-03-09"), - LineChartSample2Data(1, 200, "2023-03-10"), - LineChartSample2Data(2, 400, "2023-03-11"), - LineChartSample2Data(3, 10, "2023-03-12"), - LineChartSample2Data(4, 250, "2023-03-13"), - LineChartSample2Data(5, 175, "2023-03-14"), - LineChartSample2Data(6, 500, "2023-03-15") + LineChartSample2Data(0, 0, "2023-03-09"), + LineChartSample2Data(1, 0, "2023-03-10"), + LineChartSample2Data(2, 0, "2023-03-11"), + LineChartSample2Data(3, 0, "2023-03-12"), + LineChartSample2Data(4, 0, "2023-03-13"), + LineChartSample2Data(5, 0, "2023-03-14"), + LineChartSample2Data(6, 0, "2023-03-15") ]; @override @@ -80,7 +80,7 @@ class _BusinessHomePage extends State : widget.businessLoginInfo.storeList[widget.selectStoreIndex].id); queryDayAmount(); queryPopularList(); - queryPopularList(); + queryOrderTrend(); }); } @@ -127,7 +127,15 @@ class _BusinessHomePage extends State BaseData> baseData = await businessService.orderTrend().catchError((error) {}); if (baseData != null && baseData.isSuccess) { + double index = 0; + if(baseData.data.isNotEmpty){ + orderTrend.clear(); + } orderTrend = baseData.data; + orderTrend.forEach((element) { + lineChartSample2Data.add(LineChartSample2Data(index,element.number,element.date)); + index += 1; + }); } } finally { addLoadCount(); @@ -495,6 +503,7 @@ class _BusinessHomePage extends State SizedBox( height: 18.h, ), + if(lineChartSample2Data.isNotEmpty) LineChartSample2(lineChartSample2Data, "销售量"), ], ), diff --git a/lib/mine/mine_view/mine_item.dart b/lib/mine/mine_view/mine_item.dart index 89c369b2..4fd4e75a 100644 --- a/lib/mine/mine_view/mine_item.dart +++ b/lib/mine/mine_view/mine_item.dart @@ -49,12 +49,12 @@ class _MineItem extends State { BusinessInstance.instance.businessToken = businessLoginInfo.token; if (businessLoginInfo.storeList.length > 1) { Navigator.of(context) - .pushReplacementNamed('/router/select_shop', arguments: { + .pushNamed('/router/select_shop', arguments: { "businessLoginInfo": businessLoginInfo, }); } else { Navigator.of(context) - .pushReplacementNamed('/router/business_page', arguments: { + .pushNamed('/router/business_page', arguments: { "businessLoginInfo": businessLoginInfo, }); } diff --git a/lib/retrofit/business_api.dart b/lib/retrofit/business_api.dart index 1001c0e4..ba598b42 100644 --- a/lib/retrofit/business_api.dart +++ b/lib/retrofit/business_api.dart @@ -9,6 +9,7 @@ import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:huixiang/retrofit/data/business_login_info.dart'; import 'package:huixiang/retrofit/data/day_count.dart'; import 'package:huixiang/retrofit/data/order_trend.dart'; +import 'package:huixiang/retrofit/data/vip_counts_info.dart'; import 'package:retrofit/retrofit.dart'; import '../utils/flutter_utils.dart'; @@ -18,9 +19,9 @@ import 'data/popular_sales_list.dart'; part 'business_api.g.dart'; ///本地 -// const localBaseUrl = "http://admin-api.test.yixinhuixiang.com/"; +const localBaseUrl = "http://admin-api.test.yixinhuixiang.com/"; ///测试 -const localBaseUrl = "http://test-merchant.lotus-wallet.com/test-merchant/"; +// const localBaseUrl = "http://test-merchant.lotus-wallet.com/test-merchant/"; ///线上 const serviceBaseUrl = "http://pos.tenant.lotus-wallet.com/test-merchant/"; @@ -99,8 +100,8 @@ abstract class BusinessApiService { }, onError: (DioError e) { if (EasyLoading.isShow) EasyLoading.dismiss(); // SmartDialog.showToast("网络错误,请切换网络或稍后再试!", alignment: Alignment.center); - SmartDialog.showToast(AppUtils.dioErrorTypeToString(e.type), - alignment: Alignment.center); + // SmartDialog.showToast(AppUtils.dioErrorTypeToString(e.type), + // alignment: Alignment.center); debugPrint("\n======================= 错误响应数据 ======================="); debugPrint("type = ${e.type}"); debugPrint("message = ${e.message}"); @@ -134,11 +135,16 @@ abstract class BusinessApiService { Future> getDayCounts(@Body() Map param); ///商家概览/热销榜单 - @GET("dashBoard/store/{offsetDay}") + @GET("dashBoard/store/?offsetDay={offsetDay}") Future> popularList( @Path("offsetDay") String offsetDay); ///生意总览/订单量趋势 @GET("trend/orderTrend") Future>> orderTrend(); + + ///会员数量统计/用户概览 + @GET("largeScreenReport/getDayCounts?date={date}") + Future> vipCounts( + @Path("date") String date); } diff --git a/lib/retrofit/business_api.g.dart b/lib/retrofit/business_api.g.dart index a86e9ca5..59638941 100644 --- a/lib/retrofit/business_api.g.dart +++ b/lib/retrofit/business_api.g.dart @@ -74,7 +74,7 @@ class _BusinessApiService implements BusinessApiService { final queryParameters = {}; final _data = {}; final _result = await _dio.request>( - 'dashBoard/store/$offsetDay', + 'dashBoard/store/?offsetDay=$offsetDay', queryParameters: queryParameters, options: RequestOptions( method: 'GET', @@ -112,4 +112,26 @@ class _BusinessApiService implements BusinessApiService { return value; } + @override + Future> vipCounts(date) async { + ArgumentError.checkNotNull(date, 'date'); + const _extra = {}; + final queryParameters = {}; + final _data = {}; + final _result = await _dio.request>( + 'largeScreenReport/getDayCounts?date=$date', + queryParameters: queryParameters, + options: RequestOptions( + method: 'GET', + headers: {}, + extra: _extra, + baseUrl: baseUrl), + data: _data); + final value = BaseData.fromJson( + _result.data, + (json) => VipCountsInfo.fromJson(json), + ); + return value; + } + } diff --git a/lib/retrofit/data/vip_counts_info.dart b/lib/retrofit/data/vip_counts_info.dart new file mode 100644 index 00000000..48dc0af0 --- /dev/null +++ b/lib/retrofit/data/vip_counts_info.dart @@ -0,0 +1,141 @@ +/// dayMoney : "0" +/// yesterdayMoney : "0" +/// paySum : "0" +/// yesterdayPaySum : "0" +/// rechargeMoney : "0" +/// weekRechargeMoney : "0" +/// lastWeekRechargeMoney : "0" +/// orderNum : 0 +/// yesterdayOrderNum : 0 +/// memberNum : 21800 +/// lastWeekMemberNum : 4 +/// weekMemberNum : 1 +/// newMemberNum : 0 +/// yesterdayNewMemberNum : 0 + +class VipCountsInfo { + VipCountsInfo({ + String dayMoney, + String yesterdayMoney, + String paySum, + String yesterdayPaySum, + String rechargeMoney, + String weekRechargeMoney, + String lastWeekRechargeMoney, + num orderNum, + num yesterdayOrderNum, + num memberNum, + num lastWeekMemberNum, + num weekMemberNum, + num newMemberNum, + num yesterdayNewMemberNum,}){ + _dayMoney = dayMoney; + _yesterdayMoney = yesterdayMoney; + _paySum = paySum; + _yesterdayPaySum = yesterdayPaySum; + _rechargeMoney = rechargeMoney; + _weekRechargeMoney = weekRechargeMoney; + _lastWeekRechargeMoney = lastWeekRechargeMoney; + _orderNum = orderNum; + _yesterdayOrderNum = yesterdayOrderNum; + _memberNum = memberNum; + _lastWeekMemberNum = lastWeekMemberNum; + _weekMemberNum = weekMemberNum; + _newMemberNum = newMemberNum; + _yesterdayNewMemberNum = yesterdayNewMemberNum; +} + + VipCountsInfo.fromJson(dynamic json) { + _dayMoney = json['dayMoney']; + _yesterdayMoney = json['yesterdayMoney']; + _paySum = json['paySum']; + _yesterdayPaySum = json['yesterdayPaySum']; + _rechargeMoney = json['rechargeMoney']; + _weekRechargeMoney = json['weekRechargeMoney']; + _lastWeekRechargeMoney = json['lastWeekRechargeMoney']; + _orderNum = json['orderNum']; + _yesterdayOrderNum = json['yesterdayOrderNum']; + _memberNum = json['memberNum']; + _lastWeekMemberNum = json['lastWeekMemberNum']; + _weekMemberNum = json['weekMemberNum']; + _newMemberNum = json['newMemberNum']; + _yesterdayNewMemberNum = json['yesterdayNewMemberNum']; + } + String _dayMoney; + String _yesterdayMoney; + String _paySum; + String _yesterdayPaySum; + String _rechargeMoney; + String _weekRechargeMoney; + String _lastWeekRechargeMoney; + num _orderNum; + num _yesterdayOrderNum; + num _memberNum; + num _lastWeekMemberNum; + num _weekMemberNum; + num _newMemberNum; + num _yesterdayNewMemberNum; +VipCountsInfo copyWith({ String dayMoney, + String yesterdayMoney, + String paySum, + String yesterdayPaySum, + String rechargeMoney, + String weekRechargeMoney, + String lastWeekRechargeMoney, + num orderNum, + num yesterdayOrderNum, + num memberNum, + num lastWeekMemberNum, + num weekMemberNum, + num newMemberNum, + num yesterdayNewMemberNum, +}) => VipCountsInfo( dayMoney: dayMoney ?? _dayMoney, + yesterdayMoney: yesterdayMoney ?? _yesterdayMoney, + paySum: paySum ?? _paySum, + yesterdayPaySum: yesterdayPaySum ?? _yesterdayPaySum, + rechargeMoney: rechargeMoney ?? _rechargeMoney, + weekRechargeMoney: weekRechargeMoney ?? _weekRechargeMoney, + lastWeekRechargeMoney: lastWeekRechargeMoney ?? _lastWeekRechargeMoney, + orderNum: orderNum ?? _orderNum, + yesterdayOrderNum: yesterdayOrderNum ?? _yesterdayOrderNum, + memberNum: memberNum ?? _memberNum, + lastWeekMemberNum: lastWeekMemberNum ?? _lastWeekMemberNum, + weekMemberNum: weekMemberNum ?? _weekMemberNum, + newMemberNum: newMemberNum ?? _newMemberNum, + yesterdayNewMemberNum: yesterdayNewMemberNum ?? _yesterdayNewMemberNum, +); + String get dayMoney => _dayMoney; + String get yesterdayMoney => _yesterdayMoney; + String get paySum => _paySum; + String get yesterdayPaySum => _yesterdayPaySum; + String get rechargeMoney => _rechargeMoney; + String get weekRechargeMoney => _weekRechargeMoney; + String get lastWeekRechargeMoney => _lastWeekRechargeMoney; + num get orderNum => _orderNum; + num get yesterdayOrderNum => _yesterdayOrderNum; + num get memberNum => _memberNum; + num get lastWeekMemberNum => _lastWeekMemberNum; + num get weekMemberNum => _weekMemberNum; + num get newMemberNum => _newMemberNum; + num get yesterdayNewMemberNum => _yesterdayNewMemberNum; + + Map toJson() { + final map = {}; + map['dayMoney'] = _dayMoney; + map['yesterdayMoney'] = _yesterdayMoney; + map['paySum'] = _paySum; + map['yesterdayPaySum'] = _yesterdayPaySum; + map['rechargeMoney'] = _rechargeMoney; + map['weekRechargeMoney'] = _weekRechargeMoney; + map['lastWeekRechargeMoney'] = _lastWeekRechargeMoney; + map['orderNum'] = _orderNum; + map['yesterdayOrderNum'] = _yesterdayOrderNum; + map['memberNum'] = _memberNum; + map['lastWeekMemberNum'] = _lastWeekMemberNum; + map['weekMemberNum'] = _weekMemberNum; + map['newMemberNum'] = _newMemberNum; + map['yesterdayNewMemberNum'] = _yesterdayNewMemberNum; + return map; + } + +} \ No newline at end of file