张洋 пре 4 година
родитељ
комит
9354ff9891

BIN
bin/Win32/Debug/zhipuzi_pos_windows/dump/2021-12-05-20-55-34.dmp


BIN
bin/Win32/Debug/zhipuzi_pos_windows/dump/2021-12-05-20-55-35.dmp


BIN
bin/Win32/Debug/zhipuzi_pos_windows/dump/2021-12-05-20-58-24.dmp


BIN
bin/Win32/Debug/zhipuzi_pos_windows/dump/2021-12-05-20-58-25.dmp


+ 44 - 0
bin/Win32/Debug/zhipuzi_pos_windows/skin/baobiao_page.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Window>
+	<BaobiaoPage>
+		<VerticalLayout>
+			<HorizontalLayout height="53" padding="0,0,0,0" bkcolor="#FFFFFFFF">
+				<VerticalLayout width="100" height="53">
+					<Button name="btn_jintian" text="今天" textcolor="#FF43A947" font="2" height="50" width="100" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="btn_jintian_line" width="60" height="3" bkcolor="#FF43A947" padding="20,0,20,0"></Control>
+				</VerticalLayout>
+				
+				<VerticalLayout width="100" height="53">
+					<Button name="btn_zuotian" text="昨天" font="2" height="50" width="100" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="btn_zuotian_line" visible="false" width="60" height="3" bkcolor="#FF43A947" padding="20,0,20,0"></Control>
+				</VerticalLayout>
+				
+				<VerticalLayout width="100" height="53">
+					<Button name="btn_qitian" text="最近7天" font="2" height="50" width="100" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="btn_qitian_line" visible="false" width="60" height="3" bkcolor="#FF43A947" padding="20,0,20,0"></Control>
+				</VerticalLayout>
+				
+				<VerticalLayout width="100" height="53">
+					<Button name="btn_sanshitian" text="最近30天" font="2" height="50" width="100" padding="0,0,0,0" normalimage="" hotimage="" pushedimage="" bordersize="0" bkcolor="#00FFFFFF"></Button>
+					<Control name="btn_sanshitian_line" visible="false" width="60" height="3" bkcolor="#FF43A947" padding="20,0,20,0"></Control>
+				</VerticalLayout>
+			</HorizontalLayout>
+
+			<HorizontalLayout>
+				
+				
+				<HorizontalLayout name="main_orderlist_loading">
+					<Control></Control>
+					<VerticalLayout width="24">
+						<Control></Control>
+						<HorizontalLayout height="24">
+							<GifAnim bkimage="loading.gif" autosize="true"></GifAnim>
+						</HorizontalLayout>
+						<Control></Control>
+					</VerticalLayout>
+					<Control></Control>
+				</HorizontalLayout>
+			</HorizontalLayout>
+		</VerticalLayout>
+	</BaobiaoPage>
+</Window>

+ 5 - 0
zhipuzi_pos_windows/control/ControlEx.h

@@ -9,6 +9,7 @@
 #include "../page/CDianneiOrderInfoPageUI.h"
 #include "../page/CSettingPageUI.h"
 #include "../page/CHuiyuanPageUI.h"
+#include "../page/CBaobiaoPageUI.h"
 
 #include "CWaimaiOrderItemUI.h"
 #include "CDianneiOrderItemUI.h"
@@ -50,6 +51,10 @@ public:
 		{
 			return new CHuiyuanPageUI;
 		}
+		else if (_tcscmp(pstrClass, _T("BaobiaoPage")) == 0)
+		{
+			return new CBaobiaoPageUI;
+		}
 
 		//控件相关的
 		else if (_tcscmp(pstrClass, _T("WaimaiOrderItem")) == 0)

+ 55 - 0
zhipuzi_pos_windows/helper/CLewaimaiTime.cpp

@@ -51,6 +51,18 @@ string CLewaimaiTime::DatetimeToString(time_t time)
 	sprintf(dayStr, "%d", day);                // 日。
 	sprintf(hourStr, "%d", hour);              // 时。
 	sprintf(minuteStr, "%d", minute);          // 分。
