| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378 |
- #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);
- }
- }
- bool CBaobiaoPageUI::HandleCustomMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
- {
- if (uMsg == WM_BAOBIAO_REFRESH)
- {
- DoRefresh();
- return true;
- }
- return false;
- }
- 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()
- {
- //根据当前的起始时间,刷新数据显示
- //开始转菊花
- 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<std::string, std::string> params;
- params["begin_time"] = m_init_time;
- params["end_time"] = m_end_time;
- std::string response;
- CZhipuziHttpClient::GetInstance()->RequestNew(url.c_str(), params, response);
- m_response = response;
- PostMessage(m_pManager->GetPaintWindow(), WM_BAOBIAO_REFRESH, 0, 0);
- }
- void CBaobiaoPageUI::DoRefresh()
- {
- rapidjson::Document document;
- document.Parse(m_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 = std::to_string(data["waimai_member"].GetInt());
- std::string diannei_num = std::to_string(data["diannei_member"].GetInt());
- std::string huiyuan_num = std::to_string(data["today_member"].GetInt());
- std::string waimai_value = CLewaimaiString::DoubleToString(data["waimai_money"].GetFloat(), 2);
- std::string diannei_value = CLewaimaiString::DoubleToString(data["diannei_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);
- }
- void CBaobiaoPageUI::SetPos(RECT rc, bool bNeedInvalidate)
- {
- int m_nPageWidth = rc.right - rc.left;
- //添加支付方式
- int nWidth = m_nPageWidth;
- if (nWidth == 0)
- {
- return;
- }
- //根据宽度计算每行显示的数量
- int nMeihangNum = nWidth / 260;
- if (nMeihangNum < 1)
- {
- nMeihangNum = 1;
- }
- int num = 0;
- CHorizontalLayoutUI* pFenleiLayout = static_cast<CHorizontalLayoutUI*>(this->FindSubControl(_T("baobiao_page_yingye_items")));
- for (int i = 0; i < 6; i++)
- {
- CVerticalLayoutUI* curItem = static_cast<CVerticalLayoutUI*>(pFenleiLayout->GetItemAt(i));
- int curRow = num / nMeihangNum + 1;
- int curCol = num % nMeihangNum + 1;
- RECT rect;
- rect.left = (curCol - 1) * 260 + 20;
- rect.right = rect.left + 240;
- rect.top = (curRow - 1) * 146 + 20;
- rect.bottom = rect.top + 126;
- curItem->SetFloat(true);
- curItem->SetPos(rect);
- num++;
- }
- //调整区域高度
- CVerticalLayoutUI* pLayout = static_cast<CVerticalLayoutUI*>(this->FindSubControl(_T("data_layout")));
- int lastRow = (num - 1) / nMeihangNum + 1;
- pLayout->SetFixedHeight(lastRow * 146 + 20 + 30);
- CContainerUI::SetPos(rc, bNeedInvalidate);
- }
|