zhaohe 8 months ago
parent
commit
27d49f70f4
  1. 3
      usrc/uicontroler/base/page_processer.cpp
  2. 22
      usrc/uicontroler/base/page_processer.hpp
  3. 40
      usrc/uicontroler/page/mupage/muUsrMgr_page.cpp
  4. 2
      usrc/uicontroler/page/popwin_page.cpp

3
usrc/uicontroler/base/page_processer.cpp

@ -63,9 +63,10 @@ void UIControlerHock_PageInit() {
for (size_t i = 0; i < m_pageNum; i++) {
// ZLOGI(TAG, "initialize page %s %d", m_pages[i]->pageName, m_pages[i]->pageId);
if (hasOnlyInitThis) {
if (m_pages[i]->onlyInitThis) {
if (m_pages[i]->onlyInitThis || m_pages[i]->forceInitThis) {
m_pages[i]->initialize();
}
} else {
m_pages[i]->initialize();
}

22
usrc/uicontroler/base/page_processer.hpp

@ -22,9 +22,10 @@ class OnPageLoadContext {
class IPageProcesser {
public:
uint32_t pageId = 0;
const char* pageName = "Not Set";
bool onlyInitThis = false; // for debug
uint32_t pageId = 0;
const char* pageName = "Not Set";
bool onlyInitThis = false; // for debug
bool forceInitThis = false;
public:
IPageProcesser(const char* name, uint32_t pageId);
@ -62,9 +63,18 @@ class IPageProcesser {
}
void visBySetAph(uint8_t bid, bool val) { UIControler::ins()->setAph(pageId, bid, val ? 127 : 0); }
void visEx(uint8_t bid, bool val) { UIControler::ins()->visEx(pageId, bid, val); }
bool movePicToXY(uint8_t bid, int32_t x, int32_t y) { UIControler::ins()->movePicToXY(pageId, bid, x, y); return true; }
bool movePicTo(uint8_t bid, uint8_t toBid) { UIControler::ins()->movePicTo(pageId, bid, toBid); return true;}
bool movePicOutOfScreen(uint8_t bid) { UIControler::ins()->movePicOutOfScreen(pageId, bid); return true; }
bool movePicToXY(uint8_t bid, int32_t x, int32_t y) {
UIControler::ins()->movePicToXY(pageId, bid, x, y);
return true;
}
bool movePicTo(uint8_t bid, uint8_t toBid) {
UIControler::ins()->movePicTo(pageId, bid, toBid);
return true;
}
bool movePicOutOfScreen(uint8_t bid) {
UIControler::ins()->movePicOutOfScreen(pageId, bid);
return true;
}
void popFullKeyBoard(uint8_t fromBid, int limitLength, const char* initval) { UIControler::ins()->popFullKeyBoard(pageId, fromBid, limitLength, initval); }
void popPasswdKeyBoard(uint8_t fromBid, int limitLength) { UIControler::ins()->popPasswdKeyBoard(pageId, fromBid, limitLength); }

40
usrc/uicontroler/page/mupage/muUsrMgr_page.cpp

@ -30,13 +30,14 @@ typedef struct {
} UIUsrTableIterm;
typedef struct {
bool enable;
bool enable;
int usrId;
int index;
char name[32];
const UserRole* role;
bool resetPasswd;
bool editDirty;
bool editDirty;
} EditContext_t;
static UIUsrTableIterm m_uiUsrTable[MAX_USR_NUM] = {
@ -54,11 +55,11 @@ static void resetUiUsrTable() {
for (int i = 0; i < MAX_USR_NUM; i++) {
m_uiUsrTable[i].enable = false;
m_uiUsrTable[i].role = nullptr;
m_uiUsrTable[i].usrId = 0;
m_uiUsrTable[i].usrId = -1;
}
}
static EditContext_t m_editContext = {false, -1, "", &UserRole::user, false, false};
static EditContext_t m_editContext = {0};
class MuUsrMgr : public IPageProcesser {
private:
@ -179,25 +180,25 @@ class MuUsrMgr : public IPageProcesser {
UIControler::ins()->popWarningWin("用户数量已达上限");
return;
}
UserDao::addUser();
fillUsrStateUICache();
syncUIUsrTableState();
UIControler::ins()->popInfoWin("添加成功");
}
void delUsr() {
ZLOGI(TAG, "delUsr");
// 删除用户
do {
user_t* user = UserDao::getUserById(m_uiUsrTable[m_editContext.index].usrId);
user_t* user = UserDao::getUserById(m_editContext.usrId);
if (user == nullptr) {
ZLOGE(TAG, "user not exist ,find by id %d", m_uiUsrTable[m_editContext.index].usrId);
ZLOGE(TAG, "user not exist ,find by id %d", m_editContext.usrId);
UIControler::ins()->popWarningWin("用户不存在");
break;
}
if (user->builtIn) {
ZLOGE(TAG, "user is builtIn ,find by id %d", m_uiUsrTable[m_editContext.index].usrId);
ZLOGE(TAG, "user is builtIn ,find by id %d", m_editContext.usrId);
UIControler::ins()->popWarningWin("内置管理员用户不能删除");
break;
}
@ -209,15 +210,16 @@ class MuUsrMgr : public IPageProcesser {
fillEditContext(-1);
syncEditContext();
UIControler::ins()->popInfoWin("删除成功");
}
void saveUsr() {
ZLOGI(TAG, "saveUsr");
// 保存
if (m_editContext.editDirty) {
user_t* user = UserDao::getUserById(m_uiUsrTable[m_editContext.index].usrId);
user_t* user = UserDao::getUserById(m_editContext.usrId);
if (user == nullptr) {
ZLOGE(TAG, "user not exist ,find by id %d", m_uiUsrTable[m_editContext.index].usrId);
ZLOGE(TAG, "user not exist ,find by id %d", m_editContext.usrId);
UIControler::ins()->popWarningWin("用户不存在");
return;
}
@ -240,11 +242,10 @@ class MuUsrMgr : public IPageProcesser {
fillUsrStateUICache();
syncUIUsrTableState();
fillEditContext(m_editContext.index);
syncEditContext();
}
UIControler::ins()->popWarningWin("保存成功");
UIControler::ins()->popInfoWin("保存成功");
}
/***********************************************************************************************************************
@ -301,21 +302,22 @@ class MuUsrMgr : public IPageProcesser {
}
}
void fillEditContext(int index) {
if (index >= MAX_USR_NUM) {
void fillEditContext(int useroff) {
if (useroff >= MAX_USR_NUM) {
return;
}
if (index < 0) {
if (useroff < 0) {
m_editContext.enable = false;
return;
}
m_editContext.index = index;
strcpy(m_editContext.name, m_uiUsrTable[index].userName);
m_editContext.role = m_uiUsrTable[index].role;
m_editContext.usrId = m_uiUsrTable[useroff].usrId;
strcpy(m_editContext.name, m_uiUsrTable[useroff].userName);
m_editContext.role = m_uiUsrTable[useroff].role;
m_editContext.resetPasswd = false;
m_editContext.editDirty = false;
m_editContext.enable = true;
m_editContext.index = m_uiUsrTable[useroff].index;
}
/**

2
usrc/uicontroler/page/popwin_page.cpp

@ -16,7 +16,7 @@ class PopWinPage : public IPageProcesser {
ZThread thread;
public:
PopWinPage() : IPageProcesser(TAG, pg_popwin) {}
PopWinPage() : IPageProcesser(TAG, pg_popwin) { forceInitThis = true; }
virtual void initialize() override {
IPageProcesser::initialize();

Loading…
Cancel
Save