+	if (monthStr[1] == '\0')                  // 如果月份为一位,如5,则需要转换字符串为两位,如05。
+	{
+		monthStr[2] = '\0';
+		monthStr[1] = monthStr[0];
+		monthStr[0] = '0';
+	}
+	if (dayStr[1] == '\0')                  // 如果天数为一位,如5,则需要转换字符串为两位,如05。
+	{
+		dayStr[2] = '\0';
+		dayStr[1] = dayStr[0];
+		dayStr[0] = '0';
+	}
 	if (hourStr[1] == '\0')                  // 如果小时为一位,如5,则需要转换字符串为两位,如05。
 	{
 		hourStr[2] = '\0';
@@ -99,6 +111,18 @@ string CLewaimaiTime::DatetimeToDateString(time_t time)
 	sprintf(dayStr, "%d", day);                // 日。
 	sprintf(hourStr, "%d", hour);              // 时。
 	sprintf(minuteStr, "%d", minute);          // 分。
+	if (monthStr[1] == '\0')                  // 如果月份为一位,如5,则需要转换字符串为两位,如05。
+	{
+		monthStr[2] = '\0';
+		monthStr[1] = monthStr[0];
+		monthStr[0] = '0';
+	}
+	if (dayStr[1] == '\0')                  // 如果天数为一位,如5,则需要转换字符串为两位,如05。
+	{
+		dayStr[2] = '\0';
+		dayStr[1] = dayStr[0];
+		dayStr[0] = '0';
+	}
 	if (hourStr[1] == '\0')                  // 如果小时为一位,如5,则需要转换字符串为两位,如05。
 	{
 		hourStr[2] = '\0';
@@ -139,6 +163,37 @@ string CLewaimaiTime::DatetimeToHourString(time_t time)
 	return to_string(hour);
 }
 
+SYSTEMTIME CLewaimaiTime::Time_tToSystemTime(time_t t)
+{
+	tm temptm = *localtime(&t);
+	SYSTEMTIME st = { 1900 + temptm.tm_year,
+					  1 + temptm.tm_mon,
+					  temptm.tm_wday,
+					  temptm.tm_mday,
+					  temptm.tm_hour,
+					  temptm.tm_min,
+					  temptm.tm_sec,
+					  0
+	};
+	return st;
+}
+
+time_t CLewaimaiTime::SystemTimeToTime_t(const SYSTEMTIME& st)
+{
+	tm temptm = { st.wSecond,
+				  st.wMinute,
+				  st.wHour,
+				  st.wDay,
+				  st.wMonth - 1,
+				  st.wYear - 1900,
+				  st.wDayOfWeek,
+				  0,
+				  0
+	};
+
+	return mktime(&temptm);
+}
+
 #ifdef _WIN32
 std::chrono::steady_clock::time_point CLewaimaiTime::getTimeStamp()
 {

+ 3 - 0
zhipuzi_pos_windows/helper/CLewaimaiTime.h

@@ -17,6 +17,9 @@ public:
 	//将time转换成小时数
 	static string DatetimeToHourString(time_t time);
 
+	static SYSTEMTIME Time_tToSystemTime(time_t t);
+	static time_t SystemTimeToTime_t(const SYSTEMTIME& st);
+
 #ifdef _WIN32
 	static std::chrono::steady_clock::time_point getTimeStamp();
 	static float getTimeDiff(std::chrono::steady_clock::time_point start, std::chrono::steady_clock::time_point end);

+ 228 - 0
zhipuzi_pos_windows/page/CBaobiaoPageUI.cpp

@@ -0,0 +1,228 @@
+#include "../pch/pch.h"
+#include "CBaobiaoPageUI.h"
+
+#include "../wnd/CHuiyuanChongzhiWnd.h"
+#include "../wnd/CHuiyuanAddWnd.h"
+
+CBaobiaoPageUI::CBaobiaoPageUI()
+{
+
+}
+
+CBaobiaoPageUI::~CBaobiaoPageUI()
+{
+
+}
+
+//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+void CBaobiaoPageUI::InitShow()
+{
+	time_t now = time(NULL);
+
+	std::string s_now = CLewaimaiTime::DatetimeToDateString(now);
+
+	m_init_time = s_now + " 00:00:00";
+	m_end_time = s_now + " 23:59:59";
+
+	Refresh();
+}
+
+//处理按钮点击类事件
+void CBaobiaoPageUI::HandleClickMsg(TNotifyUI& msg)
+{
+	CDuiString name = msg.pSender->GetName();
+
+	if (name == L"btn_jintian")
+	{
+		ShowJintian();
+	}
+	else if (name == L"btn_zuotian")
+	{
+		ShowZuotian();
+	}
+	else if (name == L"btn_qitian")
+	{
+		ShowQitian();
+	}
+	else if (name == L"btn_sanshitian")
+	{
+		ShowSanshitian();
+	}
+}
+
+//处理option切换事件
+void CBaobiaoPageUI::HandleSelectChangeMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理下拉框、radio的切换事件
+void CBaobiaoPageUI::HandleItemSelectMsg(TNotifyUI& msg)
+{
+
+}
+
+//处理编辑框输入内容改变事件
+void CBaobiaoPageUI::HandleTextChangedMsg(TNotifyUI& msg)
+{
+	DuiLib::CDuiString senderName = msg.pSender->GetName();
+
+	if (senderName == L"huiyuan_page_shoujihao_edit")
+	{
+		
+	}
+}
+
+//处理扫码枪捕捉到的扫码信息
+void CBaobiaoPageUI::HandleTextCapture(std::string content)
+{
+	if (m_is_show_modal_wnd == true)
+	{
+		m_curModalWnd->HandleTextCapture(content);
+	}
+}
+
+void CBaobiaoPageUI::ShowJintian()
+{
+	//先处理顶部按钮状态变化
+	CButtonUI* jintian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_jintian"));
+	CControlUI* jintian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_jintian_line"));
+	jintian->SetTextColor(0xFF43A947);
+	jintian_line->SetVisible(true);
+
+	CButtonUI* zuotian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_zuotian"));
+	CControlUI* zuotian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_zuotian_line"));
+	zuotian->SetTextColor(0xFF555555);
+	zuotian_line->SetVisible(false);
+
+	CButtonUI* qitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_qitian"));
+	CControlUI * qitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_qitian_line"));
+	qitian->SetTextColor(0xFF555555);
+	qitian_line->SetVisible(false);
+
+	CButtonUI* sanshitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_sanshitian"));
+	CControlUI * sanshitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_sanshitian_line"));
+	sanshitian->SetTextColor(0xFF555555);
+	sanshitian_line->SetVisible(false);
+
+	//然后处理日期
+	time_t now = time(NULL);
+	time_t start = now - 60 * 60 * 24 * 0;
+
+	std::string s_start = CLewaimaiTime::DatetimeToDateString(start);
+	m_init_time = s_start + " 00:00:00";
+	m_end_time = s_start + " 23:59:59";
+
+	Refresh();
+}
+
+void CBaobiaoPageUI::ShowZuotian()
+{
+	//先处理顶部按钮状态变化
+	CButtonUI* jintian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_jintian"));
+	CControlUI* jintian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_jintian_line"));
+	jintian->SetTextColor(0xFF555555);
+	jintian_line->SetVisible(false);
+
+	CButtonUI* zuotian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_zuotian"));
+	CControlUI* zuotian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_zuotian_line"));
+	zuotian->SetTextColor(0xFF43A947);
+	zuotian_line->SetVisible(true);
+
+	CButtonUI* qitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_qitian"));
+	CControlUI * qitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_qitian_line"));
+	qitian->SetTextColor(0xFF555555);
+	qitian_line->SetVisible(false);
+
+	CButtonUI* sanshitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_sanshitian"));
+	CControlUI * sanshitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_sanshitian_line"));
+	sanshitian->SetTextColor(0xFF555555);
+	sanshitian_line->SetVisible(false);
+
+	//然后处理日期
+	time_t now = time(NULL);
+	time_t start = now - 60 * 60 * 24 * 1;
+
+	std::string s_start = CLewaimaiTime::DatetimeToDateString(start);
+	m_init_time = s_start + " 00:00:00";
+	m_end_time = s_start + " 23:59:59";
+
+	Refresh();
+}
+
+void CBaobiaoPageUI::ShowQitian()
+{
+	//先处理顶部按钮状态变化
+	CButtonUI* jintian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_jintian"));
+	CControlUI* jintian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_jintian_line"));
+	jintian->SetTextColor(0xFF555555);
+	jintian_line->SetVisible(false);
+
+	CButtonUI* zuotian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_zuotian"));
+	CControlUI* zuotian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_zuotian_line"));
+	zuotian->SetTextColor(0xFF555555);
+	zuotian_line->SetVisible(false);
+
+	CButtonUI* qitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_qitian"));
+	CControlUI * qitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_qitian_line"));
+	qitian->SetTextColor(0xFF43A947);
+	qitian_line->SetVisible(true);
+
+	CButtonUI* sanshitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_sanshitian"));
+	CControlUI * sanshitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_sanshitian_line"));
+	sanshitian->SetTextColor(0xFF555555);
+	sanshitian_line->SetVisible(false);
+
+	//然后处理日期
+	time_t now = time(NULL);
+	time_t start = now - 60 * 60 * 24 * 6;
+
+	std::string s_start = CLewaimaiTime::DatetimeToDateString(start);
+	std::string s_end = CLewaimaiTime::DatetimeToDateString(now);
+
+	m_init_time = s_start + " 00:00:00";
+	m_end_time = s_end + " 23:59:59";
+
+	Refresh();
+}
+
+void CBaobiaoPageUI::ShowSanshitian()
+{
+	//先处理顶部按钮状态变化
+	CButtonUI* jintian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_jintian"));
+	CControlUI* jintian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_jintian_line"));
+	jintian->SetTextColor(0xFF555555);
+	jintian_line->SetVisible(false);
+
+	CButtonUI* zuotian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_zuotian"));
+	CControlUI* zuotian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_zuotian_line"));
+	zuotian->SetTextColor(0xFF555555);
+	zuotian_line->SetVisible(false);
+
+	CButtonUI* qitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_qitian"));
+	CControlUI * qitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_qitian_line"));
+	qitian->SetTextColor(0xFF555555);
+	qitian_line->SetVisible(false);
+
+	CButtonUI* sanshitian = static_cast<CButtonUI*>(this->FindSubControl(L"btn_sanshitian"));
+	CControlUI * sanshitian_line = static_cast<CControlUI*>(this->FindSubControl(L"btn_sanshitian_line"));
+	sanshitian->SetTextColor(0xFF43A947);
+	sanshitian_line->SetVisible(true);
+
+	//然后处理日期
+	time_t now = time(NULL);
+	time_t start = now - 60 * 60 * 24 * 29;
+
+	std::string s_start = CLewaimaiTime::DatetimeToDateString(start);
+	std::string s_end = CLewaimaiTime::DatetimeToDateString(now);
+
+	m_init_time = s_start + " 00:00:00";
+	m_end_time = s_end + " 23:59:59";
+
+	Refresh();
+}
+
+void CBaobiaoPageUI::Refresh()
+{
+	//根据当前的起始时间,刷新数据显示
+}

+ 61 - 0
zhipuzi_pos_windows/page/CBaobiaoPageUI.h

@@ -0,0 +1,61 @@
+#pragma once
+
+#include "../pch/pch.h"
+#include "CBasePageUI.h"
+
+#include "../wnd/CModalWnd.h"
+
+class CBaobiaoPageUI : public CBasePageUI
+{
+public:
+	CBaobiaoPageUI();
+
+	~CBaobiaoPageUI();
+
+	//初始化当前页面的展示,处理默认展示效果,在页面被加载的时候调用
+	void InitShow();
+
+	//处理按钮点击类事件
+	void HandleClickMsg(TNotifyUI& msg);
+
+	//处理option切换事件
+	void HandleSelectChangeMsg(TNotifyUI& msg);
+
+	//处理下拉框、radio的切换事件
+	void HandleItemSelectMsg(TNotifyUI& msg);
+
+	//处理编辑框输入内容改变事件
+	void HandleTextChangedMsg(TNotifyUI& msg);
+
+	//处理扫码枪捕捉到的扫码信息
+	void HandleTextCapture(std::string content);
+
+	//处理自定义消息,各个页面处理各个页面自己的(是自己处理的消息返回true,不是自己处理的消息返回false)
+	bool HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
+	{
+		return false;
+	}
+
+	void ShowJintian();
+	void ShowZuotian();
+	void ShowQitian();
+	void ShowSanshitian();
+
+	void Refresh();
+
+private:
+	
+
+private:
+	//是否正在请求服务器
+	bool m_is_handle = false;
+
+	//模态对话框有关的
+	bool m_is_show_modal_wnd = false;
+	CModalWnd* m_curModalWnd;
+
+	std::string m_init_time;
+	std::string m_end_time;
+
+
+};

+ 0 - 2
zhipuzi_pos_windows/page/CBasePageUI.h

@@ -35,8 +35,6 @@ public:
 	//处理扫码枪捕捉到的扫码信息
 	virtual void HandleTextCapture(std::string content) = 0;
 
-
-
 	void SetMainWnd(CMainWnd* wnd)
 	{
 		m_pMainWnd = wnd;

+ 5 - 1
zhipuzi_pos_windows/wnd/CMainWnd.cpp

@@ -179,6 +179,10 @@ void CMainWnd::SwitchPage(MainPageName name)
 		CDianneiOrderInfoPageUI* pInfoPage = static_cast<CDianneiOrderInfoPageUI*>(pChildContainer);
 		pInfoPage->m_order_id = m_infopage_dianneiorder_id;
 	}
+	else if (name == BAOBIAO)
+	{
+		pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("baobiao_page.xml"), (UINT)0, &cb, &m_pm));
+	}
 
 	pChildContainer->SetMainWnd(this);
 	pMainContentLayout->Add(pChildContainer);
