|
|
@@ -38,7 +38,7 @@ void CMainWnd::Init()
|
|
|
//初始化所有页面,先创建页面对象,避免切换页面的时候被释放了
|
|
|
CreatePages();
|
|
|
|
|
|
- //初始化左侧的功能的导航
|
|
|
+ //初始化左侧的功能的导航(一定要先初始化页面,再初始化导航,因为初始化导航的时候也会初始化默认选中的页面)
|
|
|
UpdateGongnengDaohang();
|
|
|
|
|
|
m_pCloseBtn = static_cast<CButtonUI*>(m_pm.FindControl(_T("closebtn")));
|
|
|
@@ -962,6 +962,9 @@ void CMainWnd::ShowToast(std::wstring toast_value)
|
|
|
//根据更多里面的设置,刷新左边的功能导航
|
|
|
void CMainWnd::UpdateGongnengDaohang()
|
|
|
{
|
|
|
+ //根据餐饮和零售的差异,先对常用和更多的字符串进行处理
|
|
|
+ this->UpdateGongnengString();
|
|
|
+
|
|
|
std::string changyongString = CSetting::GetInstance()->GetParam("setting_gongneng_changyong_string");
|
|
|
std::vector<string> changyongVector;
|
|
|
if (changyongString == "")
|
|
|
@@ -1072,12 +1075,6 @@ void CMainWnd::UpdateGongnengDaohang()
|
|
|
}
|
|
|
else if (curName == "zhengcan")
|
|
|
{
|
|
|
- if (CShopinfo::GetInstance()->m_version_type == "2")
|
|
|
- {
|
|
|
- //零售版不显示桌台
|
|
|
- continue;;
|
|
|
- }
|
|
|
-
|
|
|
newOption->SetName(L"main_zhengcan");
|
|
|
newOption->SetText(L"桌台");
|
|
|
|
|
|
@@ -1086,12 +1083,6 @@ void CMainWnd::UpdateGongnengDaohang()
|
|
|
}
|
|
|
else if (curName == "saomashouyin")
|
|
|
{
|
|
|
- if (CShopinfo::GetInstance()->m_version_type == "1")
|
|
|
- {
|
|
|
- //餐饮版不显示扫码收银
|
|
|
- continue;;
|
|
|
- }
|
|
|
-
|
|
|
newOption->SetName(L"main_saomashouyin");
|
|
|
newOption->SetText(L"收银");
|
|
|
|
|
|
@@ -1194,6 +1185,10 @@ void CMainWnd::SwitchPageByName(std::wstring name)
|
|
|
{
|
|
|
this->SwitchPage(ZHENGCAN);
|
|
|
}
|
|
|
+ else if (name == L"main_saomashouyin")
|
|
|
+ {
|
|
|
+ this->SwitchPage(SAOMASHOUYIN);
|
|
|
+ }
|
|
|
else if (name == L"main_kucun")
|
|
|
{
|
|
|
this->SwitchPage(KUCUN);
|
|
|
@@ -1205,6 +1200,7 @@ void CMainWnd::SwitchPageByName(std::wstring name)
|
|
|
else
|
|
|
{
|
|
|
//没开通的页面暂时不跳转
|
|
|
+ return;
|
|
|
}
|
|
|
|
|
|
//处理左侧的高亮与选中状态
|
|
|
@@ -1242,6 +1238,7 @@ void CMainWnd::SwitchPageByName(std::wstring name)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //先取消当前选中的导航
|
|
|
if (m_curOption != NULL)
|
|
|
{
|
|
|
m_curOption->SetBkColor(0x00000000);
|
|
|
@@ -1388,8 +1385,8 @@ void CMainWnd::CreatePages()
|
|
|
{
|
|
|
CDialogBuilder builder;
|
|
|
CDialogBuilderCallbackEx cb;
|
|
|
- pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("kucun_page.xml"), (UINT)0, &cb, &m_pm));
|
|
|
- m_pages[KUCUN] = pChildContainer;
|
|
|
+ pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("saomashouyin_page.xml"), (UINT)0, &cb, &m_pm));
|
|
|
+ m_pages[SAOMASHOUYIN] = pChildContainer;
|
|
|
}
|
|
|
|
|
|
{
|
|
|
@@ -1402,6 +1399,13 @@ void CMainWnd::CreatePages()
|
|
|
{
|
|
|
CDialogBuilder builder;
|
|
|
CDialogBuilderCallbackEx cb;
|
|
|
+ pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("kucun_page.xml"), (UINT)0, &cb, &m_pm));
|
|
|
+ m_pages[KUCUN] = pChildContainer;
|
|
|
+ }
|
|
|
+
|
|
|
+ {
|
|
|
+ CDialogBuilder builder;
|
|
|
+ CDialogBuilderCallbackEx cb;
|
|
|
pChildContainer = static_cast<CBasePageUI*>(builder.Create(_T("zhengcan_diandan_page.xml"), (UINT)0, &cb, &m_pm));
|
|
|
m_pages[ZHENGCANDIANDAN] = pChildContainer;
|
|
|
}
|
|
|
@@ -1498,4 +1502,136 @@ void CMainWnd::ShowShangcheng()
|
|
|
|
|
|
pYouhuiDlg->ShowModal();
|
|
|
}
|
|
|
+}
|
|
|
+
|
|
|
+void CMainWnd::UpdateGongnengString()
|
|
|
+{
|
|
|
+ //这个map用于记录当前常用和更多有哪些元素
|
|
|
+ std::map<string, string> TmpMap;
|
|
|
+
|
|
|
+ std::string changyongString = CSetting::GetInstance()->GetParam("setting_gongneng_changyong_string");
|
|
|
+ std::vector<string> changyongVector;
|
|
|
+ if (changyongString == "")
|
|
|
+ {
|
|
|
+ changyongVector.clear();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ changyongVector = CLewaimaiString::Split(changyongString, ",");
|
|
|
+ }
|
|
|
+
|
|
|
+ //考虑到餐饮和零售的差异,这里要对功能导航的内容进行过滤处理
|
|
|
+ std::vector<string> TmpchangyongVector;
|
|
|
+ for (std::vector<string>::iterator it = changyongVector.begin(); it != changyongVector.end(); it++)
|
|
|
+ {
|
|
|
+ if (CShopinfo::GetInstance()->m_version_type == "1")
|
|
|
+ {
|
|
|
+ if (*it == "saomashouyin")
|
|
|
+ {
|
|
|
+ //餐饮版不显示扫码收银
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他不显示的,继续加在这里就行
|
|
|
+
|
|
|
+ TmpchangyongVector.push_back(*it);
|
|
|
+
|
|
|
+ TmpMap[*it] = "1";
|
|
|
+ }
|
|
|
+ else if (CShopinfo::GetInstance()->m_version_type == "2")
|
|
|
+ {
|
|
|
+ if (*it == "zhengcan")
|
|
|
+ {
|
|
|
+ //零售版不显示正餐
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他不显示的,继续加在这里就行
|
|
|
+
|
|
|
+ TmpchangyongVector.push_back(*it);
|
|
|
+
|
|
|
+ TmpMap[*it] = "1";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //这个时候已经过滤掉了,保存到数据库
|
|
|
+ changyongVector = TmpchangyongVector;
|
|
|
+
|
|
|
+ std::string newChangyong = CLewaimaiString::Merge(changyongVector, ",");
|
|
|
+ CSetting::GetInstance()->SetParam("setting_gongneng_changyong_string", newChangyong);
|
|
|
+
|
|
|
+ //常用的处理完了,开始处理更多的
|
|
|
+ std::string gengduoString = CSetting::GetInstance()->GetParam("setting_gongneng_gengduo_string");
|
|
|
+ std::vector<string> gengduoVector;
|
|
|
+ if (gengduoString == "")
|
|
|
+ {
|
|
|
+ gengduoVector.clear();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ gengduoVector = CLewaimaiString::Split(gengduoString, ",");
|
|
|
+ }
|
|
|
+
|
|
|
+ //考虑到餐饮和零售的差异,这里要对功能导航的内容进行过滤处理
|
|
|
+ std::vector<string> TmpgengduoVector;
|
|
|
+
|
|
|
+ for (std::vector<string>::iterator it = gengduoVector.begin(); it != gengduoVector.end(); it++)
|
|
|
+ {
|
|
|
+ if (CShopinfo::GetInstance()->m_version_type == "1")
|
|
|
+ {
|
|
|
+ if (*it == "saomashouyin")
|
|
|
+ {
|
|
|
+ //餐饮版不显示扫码收银
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他不显示的,继续加在这里就行
|
|
|
+
|
|
|
+ TmpgengduoVector.push_back(*it);
|
|
|
+
|
|
|
+ TmpMap[*it] = "1";
|
|
|
+ }
|
|
|
+ else if (CShopinfo::GetInstance()->m_version_type == "2")
|
|
|
+ {
|
|
|
+ if (*it == "zhengcan")
|
|
|
+ {
|
|
|
+ //零售版不显示正餐
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他不显示的,继续加在这里就行
|
|
|
+
|
|
|
+ TmpgengduoVector.push_back(*it);
|
|
|
+
|
|
|
+ TmpMap[*it] = "1";
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果发生了餐饮和零售的切换,比如从餐饮切换到零售,因为之前登录餐饮的时候把saomashouyin删除了,现在登录零售的话常用和更多都没有saomashouyin,这里要加入到更多的最后面
|
|
|
+ if (CShopinfo::GetInstance()->m_version_type == "1")
|
|
|
+ {
|
|
|
+ if (TmpMap.find("zhengcan") == TmpMap.end())
|
|
|
+ {
|
|
|
+ //餐饮版这时候没有zhengcan,说明切换过零售版被删除了,这里要加上
|
|
|
+ TmpgengduoVector.push_back("zhengcan");
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他餐饮版专属的,要在这里继续添加
|
|
|
+ }
|
|
|
+ else if (CShopinfo::GetInstance()->m_version_type == "2")
|
|
|
+ {
|
|
|
+ if (TmpMap.find("saomashouyin") == TmpMap.end())
|
|
|
+ {
|
|
|
+ //零售版这时候没有saomashouyin,说明切换过餐饮版被删除了,这里要加上
|
|
|
+ TmpgengduoVector.push_back("saomashouyin");
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果以后有其他零售版专属的,要在这里继续添加
|
|
|
+ }
|
|
|
+
|
|
|
+ //这个时候已经过滤掉了不需要的,加上了被删除的,可以保存数据库了
|
|
|
+ gengduoVector = TmpgengduoVector;
|
|
|
+
|
|
|
+ std::string newGengduo = CLewaimaiString::Merge(gengduoVector, ",");
|
|
|
+ CSetting::GetInstance()->SetParam("setting_gongneng_gengduo_string", newGengduo);
|
|
|
}
|