From 9b693ad32eee974de1f6ab21a117312c404b33de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E2=80=98oliver=2Ehui=E2=80=99?= <‘ym.hui@topibd.com’> Date: Mon, 31 Oct 2022 18:04:04 +0800 Subject: [PATCH] 10311803 --- .../plugin/sysusermgtv1/sysusermgtv1.cpp | 43 ++++++--------- src/class/plugin/sysusermgtv1/sysusermgtv1.h | 4 -- src/class/plugin/sysusermgtv1/sysuserv1.cpp | 55 ++++++++----------- src/class/plugin/sysusermgtv1/sysuserv1.h | 2 - 4 files changed, 39 insertions(+), 65 deletions(-) diff --git a/src/class/plugin/sysusermgtv1/sysusermgtv1.cpp b/src/class/plugin/sysusermgtv1/sysusermgtv1.cpp index 3d87680..4398375 100644 --- a/src/class/plugin/sysusermgtv1/sysusermgtv1.cpp +++ b/src/class/plugin/sysusermgtv1/sysusermgtv1.cpp @@ -1,27 +1,27 @@ #include "sysusermgtv1.h" +#include <QDebug> #include <QDockWidget> #include <QGraphicsDropShadowEffect> #include <QToolBar> #include <QVBoxLayout> -#include <QDebug> #include <tbaseutil/tdataparse.h> #include <tbaseutil/tdataresponse.h> #include <tbaseutil/tenumlist.h> -#include <tbaseutil/ttheme.h> #include <tbaseutil/tresource.h> +#include <tbaseutil/ttheme.h> +#include <topcore/topclasshelper.h> #include <topcore/topclasssqlthread.h> -#include <topcore/topenummanager.h> #include <topcore/topcore.h> -#include <toputil/t.h> +#include <topcore/topenummanager.h> #include <topcore/topmessagecontroller.h> -#include <topcore/topclasshelper.h> +#include <toputil/t.h> +#include <twidget/taccordion.h> #include <twidget/tmessagebar.h> #include <twidget/tmessagebox.h> #include <twidget/tpagetool.h> #include <twidget/tsearchentry.h> #include <twidget/tsplitter.h> #include <twidget/ttableview.h> -#include <twidget/taccordion.h> #include "sysusermgtv1thread.h" SysUserMgtV1::SysUserMgtV1(const QString &iModuleNameStr, const QVariantMap iUrlPars, QWidget *iParent) @@ -43,7 +43,6 @@ SysUserMgtV1::SysUserMgtV1(const QString &iModuleNameStr, const QVariantMap iUrl if (mProductCategoryLst.isEmpty()) { mProductCategoryLst.append(APP->productCategory()); } - // mCenterSplitter = new TSplitter(this); this->setCentralWidget(mCenterSplitter); @@ -93,24 +92,19 @@ void SysUserMgtV1::initNaviView() //设置导航æ 顶部label 伸缩按钮区域 æ˜¾ç¤ºå¯¼èˆªæ æ–‡æœ¬ QLabel *naviLabel = new QLabel(ttr("Navigation")); naviLabel->setProperty("SS_TYPE", "SUBHEADER"); - naviLayout->addWidget(naviLabel,0); - + naviLayout->addWidget(naviLabel, 0); naviLayout->addSpacing(TTHEME_DP(4)); - //ui界é¢ä¸ŽæŒ‰é’®çª—å£ QFrame *naviWidget = new QFrame(this); naviLayout->addWidget(naviWidget); - //垂直布局left包å«uiè§£æžçª—å£ ä¸ŽæŒ‰é’®å¸ƒå±€ QVBoxLayout *leftLayout = new QVBoxLayout(naviWidget); - //新建uiè§£æžçª—å£ mNaviView = new TUiLoader(this); - TUiLoader *filterUi = qobject_cast<TUiLoader*>(mNaviView); - filterUi->setSelf(this); - filterUi->setScriptEngine(APP->scriptEngine()); - filterUi->setUiStr(ui("navi").toString()); + mNaviView->setSelf(this); + mNaviView->setScriptEngine(APP->scriptEngine()); + mNaviView->setUiStr(ui("navi").toString()); leftLayout->addWidget(mNaviView); QHBoxLayout *BtnsLayout = new QHBoxLayout(); @@ -142,7 +136,6 @@ void SysUserMgtV1::initNaviView() void SysUserMgtV1::initTableView() { //布局 - //æ–°å»ºè¡¨æ ¼çª—å£mbodywidget mBodyWidget = new QWidget(this); //è¡¨æ ¼çª—å£mbodywidgetæ·»åŠ åž‚ç›´å¸ƒå±€vboxlayout @@ -153,7 +146,6 @@ void SysUserMgtV1::initTableView() //æ–°åŠ è¡¨æ ¼è§†å›¾mtableview mTableView = new TTableView(this); - //新建表头 ç©ºç™½æ— å†…å®¹ mTableConf = new TopClassTableConf; //把view里é¢çš„键值对给到mTableConf @@ -164,12 +156,14 @@ void SysUserMgtV1::initTableView() //å°†è¡¨å¤´æ·»åŠ è¿›è¡¨æ ¼ä¸ mTableView->setHeaderItem(headerItem); - // 给表设置键和主键 mTableView->setDataKeyList(mTableConf->dataKeys); mTableView->setPrimaryKey(mTableConf->primaryKey); //åˆ›å»ºè¿žæŽ¥ï¼Œå½“ç”¨æˆ·ç‚¹å‡»è¡¨å¤´å›¾æ ‡æ—¶ï¼Œåˆ‡æ¢æ•°æ®çš„æ£åºååºæŽ’åˆ—é¡ºåº QHeaderView *horizontaHeaderView = mTableView->horizontalHeader(); + //对应功能 点击表头排åºåŠŸèƒ½ + connect(horizontaHeaderView, SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), + this, SLOT(refresh())); //æ·»åŠ æœç´¢æŒ‰é’®å·¥å…·TSearchEntry if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("MAIN_TOOLBAR"))) { @@ -179,20 +173,15 @@ void SysUserMgtV1::initTableView() } //è¡¨æ ¼çª—å£mbodywidgetæ·»åŠ mTableview vboxlayout->addWidget(mTableView, 1); - //æ·»åŠ ç¿»é¡µæŒ‰é’®å·¥å…·TpageTool if (QToolBar *toolbar = qobject_cast<QToolBar*>(uim()->getWidget("BOTTOM_TOOLBAR"))) { vboxlayout->addWidget(toolbar, 2); mPageTool = qobject_cast<TPageTool *>(uim()->getWidget("BOTTOM_TOOLBAR/PAGE_TOOL")); } - //功能 //点击事件切æ¢åŠŸèƒ½ connect(mTableView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(onSelectionChanged())); - //点击表头排åºåŠŸèƒ½ - connect(horizontaHeaderView, SIGNAL(sortIndicatorChanged(int,Qt::SortOrder)), - this, SLOT(refresh())); //æ·»åŠ å³é”®å¼¹çª—工具 if (QMenu *table_popup = qobject_cast<QMenu *>(uim()->getWidget("TABLEVIEW_POPUP"))) { mTableView->setContextMenu(table_popup); @@ -311,7 +300,8 @@ void SysUserMgtV1::refresh(bool iResetPageBol) mDetailView->setUid(0); } -TSqlSelectorV2 SysUserMgtV1::getSqlSelector(bool iResetPageBol){ +TSqlSelectorV2 SysUserMgtV1::getSqlSelector(bool iResetPageBol) +{ TSqlSelectorV2 selector; if (!mTableConf->dbSql.isEmpty()) { selector.setTable(QString("(%1) _TEMP_TABLE_").arg(mTableConf->dbSql)); @@ -415,7 +405,8 @@ void SysUserMgtV1::newItem() } //åˆ é™¤æ¨¡å— -void SysUserMgtV1::deleteItem(const QVariantList &iIdLst){ +void SysUserMgtV1::deleteItem(const QVariantList &iIdLst) +{ //ä¸èƒ½åˆ 除当å‰ç™»é™†çš„用户 if (selectedNames().contains(APP->userName())) { alertError(ttr("Current login user can not be deleted!")); diff --git a/src/class/plugin/sysusermgtv1/sysusermgtv1.h b/src/class/plugin/sysusermgtv1/sysusermgtv1.h index f858ab0..c111ab0 100644 --- a/src/class/plugin/sysusermgtv1/sysusermgtv1.h +++ b/src/class/plugin/sysusermgtv1/sysusermgtv1.h @@ -26,14 +26,12 @@ public slots: bool canModify(); QVariantList selectedItems(); void deleteItem(const QVariantList &iIdLst); - private slots: void onSelectionChanged(); void onDetailChanged(); void onDetailSaved(const QVariant &iUidStr); void onNaviReset(); void onPageChanged(); - private: void initNaviView(); void initTableView(); @@ -42,7 +40,6 @@ private: TSqlSelectorV2 getSqlSelector(bool iResetPageBol = true); QString uiloaderWhere(); void fillTableData(const TDataResponse &iDataRes); - private: QStringList mProductCategoryLst; TSplitter *mCenterSplitter = nullptr; @@ -56,5 +53,4 @@ private: SysUserV1 *mDetailView = nullptr; }; - #endif // SYSUSERMGTV1_H diff --git a/src/class/plugin/sysusermgtv1/sysuserv1.cpp b/src/class/plugin/sysusermgtv1/sysuserv1.cpp index 2aa88f3..771463d 100644 --- a/src/class/plugin/sysusermgtv1/sysuserv1.cpp +++ b/src/class/plugin/sysusermgtv1/sysuserv1.cpp @@ -20,24 +20,11 @@ #include <twidget/tuiloader.h> #include "sysuserv1thread.h" -SysUserV1::SysUserV1(const QString &iModuleNameStr,const QVariantMap iUrlPars,QWidget *iparent) +SysUserV1::SysUserV1(const QString &iModuleNameStr, const QVariantMap iUrlPars, QWidget *iparent) : TopClassAbs(iparent) { this->setLicenseKey("sys_common"); - this->initModule(iModuleNameStr,iUrlPars); - - //产å“相关 å¤§è‡´æ˜Žç™½æ„æ€æ²¡æœ‰å…·ä½“äº†è§£ä¸ºä»€ä¹ˆè¿™æ ·åš - QVariant prodCfg = iUrlPars.value("product_category"); - if (prodCfg.type() == QVariant::List || prodCfg.type() == QVariant::StringList) { - for (QVariant row : prodCfg.toList()) { - mProductCategoryLst.append(row.toString()); - } - } else if (!prodCfg.toString().isEmpty()) { - mProductCategoryLst.append(prodCfg.toString()); - } - if (mProductCategoryLst.isEmpty()) { - mProductCategoryLst.append(APP->productCategory()); - } + this->initModule(iModuleNameStr, iUrlPars); //åˆå§‹åŒ–布局 initCenterUi(); @@ -86,7 +73,7 @@ void SysUserV1::initCenterUi() mUiLoader->setProperty("SS_BG", "PANEL"); mUiLoader->setProperty("SS_BORDER", 1); mUiLoader->setUiStr(ui("user-info").toString()); - mBodyLayout->addWidget(mUiLoader,0); + mBodyLayout->addWidget(mUiLoader, 0); //æ•°æ®æ›´æ”¹å…³è”功能。之å‰ä»¥ä¸ºinitdetail涵盖了数æ®ä¿®æ”¹ 但uiloaderæ•°æ®ä¿®æ”¹å…¶å®žåº”该具体设置 connect(mUiLoader, SIGNAL(dataChanged()), this, SLOT(setDataModified())); @@ -108,7 +95,8 @@ void SysUserV1::resizeEvent(QResizeEvent *iEvent) } //uidå˜åŒ–æ¨¡å— -void SysUserV1::uidChangeEvent(const QString &iUidStr){ +void SysUserV1::uidChangeEvent(const QString &iUidStr) +{ //uidæ— å€¼ä¸ºåˆå§‹0 if(iUidStr.toInt() == 0){ @@ -119,16 +107,16 @@ void SysUserV1::uidChangeEvent(const QString &iUidStr){ QVariant data = doThreadWork(new SysUserV1Thread(this), "LOAD_DATA", QVariant(this->uid())); unloading(); + //获å–data.tomap();的回执 TDataResponse dataRes(data.toMap()); - if(dataRes.hasError()){ + if(dataRes.hasError()) { alertError(ttr("load data failed!"), dataRes.errText()); - }else{ + } else { clearData(); - //问题:dataReså·²ç»æ˜¯data.tomap为什么还è¦å–dataRes.data().toMap? //猜测:这里应该是对应å˜å‚¨åŠŸèƒ½ä¸getData分割.å—æ®µçš„相å功能 带.å—æ®µè½½å…¥ QVariantMap dataMap = dataRes.data().toMap(); QVariantMap attrData = dataMap.value("attr_data").toMap(); - for(QString key : attrData.keys()){ + for(QString key : attrData.keys()) { dataMap.insert("attr_data." + key, attrData.value(key)); } setData(dataMap); @@ -136,47 +124,50 @@ void SysUserV1::uidChangeEvent(const QString &iUidStr){ } } //è®¾ç½®çŠ¶æ€æ è°ƒèŠ‚ï¼šå¯ - mUiLoader->setState("status", "unable"); + mUiLoader->setState("status", "enable"); //设置数æ®å¤„äºŽä¿®æ”¹ï¼šå¦ setDataModified(false); } -void SysUserV1::clearData(){ +void SysUserV1::clearData() +{ //载入 æž„é€ map æ¸…ç©ºåŽŸæ•°æ® mUiLoader->loadValues(QVariantMap(), true); } -void SysUserV1::setData(const QVariantMap &iDataMap){ +void SysUserV1::setData(const QVariantMap &iDataMap) +{ //载入 å½¢å‚map 䏿¸…åŽŸæ•°æ® é¡»æŽ¥æ”¶æœªæ˜¾ç¤ºå—æ®µ 比如product_category mUiLoader->loadValues(iDataMap, false); //问题:åŽŸä»£ç æ¤å¤„会设置setTitie 为什么需è¦è®¾ç½®ï¼Ÿ } //衔接mgt->newitemæ¨¡å— -void SysUserV1::create(){ +void SysUserV1::create() +{ setLastUid(this->uid()); //问题: true对应falseè®¾ç½®æ•ˆæžœä¸æ˜Ž setUid(0, true); mUiLoader->setState("status", "disable"); QVariantMap defaultValueMap; - defaultValueMap.insert("product_category", mProductCategoryLst); - //æ„义䏿˜Žæœªæ·±ç©¶ defaultValueMap = defaultValueMap.unite(config("default_value").toMap()); - // setData(defaultValueMap); //设置数æ®å¤„于修改 默认true setDataModified(); } //å–æ¶ˆæ¨¡å— åŒæ—¶è§¦å‘mgt-detailchanged 页é¢å˜åŒ– -void SysUserV1::reload(){ +void SysUserV1::reload() +{ QString uidStr = lastUid().isEmpty() ? uid() : lastUid(); + //uidchanged true setid 为真调用uidchangged setUid(uidStr, true); } //ä¿å˜æ¨¡å— -void SysUserV1::saveData(){ +void SysUserV1::saveData() +{ //写报错ä¸ç†Ÿç»ƒ //èŽ·å–æäº¤é”™è¯¯ QVariantList errList = mUiLoader->validateAll("COMMIT", true, "ERROR"); @@ -211,6 +202,7 @@ void SysUserV1::saveData(){ } QVariantMap SysUserV1::getData() const{ + //uièŽ·å–æ‰€æœ‰å—段 QVariantMap dataMap = mUiLoader->getAllValues(true).toVariant().toMap(); QStringList keys = dataMap.keys(); for(QString key : keys){ @@ -231,9 +223,6 @@ QVariantMap SysUserV1::getData() const{ attrData.insert("effective_date", APP->getServerToday()); dataMap.insert("attr_data", attrData); } - if (dataMap.value("product_category").toStringList().isEmpty()) { - dataMap.insert("product_category", mProductCategoryLst); - } //mUiLoader->getAllValuesæ— æ³•èŽ·å–id值 æ‰‹åŠ¨æ·»åŠ dataMap.insert("id", this->uid()); diff --git a/src/class/plugin/sysusermgtv1/sysuserv1.h b/src/class/plugin/sysusermgtv1/sysuserv1.h index 8f1ae12..68b7907 100644 --- a/src/class/plugin/sysusermgtv1/sysuserv1.h +++ b/src/class/plugin/sysusermgtv1/sysuserv1.h @@ -33,8 +33,6 @@ private: void initCenterUi(); private: - QStringList mProductCategoryLst; - QHBoxLayout *mBodyLayout = nullptr; TUiLoader *mUiLoader = nullptr; }; -- 2.21.0