@@ -317,7 +321,7 @@ void CMainWnd::HandleSelectChangeMsg(TNotifyUI& msg)
 	}
 	else if (name == L"main_baobiao")
 	{
-
+		this->SwitchPage(BAOBIAO);
 	}
 	else if (name == L"main_jiaoban")
 	{

+ 2 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj

@@ -227,6 +227,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClInclude Include="page\CBaobiaoPageUI.h" />
     <ClInclude Include="wnd\CHuiyuanAddWnd.h" />
     <ClInclude Include="wnd\CHuiyuanChongzhiWnd.h" />
     <ClInclude Include="page\CHuiyuanPageUI.h" />
@@ -305,6 +306,7 @@ copy $(ProjectDir)conf\ $(SolutionDir)bin\$(Platform)\$(Configuration)\conf\</Co
     <ClInclude Include="helper\CSystem.h" />
   </ItemGroup>
   <ItemGroup>
+    <ClCompile Include="page\CBaobiaoPageUI.cpp" />
     <ClCompile Include="wnd\CHuiyuanAddWnd.cpp" />
     <ClCompile Include="wnd\CHuiyuanChongzhiWnd.cpp" />
     <ClCompile Include="page\CHuiyuanPageUI.cpp" />

+ 6 - 0
zhipuzi_pos_windows/zhipuzi_pos_windows.vcxproj.filters

@@ -243,6 +243,9 @@
     <ClInclude Include="wnd\CHuiyuanAddWnd.h">
       <Filter>头文件</Filter>
     </ClInclude>
+    <ClInclude Include="page\CBaobiaoPageUI.h">
+      <Filter>头文件</Filter>
+    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="pch\pch.cpp">
@@ -449,6 +452,9 @@
     <ClCompile Include="wnd\CHuiyuanAddWnd.cpp">
       <Filter>源文件</Filter>
     </ClCompile>
+    <ClCompile Include="page\CBaobiaoPageUI.cpp">
+      <Filter>源文件</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <Image Include="resource\zhipuzi.ico">