Sfoglia il codice sorgente

报表功能调通

zhangyang 4 anni fa
parent
commit
3d60a54c76

+ 41 - 3
bin/Win32/Debug/zhipuzi_pos_windows/skin/baobiao_page.xml

@@ -1,5 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <Window>
+	<Font id="0" name="微软雅黑" size="26" />
+	<Font id="1" name="微软雅黑" size="32" />
+	<Font id="2" name="微软雅黑" size="20" />
+	
 	<BaobiaoPage>
 		<VerticalLayout>
 			<HorizontalLayout height="53" padding="0,0,0,0" bkcolor="#FFFFFFFF">
@@ -24,10 +28,44 @@
 				</VerticalLayout>
 			</HorizontalLayout>
 
-			<HorizontalLayout>
-				
+			<HorizontalLayout name="data_layout" visible="false">
+				<VerticalLayout>
+					<Label text="营业概况" font="2" padding="20,20,0,0"></Label>
+					
+					<HorizontalLayout>					
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="waimai_num" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="外卖订单数量" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+						
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="waimai_value" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="外卖营业额" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+						
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="diannei_num" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="店内订单数量" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+						
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="diannei_value" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="店内营业额" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+						
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="huiyuan_num" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="新增会员数量" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+						
+						<VerticalLayout bkcolor="#FFFFFFFF" width="240" height="126" padding="20,15,0,0">
+							<Label name="huiyuan_value" text="" font="2" padding="20,25,0,0"></Label>
+							<Label text="会员储值金额" padding="20,15,0,0" textcolor="#FF777777"></Label>
+						</VerticalLayout>
+					</HorizontalLayout>
+				</VerticalLayout>
 				
-				<HorizontalLayout name="main_orderlist_loading">
+				<HorizontalLayout name="loading">
 					<Control></Control>
 					<VerticalLayout width="24">
 						<Control></Control>

File diff suppressed because it is too large
+ 2 - 3
bin/Win32/Debug/zhipuzi_pos_windows/skin/main.xml


+ 82 - 0
zhipuzi_pos_windows/page/CBaobiaoPageUI.cpp

@@ -225,4 +225,86 @@ void CBaobiaoPageUI::ShowSanshitian()
 void CBaobiaoPageUI::Refresh()
 {
 	//根据当前的起始时间,刷新数据显示
+	//开始转菊花
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("data_layout")));
+	pOrderListLayout->SetVisible(false);
+
+	this->FindSubControl(_T("loading"))->SetVisible(true);
+
+	//启动一个线程,进行网络请求操作
+
+	std::thread t(&CBaobiaoPageUI::HandleRefresh, this);
+	t.detach();
+}
+
+void CBaobiaoPageUI::HandleRefresh()
+{
+	std::string url = "/analysis/index/statistics/index";
+
+
+	//请求外卖的未处理订单,直接用当前的page值去请求
+	std::map<string, string> params;
+	params["begin_time"] = m_init_time;
+	params["end_time"] = m_end_time;
+	std::string response;
+
+	CZhipuziHttpClient::RequestNew(url.c_str(), params, response);
+
+	rapidjson::Document document;
+	document.Parse(response.c_str());
+
+	if (document.HasParseError())
+	{
+		LOG_INFO("parse response error!");
+		return;
+	}
+
+	if (!document.HasMember("errcode") || !document.HasMember("errmsg") || !document.HasMember("data"))
+	{
+		LOG_INFO("json error!");
+		return;
+	}
+
+	rapidjson::Value& v_errcode = document["errcode"];
+	int errcode = v_errcode.GetInt();
+	if (errcode != 0)
+	{
+		LOG_INFO("response failed! message:" << document["errmsg"].GetString());
+		return;
+	}
+
+	//获得数据成功
+	rapidjson::Value& data = document["data"];
+
+	std::string waimai_num = to_string(data["today_num"].GetInt());
+	std::string diannei_num = to_string(data["today_num"].GetInt());
+	std::string huiyuan_num = to_string(data["today_member"].GetInt());
+
+	std::string waimai_value = CLewaimaiString::DoubleToString(data["today_money"].GetFloat(), 2);
+	std::string diannei_value = CLewaimaiString::DoubleToString(data["today_money"].GetFloat(), 2);
+	std::string huiyuan_value = CLewaimaiString::DoubleToString(data["today_recharge"].GetFloat(), 2);
+
+	//开始渲染数据
+	CLabelUI* waimainumLabel = static_cast<CLabelUI*>(this->FindSubControl(L"waimai_num"));
+	waimainumLabel->SetText(CLewaimaiString::UTF8ToUnicode(waimai_num).c_str());
+
+	CLabelUI* waimaivalueLabel = static_cast<CLabelUI*>(this->FindSubControl(L"waimai_value"));
+	waimaivalueLabel->SetText(CLewaimaiString::UTF8ToUnicode(waimai_value).c_str());
+
+	CLabelUI* dianneinumLabel = static_cast<CLabelUI*>(this->FindSubControl(L"diannei_num"));
+	dianneinumLabel->SetText(CLewaimaiString::UTF8ToUnicode(diannei_num).c_str());
+
+	CLabelUI* dianneivalueLabel = static_cast<CLabelUI*>(this->FindSubControl(L"diannei_value"));
+	dianneivalueLabel->SetText(CLewaimaiString::UTF8ToUnicode(diannei_value).c_str());
+
+	CLabelUI* huiyuannumLabel = static_cast<CLabelUI*>(this->FindSubControl(L"huiyuan_num"));
+	huiyuannumLabel->SetText(CLewaimaiString::UTF8ToUnicode(huiyuan_num).c_str());
+
+	CLabelUI* huiyuanvalueLabel = static_cast<CLabelUI*>(this->FindSubControl(L"huiyuan_value"));
+	huiyuanvalueLabel->SetText(CLewaimaiString::UTF8ToUnicode(huiyuan_value).c_str());
+
+	CContainerUI* pOrderListLayout = static_cast<CContainerUI*>(this->FindSubControl(_T("data_layout")));
+	pOrderListLayout->SetVisible(true);
+
+	this->FindSubControl(_T("loading"))->SetVisible(false);
 }

+ 1 - 0
zhipuzi_pos_windows/page/CBaobiaoPageUI.h

@@ -42,6 +42,7 @@ public:
 	void ShowSanshitian();
 
 	void Refresh();
+	void HandleRefresh();
 
 private: